چکیده :
قبل از ساخت میکروکنترلرها ، برای ساخت هر وسیله یا ابزاری برای اندازه گیری های مختلف مثل دما ، ولتاژ ، جریان ، فرکانس و ... از سخت افزار در سطح وسیعی استفاده می شد . ولی با ساخت و اختراع میکروکنترلرها انجام این نوع اندازه گیری ها آسانتر شد .
هدف از انجام این تحقیق به دست آوردن سخت افزاری است که گوشه ای از قابلیت های یک میکروکنترلر از جمله دقت و سرعت را نشان می دهد .
در این تحقیق سعی شده با استفاده از میکروکنترلر AVR و صفحه کلید 4×4 تمام کلیدها اسکن می شود.
این پروژه شامل دو قسمت : 1) نرم افزار ، 2) سخت افزار می باشد .
وجود میکروکنترلر باعث شده است مقدار زیادی از سخت افزار را که قبلا مورد استفاده قرار می گرفت حذف نماید . در ادامه به توضیح این دو بخش و نحوه عملکرد AVR پرداخته شده است .
تاریخچه و مقدمه :
ریزپردازنده وسیله ای است که می توان با دادن فرمان آن را به عملیات مختلف واداشت . یعنی یک کنترل کننده قابل برنامه ریزی است . همه ریزپردازنده ها سه عمل اساسی یکسانی را انجام می دهند : انتقال اطلاعات ، حساب و منطق ، تصمیم گیری ، اینها سه کار یکسان هستند که به وسیله هر ریزپردازنده ، کامپیوتر کوچک یا کامپیوتر مرکزی انجام می شود .
اولین ریزپردازنده تک تراشه ای ، ریزپردازنده Intel 4004 بود که توانست دو عدد 4 بیتی دودویی را جمع کند و عملیات متعدد دیگری را انجام دهد .
4004 با معیارهای امروزی یک وسیله کاملا ابتدایی بود که می توانست 4096 مکان مختلف را آدرس دهد. برای حل این مسئله بود که ریزپردازنده 8 بیتی ( 8008 ) به وسیله شرکت Intel معرفی شد .
Intel 8008:
Intel 8008 توانست اعداد 8 بیتی را ( که بایت نامیده می شوند ) به کار گیرد ، که این خود پیشرفت بزرگی نسبت به 4004 بود . تقریبا در همان زمان گشایشی در ساختن مدارهای منطقی NMOS ( نیمه هادی اکسید فلز از نوع N )پیش آمد . منطق NMOS بسیار سریع تر از PMOS است . به علاوه از یک منبع تغذیه مثبت استفاده می کند که آن را برای اتصال به مدارهای منطقی TTL سازگارتر می کند . خصوصیات مذکور از این جهت دارای اهمیت است که بسیاری از مدارهای جنبی ریزپردازنده از نوع TTL هستند . NMOS سرعت ریزپردازنده را با ضریبی در حدود 25 بار افزایش می دهد که رقم چشمگیری است .
این تکنولوژی جدید در ساختمان ریزپردازنده معروف امروزی یعنی Intel 8080 به کار برده شد .
Intel 8080:
Intel 8080 در 1973 و معرفی آن دنیا را به دوره ریزپردازنده وارد کرد . 8080 نوع بسیار غنی شده ای از 8080 بود که می توانست 500000 عمل را در ثانیه انجام دهد و 64 کیلو بایت از حافظه را آدرس می دهد و 500000 دستورالعمل را در ثانیه اجرا کند . امتیاز اصلی Z80 نسبت به 8080 این است که می تواند از دستورالعمل هایی که برای 8080 می شوند نیز استفاده کند . نرم افزاری که برای 8080 استفاده می شود بدون پیچیدگی بر روی Z80 قابل اجرا است . یک مشخصه سخت افزاری مهم Z80 در مقایسه با 8080 آرایش کامل تر ثبات هاست . Z80 همچنین مکانیزمی را به کار می گیرد که حافظه RAM دینامیکی را به طور خورکار تازه می کند . این دو مشخصه اضافی موجب برتری Z80 نسبت به Intel 8080 شده است.
سایر ریزپردازنده های اولیه :
تا سال 1973 ، Intel تولید کننده اصلی ریزپردازنده ها بود . بعد از آن تولید کنندگان دیگر متوجه شدند که این وسیله جدید دارای آینده است و شروع به تولید انواع اصلاح شده دیگری از ریزپردازنده Intel 8080 کردند .
ریزپردازنده های امروزی :
به نظر می رسد که آینده توجه ریزپردازنده در دست سه شرکت Intel ، Motorola و Zilog است . این شرکت ها هر یک با دو سال یک بار انواع پیشرفته تری از ریزپردازنده ها را تولید می کنند . امروزه ریزپردازنده ها از نظر اندازه بین 4 تا 32 بیت دارند .
(جدول در فایل اصلی موجود است)
انواع میکروپروسسورها :
1. Genela ( که خود شامل cpu می باشد که بر اساس برنامه وظیفه آنها تغییر می کند و µ.c که از تکنولوژی RISC سود می برد .
2.پروسسورهای صوتی : سری VP ساخت شرکت QUICK و سری ISD
3.پروسسورهای مخابراتی ( شرکت MITEL فقط پروسسورهای مخابراتی می زند . )
4. پروسسورهای خاص ( برای کاربردهای خاص استفاده می شود ) .
در معماری CPU از تکنولوژی CISC و RISC استفاده شده که تکنولوژی CISC ( Complex INSTROCTION set Computer )دستورات پیچیده را در داخل خود اجرا می کند و تکنولوژی RISC( Reduce INSTROCTION set Computer )
SET کامپیوتری است که دستورات ساده ای دارد که از این نوع تکنولوژی در میکرو کنترلرها نیز استفاده شده و خواص آن تعداد کم دستورالعمل ها می باشد .
تعریف µ.c :
تراشه هایی هستند که واسطهای صفحه کلید ، دیسک و در بسیاری از دیگر دستگاهها استفاده می شود . این نوع تراشه ها به علت حجم بسیار کوچک که دارند به نام single µ.c chip معروفند .
تفاوت میان ریزپردازنده با ریز کنترل کننده ( µ.c ) :
ریز کنترل کننده ها علاوه بر cpu شامل حافظه ، خطوط I/O تایمر ، کانتر و در برخی از آنها حتی A/D نیز دارند . حال به مروری بر میکروهای AVR و انواع آنها می پردازیم .
مقدمه :
الکترونیک در زندگی امروز
امروزه پیشرفت در الکترونیک ای امکان را به ما داده است تا بتوانیم انواع وسایل الکترونیکی مانند ، ماشین حساب های جیبی ، ساعت رقمی ، کامپیوتر برای کاربرد در صنعت در تحقیقات پزشکی و یا طریقه تولید کالا به طور اتوماتیک در کارخانجات و بسیاری از موارد دیگر را مستقیم یا غیر مستقیم مورد استفاده قرار دهیم .
اینها همه به خاطر آن است که فن آوری توانسته مدارهای الکترونیکی را که شامل اجزاء کوچک الکترونیکی هستند ، بر روی یک قطعه کوچک سیلیکن که شاید سطح آن به 5 میلی متر مربع بیشتر نیست ، جای دهد . فن آوری میکروالکترونیک که به مدارهای یکپارچه معروف به آی سی یا تراشه مربوط می گردد ، در بهبود زندگی بشر تاثیر به سزایی داشته و آن را بطور کلی دگرگون نموده است . تراشه ها همچنین برای مصارفی چون کنترل رباتها در کارخانجات ، یا کنترل چراغهای راهنمایی و یا وسایل خانگی مانند ماشین لباس شویی و غیره مورد استفاده قرار می گیرند . از طرفی تراشه ها را می توان مغز دستگاه هایی چون میکرو کامپیوترها و رباتها به حساب آورد .
2-1 سیستم های الکترونیکی
پس از یک نظر اجمالی در داخل یک سیستم الکترونیکی مانند یک دستگاه رادیو ، تلویزیون و یا کامپیوتر ممکن است انسان از پیچیدگی آن و از یادگیری الکترونیک دلسرد شود ، اما در واقع آن طور که به نظر می رسند ، دشوار نیستند و این به دو دلیل است .
اول اینکه اگرچه سیستم های الکترونیکی اجزاو قطعات زیادی را در خود جای می دهند ، اما باید دانست که انواع کلی این اجزا اغلب محدود و انگشت شمار هستند . از مهم ترین گروه های این اجزا می توان مقاومت ها ، خازن ها ، القا گرها ، دیودها ، ترانزیستورها ، کلیدها و مبدل ها را نام برد . این اجزا زمانی که به صورت یکپارچه در یک تراشه قرار می گیرند ، هر یک همان وظیفه خود را به عنوان یک قطعه مجزا انجام می دهند و فقط اندازه فیزیکی آن کوچکتر شده است .
دوم اینکه انواع سیستم های الکترونیکی از تعداد محدودی مدارهای اصولی و یا بلوک هایی که وظیفه هر کدام به کاراندازی قسمتی از سیستم مثلا تقویت یا شمارش است ، تشکیل یافته اند که به منظور عملکرد کل سیستم ، آن را به یکدیگر متصل می نمایند .
3-1 مدارهای خطی و مدارهای رقمی
بسیاری از سیستم های الکترونیکی طوری طراحی شده اند تا با دریافت یک ورودی الکتریکی و با پردازش آن ، یک خروجی الکتریکی تولید کرده تا بتوانند کار معینی را انجام دهند ( که این کار بدون سیستم مورد نظر ، به تنهایی از عهده ورودی الکتریکی مذکور ساخته نخواهد بود . )
مدارهای الکترونیکی که در سیستم ها کاربرد دارند به دو دسته مهم تقسیم می شوند : مدارهای خطی ( یا قیاسی ) و مدارهای رقمی یا دیجیتال .
مدارهای خطی ار نوع مدارهای تقویت کننده هستند که با سیگنال هایی سرو کار دارند که این سیگنال ها معرف کمیت هایی مانند تغییرات صوتی ، صدای انسان یا موسیقی و غیره هستند . در بسیاری از مدارهای خطی از ترانزیستور به عنوان تقویت کننده صوتی استفاده می کنند .
مدارهای دیجیتال از نوع مدارهای کلیدزنی هستند ، که مقدار ورودی یا خروجی آنها در هر زمان فقط می تواند دارای یکی از دو حالت صفر یا یک باشد و اگر قرار است این دو حالت به هم تبدیل شوند این تبدیل حالت بسیار سریع اتفاق می افتد ، در حالی که مدارهای خطی دارای حالت مداوم بوده و این حالات به تدریج در واحد زمان قابل تغییر هستند . مدارهای رقمی دارای فقط دو حالت هستند و ورودی و خروجی آنها به اصطلاح (high) به معنی بالا ، یعنی نزدیک به میزان ولتاژ منبع مدار و یا (low) به معنی پایین ، یعنی نزدیک صفر ولت هستند . در این مدارها عمل کلیدزنی به وسیله ترانزیستور انجام می گیرد . دستگاه شمارش گر در واقع یک مدار رقمی است که در آن سیگنال تولید شده توسط سلول نوری ، یا در حالت صفر و یا در حالت یک قرار می گیرد و این امر بستگی به قطع شدن یا نشدن نور دارد . بنابراین مدارهای رقمی علائم الکتریکی را به صورت پالس یا ضربه با خود حمل می کنند . سیستمی که در آن یک لامپ توسط دیمر کنترل و کم و زیاد می شود ، یک سیستم حالت مداوم و سیستمی که همان لامپ را خاموش و روشن می کند یک سیستم دو حالته است ، چون که توسط آن لامپ مذکور یا کاملا روشن یا کاملا خاموش می شود .
فصل اول: مختصری از نحوه کار با AVR
1-1- خصوصیات Atmega16L و Atmega16
٭ ازمعماری AVR RISC استفاده می کند .
- کارایی بالا و توان مصرفی کم
- دارای 131 دستورالعمل با کارایی بالا که اکثرا تنها در یک کلاک سیکل اجرا می شوند .
- 8×32رجیستر کاربردی
- سرعتی تا 16 MIPS در فرکانس 16 MHZ
٭ حافظه ، برنامه و داده غیر فرار
-16K بایت حافظه FLASH داخلی قابل برنامه ریزی
پایداری حافظه FLASH : قابلیت 10000 بار نوشتن و پاک کردن ( WRITE / ERASE )
-1024 بایت حافظه داخلی SRAM
-512 بایت حافظه EEPROM داخلی قابل برنامه ریزی
پایداری حافظه EEPROM : قابلیت 100000 بار نوشتن و پاک کردن ( WRITE / ERASE )
- قفل برنامه FLASH و حفاظت داده EEPROM
٭ قابلیت ارتباط JTAG ( IEEE Std . )
- برنامه ریزی برنامه FLASH ، EEPROM ، FUSE BITS ، LOCK BITS از طریق ارتباط JTAG
٭ خصوصیات جانبی
- دو تایمر- کانتر (TIMER / COUNTER ) 8 بیتی با PRESCALER مجزا و مد COMPARE
- یک تایمر- کانتر (TIMER / COUNTER ) 16 بیتی با PRESCALER مجزا و دارای مدهای COMPARE و CAPTURE
- 4 کانال PWM
- 8 کانال مبدل آنالوگ به دیجیتال 10 بیتی
8 کانال SINGLE-ENDED
دارای 7 کانال تفاضلی در بسته بندی TQFP
دارای دو کانال تفاضلی با کنترل گین 1x ، 10x و 200x
- یک مقایسه کننده آنالوگ داخلی .
- WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی .
- قابلیت ارتباط با پروتکل سریال دو سیمه (TWO-WIRE )
- قابلیت ارتباط سریال SPI ( SERIAL PERIPHERAL INTERFACE ) به صورت MASTER یا SLAVE
-USART سریال قابل برنامه ریزی
٭ خصوصیات ویژه میکروکنترلر
- POWER-ON RESET CIRCUIT و BROWN-OUT قابل برنامه ریزی .
- دارای اسیلاتور RC داخلی کالیبره شده
- دارای 6 حالت SLEEP ( POWER-DOWN ، IDLE ، POWER-SAVE ، STANDBY ، EXTENDED STANDBY و ADC NOISE REDUCTION )
- منابع وقفه (INTERRUPT ) داخلی و خارجی .
- عملکرد کاملا ثابت .
- توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS
٭ توان مصرفی در 1MHZ ، 3V ، 250C برای ATMEGA16L
- حالت فعال 1.1 mA ( ACTIVE MODE )
- در حالت بی کاری 0.35 mA ( IDLE MODE )
- در حالت POWER-DOWN : > 1µA
٭ ولتاژهای عملیاتی (کاری )
-2.7 V تا5.5 V برای ( Atmega16 L )
-4.5 V تا 5.5 V برای ( Atmega16 )
٭ فرکانس های کاری
-0MHZ تا 8MHZ برای( Atmega16 L )
-0MHZ تا 16MHZ برای ( Atmega16 )
خطوط I/O و انواع بسته بندی
-32 خط ورودی/ خروجی ( I/O) قابل برنامه ریزی .
-40 پایه PDIP ، 44 پایه TQFP و 44 پایه MLF
1-1-1- ترکیب پایه ها:
2-1-1- فیوز بیت های ATMEGA16
ATMEGA16 دارای دو بایت فیوز طبق جدول های زیر می باشد :
(جدول در فایل اصلی موجود است)
فیوز بیت ها با پاک کردن (ERASE ) میکرو تاثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند . منطق 0 به معنای برنامه ریزی شدن و 1 به معنای برنامه ریزی نشدن بیت است .
OCDEN : در صورتی که بیت های قفل برنامه ریزی نشده باشند برنامه ریزی این بیت به همراه بیت JTAGEN باعث می شود که سیستم ON CHIP DEBUG فعال شود . برنامه ریزی شدن این بیت به قسمت هایی از میکرو امکان می دهد که در مدهای SLEEP کار کنند که این خود باعث افزایش مصرف سیستم می گردد . این بیت به صورتی پیش فرض برنامه ریزی نشده ( 1 ) است .
JTAGEN : بیتی برای فعال سازی برنامه ریزی میکرو از طریق استاندارد ارتباطی IEEE( JTAG ) که در حالت پیش فرض فعال است و میکرو می تواند از این ارتباط برای برنامه ریزی خود استفاده نماید .
SPIEN : در حالت پیش فرض برنامه ریزی شده و میکرو از طریق سریال SPI برنامه ریزی می شود .
CKOPT : انتخاب کلاک که به صورت پیش فرض برنامه ریزی نشده است . عملکرد این بیت به بیت های CKSEL بستگی دارد که در بخش کلاک سیستم ( 1 ) در انتهای همین فصل آمده است .
EESAVE : در حالت پیش فرض برنامه ریزی نشده و در زمان پاک شدن (ERASE ) میکرو حافظه EEPROM پاک می شود ولی در صورتی که برنامه ریزی شود محتویات EEPROM در زمان پاک شدن میکرو محفوظ می ماند .
BOOTSZ0 , BOOTSZ1 برای انتخاب مقدار حافظه BOOT طبق جدول زیر برنامه ریزی می شوند و در زمان برنامه ریزی شدن فیوز بیت BOOTRST اجرای برنامه از آدرس حافظه BOOT آغاز خواهد شد .
Abstract:
Before manufacturing micro-controlers, making any device for measuring of any kind, like temperature, Voltage, Current, ferequency... , hardware was used in a large scale, but with the advent of modern micro-controlers, such measure ments will be performed easily.
The aim of this project is concentrating on a software capable of in dicating anything at a high spead and good perfectness.
In this project we attempt to measure DC voltage by means of AVR micro-controlers, in which a clock is fitted to achieve more variety.
This project consists of two parts: software and hardware. Micro- controller caused to eliminate a large number of hard ware for merly used for measuring. Explanations concerned with the a bove parts and the relevant operation of AVR are for warded.