مقاله بررسی ساخت يک قفل الکترونيکي با استفاده از ميکرو کنترلر AVR (ATMEGA8)
دسته بندي :
فنی و مهندسی »
برق، الکترونیک، مخابرات
مقاله بررسي ساخت يک قفل الکترونيکي با استفاده از ميکرو کنترلر AVR (ATMEGA8) در 24 صفحه ورد قابل ويرايش
چکيده :
در اين پروژه پيرامون طراحي نرم افزار ساخت يک قفل الکترونيکي با استفاده از ميکرو کنترلر 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
بخش سوم / تشريح زيربرنامه ها :
زيربرنامه BEUTIFULER :
اين زيربرنامه فقط براي زيبايي طرز کار قفل در نظر گرفته شده است بدين صورت که پس از انتخاب گزينه OPEN براي باز کردن قفل مورد نظر قفل بلافاصله باز نمي شود بلکه پس از يک مکث چند ثانيه اي و نمايش دادن چند نقطه بر روي صفحه نمايشگر LCD قفل باز مي شود .
زيربرنامه LOGO :
قبل از اجراي زيربرنامه يک خط برنامه براي تبديل اعداد صفحه کليد به اعداد دلخواه ما نوشته شده است زيرا ميکروي AVR اعداد صفحه کليد را به ترتيب از 15-0 در نظر مي گيرد و براي تبديل شدن به فرم دلخواه ما بايد ابتدا اين خط برنامه نوشته شود .
اين زيربرنامه براي گرفتن PASSWORD مورد استفاده قرار مي گيرد يعني هر جا که از USER خواسته شد PASSWORD خود را وارد کند به اين زير برنامه مي آيد و در آن پس از تبديل کليد هاي زده شده به فرم دسيمال ( دهدهي ) آن ، عدد وارد شده را نيز در يک متغير ذخيره مي کند .
زيربرنامه COMP :
اين زيربرنامه براي مقايسه رمز وارد شده توسط USER بوسيله صفحه کليد و همچنين رمز ذخيره شده در هر يک از مکانهاي حافظه اي که به هر USER اختصاص دارد به کار مي رود چنانچه رمز مورد نظر اشتباه باشد به برنامه اصلي برگشته و در برنامه اصلي از USER مي خواهد دوباره اين رمز
را وارد نمايد چنانچه USER رمز را تا سه مرتبه اشتباه وارد نمايد اين زيربرنامه پس از نمايش SORRY!! بر روي صفحه نمايشگر LCD به ابتداي برنامه باز مي گردد و چنانچه رمز درست بود نيز به برنامه اصلي باز مي گردد و به برچسب WELCOM مي رود .