چکیده :
در این پروژه پیرامون طراحی نرم افزار ساخت یک قفل الکترونیکی با استفاده از میکرو کنترلر AVR(ATMEGA8) مطالبی چند به میان آمده است این قفل توانایی این را دارد که توسط سه نفر و با سه رمز رقمی متفاوت مورد استفاده قرار گیرد .
میکرو AVR رمز را از یک صفحه کلید ماتریسی دریافت می کند و پس از نمایش برروی صفحه نمایشگر LCD پس از مقایسه با رمز موجود در حافظه در صورت صحیح بودن رله ای را برای یک ثانیه فعال می کند و قفل باز می گردد هر یک از این کاربرها به راحتی
می توانند رمز مورد نظر خود را تغییر دهند و رمز دیگری را جایگزین آن کنند .
یک رمز 5 رقمی نیز به عنوان رمز SUPERVISER تعریف شده است که در صورتی که یکی از کاربرها رمز خود را فراموش کرد می تواند با وارد کردن آن سه رمز دیگر را صفر کند و کاربرها می توانند با مراجعه دوباره رمز مورد نظر خود را وارد کنند و پیغام های میکرو نیز در هر مرحله با توجه به کلید فشار داده شده بر روی صفحه نمایشگر LCD نمایش داده
می شود .
در این پروژه در معرفی به نحوه کار با میکرو کنترلر AVR پرداخته شده است و سپس طراحی مدار و نرم افزار قفل آمده است که در آن نحوه عملکرد مدار ، نقشه شماتیک مدار معرفی زیر برنامه ها و در نهایت مجموعه متن نرم افزار بیان گردیده است .
مقدمه :
مختصری راجع به 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
خصوصیات ویژه میکروکنترلر
POWER – ON RESET CIRCUIT
دارای 5 حالت Sleep (ADC Noise و IDEL و STANDBY و POWER DOWN و POWER – SAVE و REDUCTION )
منابع وقفه ( INTERRUPT) داخلی و خارجی
دارای اسیلاتور RC داخلی کالیبره شده
عملکرد کاملا ً ثابت
توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS
توان مصرفی در 25a,3V,4MHZ
حالت فعال 3.6 MA
در حالت غیر فعال 1.0MA
ولتاژهای عملیاتی ( کاری )
2.7V تا 5.5 برای (ATMEGA 8L)
4.5V تا 5.5 برای (ATMEGA8)
فرکانس کاری
0MHZ تا 8MHZ برای (ATMEGA 8L)
0MHZ تا 16MHZ برای (ATMEGA8)
خطوط I/O و انوع بسته بندی
23 خط ورودی / خروجی قابل برنامه ریزی
28 پایه PDIP و 32 پایه TQFP و MLF
بخش دوم / عملکرد قفل :
این قفل بوسیله سه رمز پنج رقمی که از صفحه کلید دریافت می کند عمل می کند چناچه رمز صحیح باشد یعنی با رمز موجود در حافظه 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 وصل گردیده اند .
میکروکنترلر به علت اینکه هم قابلیت جریان کشی و هم قابلیت جریان دهی خوبی دارد دیگر نیازی به وجود آی سی بافر برای خروجی و همچنین برای ورودی ندارد .
اتصال رله :
رله استفاده شده در مدار یک رله 12 ولت است که جریان آن توسط یک مدار تقویت کننده جریان امیتر مشترک ، تامین می گردد ولتاژ حدود 12 ولت مستقیما ً از خروجی به یک سر بوبین رله وصل می گردد و سر دیگر بوبین ، با یک شدن پایه میکرو ودر نتیجه روشن شدن ترانزیستور مذکور ، زمین می گردد و این به معنای روشن شدن رله است .
در بیس تقویت کننده جریان امیتر مشترک یک دیود قرار دارد چون بوبین رله ذخیره کننده جریان است پس از قطع جریان از رله جریان ذخیره شده در رله باعث می شود که به میکرو ترانزیستور آسیب وارد شود و این دیود از آن جلوگیری می نماید .
نوع این دیود از نوع ژرمانیوم می باشد تا ولتاژی که دو سر آن افت می کند ناچیز باشد و ترانزیستور روشن شود.
پس از شروع برنامه و معرفی IC میکروکنترلر مورد استفاده در مدار و همچنین فرکانس کریستال داخلی میکرو کنترلر ، صفحه کلید و صفحه نمایشگر LCD برای میکرو کنترلر تعریف می شود .
میکرو AVR برخلاف میکروهای دیگر به خاطر استفاده از زبان سطح بالا دیگر نیاز به زیر برنامه ای مخصوص برای تعریف صفحه کلید و همچنین صفحه نمایشگر LCD ندارد و به راحتی با تعیین پورت متصل به صفحه کلید و تعیین پایه های مورد استفاده برای صفحه نمایشگر LCD و همچنین نوع آن قادر به شناختن آن است وبا چند برنامه مختصر به راحتی می توان از آنها استفاده کرد .
برچسب SUPERVISER :
این برچسب برای SUPERVISER تعریف شده است بدین صورت که اگر استفاده کنندگان رمز مورد نظر خود را فراموش کردند می توانند در هنگام روشن شدن قفل کلید OK را فشار داده تا بدین صورت وارد برچسب SUPERVISER شوند .
رمز تعریف شده برای SUPERVISER یعنی P=12345 وقتی که رمز مورد نظر وارد شد هر سه رمز سه استفاده کنندگان برابر صفر می گردد که آنها می توانند با تغییر رمز خود ، رمز مورد دلخواه خود را وارد کنند .