پروژه طراحی میکروکنترلر AVR جهت اسکن چکیده : قبل از ساخت میکروکنترلرها ، برای ساخت هر وسیله یا ابزاری برای اندازه گیری های مختلف مثل دما ، ولتاژ ، جریان ، فرکانس و ... از سخت افزار در سطح وسیعی استفاده می شد . ولی با ساخت و اختراع میکروکنترلرها انجام این نوع اندازه گیری ها آسانتر شد . هدف از انجام این پروژه به دست آوردن سخت افزاری است که گوشه ای از قابلیت های یک میکروکنترلر از جمله دقت و سرعت را نشان می دهد . در این پروژه سعی شده با استفاده از میکروکنترلر 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 بیت دارند . انواع میکروپروسسورها :
- Genela ( که خود شامل cpu می باشد که بر اساس برنامه وظیفه آنها تغییر می کند و µ.c که از تکنولوژی RISC سود می برد .
2.پروسسورهای صوتی : سری
VP ساخت شرکت
QUICK و سری
ISD 3.پروسسورهای مخابراتی ( شرکت
MITEL فقط پروسسورهای مخابراتی می زند . )
- پروسسورهای خاص ( برای کاربردهای خاص استفاده می شود ) .
در معماری
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 و انواع بسته بندی