تشریح مدار
مدار از هفت قسمت کلی تشکیل شده است:
1- میکرو کنترلر (ATMega 16)
2- صفحه نمایش (LCD 16 X 2)
3- نوسان سازها
4- مولد AVCC و ولتاژ مرجع
5- تغذیه مدار
6- سنسور دما
7- ورودی ها و خروجی ها
1- قسمت میکرو کنترلر که از یک AVR (ATMega 32) تشکیل شده است استفاده از این میکرو کنترلر به دلیل امکانات زیاد که موارد استفاده در این مدار داشتند است که از آن جمله می توان این قسمت ها را نام برد:
1- پردازش قوی و مناسب
2- حافظه SRAM و EEPROM داخلی
3- مبدل آنالوگ به دیجیتال داخلی
4- تایمر کانترهای متعدد ومتنوع
5- قابلیت اتصال کریستال دوم ساعت بدون هیچ مدار اضافه
6- تغذیه جدا جهت مدارات داخلی آنالوگ به دیجیتال
7- خروجی های محافظت شده در برابر عبور بیش از حد جریان
8- اتصال راحت به LCD
9- حافظه FLASH کافی برای برنامه
10- پشتیبانی شرکت EL از این نوع میکرو کنترلرها بنابراین برنامه نویسی ساده تر نسبت به برنامه نویسی به زبان دما را اندازه گیری و بعد از محاسبات روی LCD نمایش می دهد همچنین به وسیله یک عدد تایمر داخلی زمان و تاریخ را محاسبه می کند نوشتن این برنامه به کمک متغیرهایی که از SRAM داخلی استفاده می کند ساده تر شده است همچنین این قسمت وظیفه کنترل خروجی و ورودی ها که شامل سه کلید در ورودی و بازرزنگ و LCD در خروجی را نیز بر عهده می گیرد.
2- صفحه نمایش دستگاه که از یک LCD 16X2 که شامل دو سطر و 16 ستون است تشکیل شده است این نوع LCD دارای 11 پایه کنترل می باشد که ما از 7 پایه آن استفاده کرده ایم و چهار پایه دیگر که در حالت اتصال به روش BUS استفاده می شوند بدون استفاده و خالی می ماند 2 پایه جهت تغذیه 2.4V- 5.5V استفاده می شوند 1 پایه که به نام کنتر است که جهت تنظیم روشنایی و وضوح به کار می رود 2 پایه دیگر که تغذیه Back Light که مقدارآن 4.5V است را فراهم می کند.
3- نوسان سازها که شامل دو قسمت یکی که قلب مدار است که X2 و C3 و C4 و دیگری که مولد فرکانس کلاک است و X1 این وظیفه را بر عهده دارد فرکانس های خروجی یکی HZ 11059200 است که کلاک اصلی میکرو بوده و دیگری 32.768khz که با کلاک اصلی سیستم آسنکرون شده و توسط یک تایمر هشت بیتی فرکانس دقیق HZ 1را تولید می کند.
4- مولد AVCC که از یک فیلتر تشکیل شده است L1 و C1 وظیفه کاهش نویزهای زمینه ای را بر عهده دارند ضمناً ولتاژ مرجع مبدل آنالوگ به دیجیتال از داخل فراهم می شود و پایه Refrence با C2 به زمین وصل شده است و C2 وظیفه حذف نویزهای این پایه را بر عهده دارد.
5- تغذیه مدار که متشکل از ترانس TR که ولتاژ 220 را به 9 ولت AC تبدیل می کند این ولتاژ توسط دیودهای D1-D4 و خازن C5 به 9 ولت DC تبدیل می شود این ولتاژ توسط IC3 که یک رگولاتر 5 ولت مثبت است به 5 ولت دقیق و رگوله تبدیل می شود خازن C6 نیز وظیفه گرفتن نویزهای حاصل از کار LCD و BAZZER و کلیدها را بر عهده دارد.
6- سنسور دما که دما را به سیگنال های آنالوگ تبدیل می کند این سنسور به ازاء هر درجه سانتی گراد 10 میلی ولت در خروجی خود تولید می کند دقت این سنسور کالیبره شده 4/3 درجه سانتی گراد می باشد مصرف این IC (سنسور LM 35 ) 60 ua می باشد تغذیه این سنسور می تواند ولتاژی بین 4V-30V باشد مطابق بسته بندی و پسوند شماره این سنسور می تواند دمایی بین 55- درجه سانتی گراد الی 155 درجه سانتی گراد را اندازه گیری کند البته این نوع بسته بندی انتخاب شده و نوع مبدل آنالوگ به دیجیتال مدار دمایی بین 2 درجه سانتی گراد الی 99 درجه سانتی گراد را فقط می تواند اندازه گیری کند.
7- ورودی ها و خروجی ها که ورودی ها که یکی سنسور دما و دیگری که شامل سه کلید SW1, SW2, SW3 که کلید Select وظیفه وارد شدن و خارج شدن از قسمت تنظیم انتخاب و تعویض معیار مورد نظر برای تنظیم را دارد کلید Up که وظیفه زیاد کردن پارامتر انتخاب شده برای تنظیم را بر عهده دارد و کلید Down که وظیفه کم کردن پارامتر انتخاب شد برای تنظیم را بر عهده دارد همچنین کلید Down وظیفه قطع آلارم را در هنگام زنگ زدن نیز بر عهده دارد البته به شرط آن که مدار در حالت تنظیم نباشد مقاومت های R1, R2, R3 نیز نقش Pull Up را بر عهده می گیرند تا هنگامی که از کلید ها استفاده نمی شود نویز و برخورد دست نتواند روی کلید تاثیر بگذارد که این مشکل به دلیل بالا بودن امپدانس ورودی ها به وجود می آید خروجی ها که شامل LCD و دیگری Buzzer زنگ می باشد و بازر زنگ یک بازر 5 ولت است و صدای مناسب و بلندی را برای آلارم فراهم می کند البته در صورت لزوم می توان برای بیشتر شدن صدای زنگ از یک ترانزیستور به جای اتصال مستقیم به میکرو استفاده کرد.
تنظیم ساعت-تاریخ- آلارم
ابتدا با کلید Select وارد قسمت بالا سمت راست معیار مورد نظر برای تنظیم نوشته شده است با زدن کلید Selec این معیار به این ترتیب عوض می شود: 1- Minute (دقیقه) 2- Hour (ساعت) 3- Day (روز) 4- Month (ماه) 5- Year (سال) 6- A- Min (دقیقه آلارم) 7- A- Hour (ساعت آلارم) 8- Alarm (خاموش و روشن کردن آلارم که روشن بودن آلارم با یک زنگ نمایش داده می شود). با دیدن هر کدام از عبارات بالا می توان معیار مورد نظر را با کلید Up و Down کم و زیاد کرد البته در مورد شماره 8 فقط خاموش/ روشن. نکته دیگر این که ساعت بین 23-0 و روز بین 31- 1 می باشد سال را هم می توان به میلادی و یا در صورت دل خواه به هجری شمسی تنظیم نمود. بعد از مورد شماره 8 با یک کلید Select می توان از این قسمت خارج شد اگر حدود 20-15 ثانیه کلیدی فشار داده نشود برنامه به صورت اتوماتیک از قسمت تنظیم خارج می شود ضمناً هنگام فعال شدن Alarm می توان با یک کلید Down صدای زنگ را خاموش کرد.
مطالبی در مورد برنامه دستگاه و زبان برنامه نویسی Bascom
در این نوع برنامه نویسی میکروی مورد استفاده را با فرمان $Regfile= (m16def. dat) البته برای ATmega16 تعریف می کنیم در خط بعد بایستی سرعت کار و یا نوسان ساز چه داخلی و چه خارجی را به هرتز نوشت حال با فرمان Config تعیین می کنیم که چه پین هایی و جهت چه موردی (ورودی یا خروجی) در برنامه استفاده می شود در خط بعد اتصال LCD برای برنامه تعریف شده است درخط بعد نوع LCD تعریف می شود خط بعد تایمر شماره یک را در حالت تایمر و با استفاده از وقفه مورد استفاده قرار می دهیم در خطوطی که با DIM شروع شده متغیرهای مورد استفاده در برنامه تعریف شده اند این متغیرها بنا بر Integer- Byte- Bit فضایی را از SRAM مشغول می کنند به این صورت که Bit یک بیت Byte یک بایت و Intege دو بایت را اشغال می کنند و اعمال ریاضی و تصمیمات شرطی و هر عملگر منطقی را می توان بنا به نام متغیر مورد نظر روی این متغیرها در هنگام برنامه به کار برد. درخط بعد دوکاراکتر زنگ و درجه سانتی گراد ساخته شده و بلافاصله در Ram داخلی LCD قرار می گیرد تا در هنگام فراخوانی مورد استفاده قرار گیرد حال تایمر فعال می شود و ADC شروع به کار می کند و مکان نمای LCD خاموش شده و برای اطمینان LCD پاک می شود حالا وارد حلقه اصلی برنامه می شویم در این حلقه ساعت تاریخ دما اندازه گیری می شود وروی LCD نشان داده می شود در همین قسمت مدار حالت زنگ را نیز مقایسه و در صورت بروز زنگ و وقفه مورد نظر از این قسمت خارج می شود البته برنامه رد یکصورت دیگر نیز ایزااین قسمت می توادخارج شود آن هم فشردن کلید ؟ است البته هرنوع خروجی از بخش اصلی برنامه موقت بوده و به هر حال به صورت دستی و اگر انجام ندهیم به صورت اتوماتیک و طی شمارش یک تایمر به بخش اصلی بر می گردد برنامه دارای حلقه های تکرار همیشگی است و به طور طبیعی برنامه نه تمام می شود نه هرگز از این حلقه ها خارج می شود دلیل پیچیده شدن قسمت کلیدها این است که با یک بار فشردن یک کلید برنامه منتظر رها کردن کلید می شود و یک کلید برای چند بار انجام دادن یک کار بایستی چند بار فشار داده شود و نگه داشتن کلید بی فایده است فقط یک بار محسوب می شود برای این که زنگ به صورت مداوم و مکرر نباشد از یک تایمر استفاده شده است و با این کار زنگ به صورت قطع و وصل خواهد بود سه حلقه اصلی برنامه یکی Main البته با فرمان DO LOOP و دو حلقه دیگر یکی حلقه تنظیم ب نام Tune و دیگری که وظیفه عمل اجرای آلارم را بر عهده دارد نام آن Ring است.
مطالبی در مورد ATMega 32, AVR استفاده شده در این دستگاه
– امکانات بالا مصرف کم و مقرون به صرفه بودن با استفاده از تکنولوژی AVR
– 131 دستور العمل که اغلب در یک سیکل ماشین اجرا می شوند
– 8 * 32 رجیستر کاربردی جهت کار و استفاده های مختلف
– عملکرد کاملاً ثابت
– توان عملیاتی بالا 16MIPS در فرکانس 16MHZ
– عمل ضرب در 2 درون چیپ توسط برنامه
– 32 K حافظه داخلی Flash جهت نوشتن برنامه با دوام 10000 بار نوشتن و پاک کردن
– انتخاب و تغییر مقدار Boot Loader در حافظه Flash با استفاده از فیوز بیت
– عملیات خواندن در هنگام نوشتن
– 512 byte حافظه داخلی EEPROM جهت استفاده در حین کار و اجرای برنامه با دوام 100000 بار نوشتن و پاک کردن
– 1K حافظه داخلی SRAM
– قابلیت قفل کردن برنامه جهت حفاظت نرم افزاری
– قابلیت قفل کردن برنامه جهت حفاظت نرم افزاری
– قابلیت برنامه ریزی حافظه Flash و حافظه EEPROM و تمامی فیوز بیت ها و لاک بیت ها در مدار و دستگاه با استفاده از تکنولوژی ISP
– پشتیبانی اشکال زدایی در چیپ به صورت وسیع با استفاده از رابط Jtag
– دو عدد تایمر/ کانتر 8 بیتی کاملاً مجزا با قابلیت تقسیم کلاک و یا مقایسه
– یک عدد تایمر/ کانتر 16 بیتی با قابلیت تقسیم کلاک و یا مقایسه و یا حالت Capture
– شمارنده جهت ساخت زمان حقیقی با یک اسیلاتور مجزا
– چهار کانال مدولاسیون عرض پالس
– هشت کانال مبدل آنالوگ به دیجیتال با وضوح 10 بیت با استاده تکی و مجزا
– هفت کانال ضرب کننده برای مبدل آنالوگ به دیجیتال (فقط در بسته بندی TQFP )
– دو کانال ضرب کننده برای مبدل آنالوگ به دیجیتال با گین قابل برنامه ریزی 1X, 10X, 200X
– قابلیت استفاده از رابط دو سیمه با استفاده از تکنولوژی (philips) 12C
– قابلیت استفاده از رابط سریال USART
– قابلیت استفاده از رابط SPI به صورت Master/ Slave
— تایمر Watchdog قابل برنامه ریزی با اسیلاتور کاملاً مجزا
– یک مقایسه گر آنالوگ داخلی
ویژگی های استثنایی ATMega 32
– وقفه های داخلی و خارجی
– اسیلاتور کالیبره شده RC داخلی
– ریست خودکار در هنگام روشن شدن و Brown- Out قابل برنامه ریزی
– شش حالت کم مصرف کردن (Sleep) برای از کار انداختن (Shut Down) قسمت های استفاده نشده میکرو و کاهش و صرفه جویی در توان مصرفی:
1- حالت بی کاری (IDLE)
2- حالت کاهش نویز برای (ADC Noise Reduction) ADC
3- توقف اسیلاتور خارجی و خاموشی کل قسمت ها به جز وقفه ها (Power- Down)
4- همان حالت Down-Power ولی کار کردن Timer/ Cunter شماره 2 (Power Save)
5- همان حالت Down-Power ولی قطع نشدن کلاک خارجی در این حالت میکرو پس از سپری شدن 6 سیکل بیدار می شود (Standby)
6- تمدید (Extended- Standby) Standby
– 32 خط I/O قابل برنامه ریزی
– در بسته بندی های مختلف: 40- Pin PDIP, 44- Lead TQFP, 44- Pad MLF
– ولتاژ کار 2.7V-5.5V برای ATMega 32 L