نرم افزار ساخت یک قفل الکترونیکی با استفاده از میکرو کنترلر AVR(ATMEGA8) توانایی این را دارد که توسط سه نفر و با سه رمز رقمی متفاوت مورد استفاده قرار گیرد .
میکرو AVR رمز را از یک صفحه کلید ماتریسی دریافت می کند و پس از نمایش برروی صفحه نمایشگر LCD پس از مقایسه با رمز موجود در حافظه در صورت صحیح بودن رله ای را برای یک ثانیه فعال می کند و قفل باز می گردد هر یک از این کاربرها به راحتی می توانند رمز مورد نظر خود را تغییر دهند و رمز دیگری را جایگزین آن کنند .
یک رمز 5 رقمی نیز به عنوان رمز SUPERVISER تعریف شده است که در صورتی که یکی از کاربرها رمز خود را فراموش کرد می تواند با وارد کردن آن سه رمز دیگر را صفر کند و کاربرها می توانند با مراجعه دوباره رمز مورد نظر خود را وارد کنند و پیغام های میکرو نیز در هر مرحله با توجه به کلید فشار داده شده بر روی صفحه نمایشگر LCD نمایش داده می شود . در این پروژه در معرفی به نحوه کار با میکرو کنترلر AVR پرداخته شده است و سپس طراحی مدار و نرم افزار قفل آمده است که در آن نحوه عملکرد مدار ، نقشه شماتیک مدار معرفی زیر برنامه ها و در نهایت مجموعه متن نرم افزار بیان گردیده است .
مقدمه
زبانهای سطح بالا یا همان HLL (HIGH Level Language) به سرعت در حال تبدیل شدن به زبان برنامه نویسی استاندارد برای میکرو کنترلرها (MCU) حتی برای میکروهای 8 بیتی کوچک هستند زبان برنامه نویسی C و BASIC بیشترین استفاده را در برنامه نویسی میکروها دارند ولی در اکثر کاربردها کدهای بیشتری را نسبت به زبان برنامه نویسی اسمبلی تولید می کنند .
ATMEL ایجاد تحولی در معماری جهت کاهشی کد به مقدار مینیمم را درک کرد که نتیجه این تحول میکروکنترلرهای AVR هستند که علاوه بر کاهش و بهینه سازی مقدار کدها به طور واقع عملیات را تنها در یک کلاک سیکل توسط معماری RISC انجام می دهند و از 32 رجیستر همه منظوره استفاده می کنند که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند .
تکنولوژی حافظه کم مصرف غیر مدار شرکت ATMEL برای برنامه ریزی AVR ها مورد استفاده قرار گرفته است در نتیجه حافظه های FLASH و EEPROM در داخل مدار قابل برنامه ریزی (ISP) هستتد میکرو کنترلرهای اولیه AVR دارای 1 و 2 و3 کیلوبایت حافظه FLASH و به صورت کلمه 16 بیتی سازماندهی شده بودند .
AVR ها به عنوان میکرو RISC با دستورات فراوان طراحی شده اند که باعث می شود حجم کد تولید شده کم و سرعت بالاتری بدست آید .
خصوصیات (ATMEGA 8)
- از معماری AVR RISC استفاده می کند .
- دارای 16 دستورالعمل با کارآیی بالا که اکثرا ً تنها در یک کلاک سیکل اجرا می شوند
- 8*32 رجیستر کاربردی
- سرعتی تا 6m/ps ( در فرکانس 6mhz)
- حافظه ، برنامه و داده غیر فرار
- BK بایت حافظه FLASH داخلی قابل برنامه ریزی
- پایداری حافظه FLASH : قابلیت 1000 بار نوشتن و پاک کردن
- 1024 بایت حافظه داخلی SDRAM
- 512 بایت حافظه EEPROM داخلی قابل برنامه ریزی
- پایداری حافظه EEPROM : قابلیت 10000 بار نوشتن و پاک کردن
- قفل برنامه FLASH و حفاظت EEPROM
خصوصیات جانبی
- دو تایمر – کانتر 8 بیتی با PRESCALER مجزا و دارای مد COMPARE
- یک تایمر – کانتر 16 بیتی با PRESCALER مجزا و دارای COMPARE و CAPTURE
- 3 کانال PWM
- 3 کانال مبدل ، آنالوگ به دیجتال در بسته بندی های TQFP و MLF
- 6 کانال با دقت 10 بیتی
- 2 کانال با دقت 8 بیتی
- 6 کانال مبدل آنالوگ به دیجیتال در بسته بندی های PDIP
- 4 کانال با دقت 10 بیتی
- 2 کانال با دقت 8 بیتی
- دارای RTC با اسیلاتور مجزا
- یک مقایسه کننده آنالوگ داخلی
- USART سریال قابل برنامه ریزی
- WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی
- ارتباط سریال SPT برای برنامه ریزی داخل مدار
- قابلیت ارتباط با پروتکل سریال دو سیمه
- قابلیت ارتباط سریال SPI به صورت MASTER یا SLAVE
عملکرد قفل
این قفل بوسیله سه رمز پنج رقمی که از صفحه کلید دریافت می کند عمل می کند چناچه رمز صحیح باشد یعنی با رمز موجود در حافظه EEPROM برابر باشد کاربر می تواند با انتخاب گزینه مورد نظر رمز خود را تغییر دهد یا قفل را باز کند کلیه مراحل کار با دستگاه ، متناسب با کلید فشار داده شده بر روی صفحه نمایشگر LCD نمایش داده می شود .
اگر در هنگام روشن شدن دستگاه کلید Ok گرفته شود دستگاه از کاربر یک رمز که مربوط به SUPERVISER است درخواست می کند که با وارد کردن آن و در صورت درست بودن ، میکرو کلیه رمزها را صفر می کند این برای این است که اگر یکی از کاربرها رمز خود را فراموش کرد با استفاده از این روش بتواند دوباره رمز خود را وارد کند .
در حالت عادی با روشن شدن دستگاه بر روی صفحه نمایش عبارت ENTER USER NUMBER نقش می بندد و از کاربر می خواهد USER خود را وارد کند وقتی USER وارد شد از او می خواهد PASSWORD را وارد کند با وارد کردن هر عدد بر روی صفحه نمایش یک * ظاهر می شود و در پایان با فشار دادن کلید OK اگر رمز درست بود بر روی صفحه نمایشگر عبارت WELCOM USER نقش می بندد و سه گزینه EXIT/CHANGE/OPEN برای کاربر نشان داده می شود که با انتخاب OK می تواند در را باز کند و با انتخاب CHANGE می تواند رمز را تغییر دهد و با انتخاب ESC از صفحه MENU خارج می شود .
تشریح سخت افزار مدار
- نحوه اتصال پورت ها :
- PB.1 : متصل به بوبین رله
- PD.0 : و PD.1 : و PD.2 : و PD.3 : (متصل به چهار ستون صفحه کلید )
- PD.4 : و PD.5 : و PD.6 : و PD.7: ( متصل به چهار سطر صفحه کلید )
- PC.5 : متصل به پایه RS صفحه نمایشگر LCD
- PC.4 : متصل به پایه E صفحه نمایشگر LCD
- PC.3 : متصل به پایه DB7 صفحه نمایشگر LCD
- PC.2 : متصل به پایه DB6 صفحه نمایشگر LCD
- PC.1 : متصل به پایه DB5 صفحه نمایشگر LCD
- PC.0 : متصل به پایه DB4 صفحه نمایشگر LCD
قرار گرفتن ARMEGA 8 در مدار
پایه 7 به ولتاژ مستیم پنج ولت وصل شده است وپایه های 22 و 8 به زمین متصل می گردند وسایر پایه ها نیز مطابق آنچه در اتصال پورتها گفته شد به صفحه نمایشگر و صفحه کلید و بوبین رله متصل می شوند .
میکرو کنترلر AVR برخلاف سایر میکرو کنترلرهای موجود دارای یک اسیلاتور RC داخلی می باشد در این مدار نیز از اسیلاتور داخلی میکروکنترلر استفاده شده است و به پایه های 10 و 9 که برای استفاده از اسیلاتور کریستال خارجی و اسیلاتور RC خارجی و … است هیچ المانی متصل نگردیده است .
مدار تغذیه ورودی
از آنجایی که ولتاژ بالاتر از پنج ولت باعث سوختن میکرو و احیانا ً دیگر قطعات می شود مدار تثبیت کننده فوق برای سیستم ضروری است .
در این مدار از یک رگلاتور 7805 استفاده شده است که این رگلاتور ، ولتاژهای بالاتر از پنج ولت را به گرما تبدیل می کند و به این ترتیب ولتاژ را تثبیت می نماید .
وجود خازنها هم برای آنست که از ورود نویزهای فرکانس بالای برق شهر و تأثیرگذاری بر روی ولتاژ ورودی مدار جلوگیری به عمل آید و همچنین برای تثبیت هر چه بیشتر ولتاژ به کار برده شده است .
اتصال صفحه کلید
صفحه کلید ، یک صفحه کلید ماتریسی 4*4 است که ستونهای آن به پایه های PD.0 ، PD.1 ،PD.2 ، PD.3 متصل شده اند و چهارسطر آن به پایه های PD.6 ، PD.5 ، PD.4 ، PD.7 وصل گردیده اند .
میکروکنترلر به علت اینکه هم قابلیت جریان کشی و هم قابلیت جریان دهی خوبی دارد دیگر نیازی به وجود آی سی بافر برای خروجی و همچنین برای ورودی ندارد .
زیربرنامه BEUTIFULER
این زیربرنامه فقط برای زیبایی طرز کار قفل در نظر گرفته شده است بدین صورت که پس از انتخاب گزینه OPEN برای باز کردن قفل مورد نظر قفل بلافاصله باز نمی شود بلکه پس از یک مکث چند ثانیه ای و نمایش دادن چند نقطه بر روی صفحه نمایشگر LCD قفل باز می شود .
زیربرنامه LOGO
قبل از اجرای زیربرنامه یک خط برنامه برای تبدیل اعداد صفحه کلید به اعداد دلخواه ما نوشته شده است زیرا میکروی AVR اعداد صفحه کلید را به ترتیب از 15-0 در نظر می گیرد و برای تبدیل شدن به فرم دلخواه ما باید ابتدا این خط برنامه نوشته شود .
این زیربرنامه برای گرفتن PASSWORD مورد استفاده قرار می گیرد یعنی هر جا که از USER خواسته شد PASSWORD خود را وارد کند به این زیر برنامه می آید و در آن پس از تبدیل کلید های زده شده به فرم دسیمال ( دهدهی ) آن ، عدد وارد شده را نیز در یک متغیر ذخیره می کند .
زیربرنامه COMP
این زیربرنامه برای مقایسه رمز وارد شده توسط USER بوسیله صفحه کلید و همچنین رمز ذخیره شده در هر یک از مکانهای حافظه ای که به هر USER اختصاص دارد به کار می رود چنانچه رمز مورد نظر اشتباه باشد به برنامه اصلی برگشته و در برنامه اصلی از USER می خواهد دوباره این رمز را وارد نماید چنانچه USER رمز را تا سه مرتبه اشتباه وارد نماید این زیربرنامه پس از نمایش SORRY!! بر روی صفحه نمایشگر LCD به ابتدای برنامه باز می گردد و چنانچه رمز درست بود نیز به برنامه اصلی باز می گردد و به برچسب WELCOM می رود .