ریزپردازنده وسیله ای است که می توان با دادن فرمان آن را به عملیات مختلف واداشت .
یعنی یک کنترل کننده قابل برنامه ریزی است .
همه ریزپردازنده ها سه عمل اساسی یکسانی را انجام می دهند : انتقال اطلاعات ، حساب و منطق ، تصمیم گیری ، اینها سه کار یکسان هستند که به وسیله هر ریزپردازنده ، کامپیوتر کوچک یا کامپیوتر مرکزی انجام می شود .
اولین ریزپردازنده تک تراشه ای ، ریزپردازنده 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 آغاز خواهد شد .
BOOTRST : بیتی برای انتخاب بردار ریست BOOT که در حالت پیش فرض برنامه ریزی نشده و آدرس بردار ریست $0000 است و در صورت برنامه ریزی آدرس بردار ریست به آدرسی که فیوز بیت های BOOTSZ0 وBOOTSZ1 مشخص کرده اند تغییر می یابد .
BODLEVEL : زمانی که این بیت برنامه ریزی نشده ( پیش فرض ) باشد ، اگر ولتاژ پایه VCC از 2.7V پایین تر شود ریست داخلی میکرو فعال شده و سیستم را ریست می کند .
زمانی که این بیت برنامه ریزی شده باشد ، اگر ولتاژ پایه VCC از 4V پایین تر شود ریست داخلی میکرو فعال شده و میکرو را طبق شکل 3-2 ریست می کند .
BODEN : برای فعال کردن عملکرد مدار BROWN-OUT این بیت بایستی برنامه ریزی شده باشد .
این بیت به صورت پیش فرض برنامه ریزی نشده است .
SUT1 ,SUT0 : عملکرد این دو بیت برای انتخاب زمان START-UP در بخش 3-14 در انتهای همین فصل کاملا توضیح داده شده است .
CKSEL0 …CKSEL3 : عملکرد این بیت ها در بخش 3-14 در انتهای همین فصل کاملا توضیح داده شده است .
مقدار پیش فرض: 1MHZ INTERNAL RC OSCILLATOR@ است .
2-1- بررسی پورت های میکرو ATMEGA16 در این بخش به بررسی عملکرد پورت های میکرو مورد نظر می پردازیم .
1-2-1- پورت B : پورت B یک I/O دو طرفه 8 بیتی است .
سه آدرس از مکان حافظه I/O اختصاص به PORTB دارد .
یک آدرس برای رجیستر داده PORTB دومی رجیستر جهت داده DDRB و سومی پایه ورودی پورت B ، PINB است .
آدرس پایه های ورودی پورت B فقط قابل خواندن است .
در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند .
پایه های پورت دارای مقاومت PULL-UP مجزا هستند .
بافر خروجی پورت B می تواند تا 20mA را Sink کند و در نتیجه LED را مستقیما راه اندازی می کند .
هنگامی که PB0-PB7 با مقاومت های PULL-DOWN خروجی استفاده می شوند آنها SOURCE جریان می شود .
زمانی که مقاومت های PULL-UP داخلی 3 فعال باشند .
استفاده از پورت B به عنوان یک I/O عمومی دیجیتال : تمام 8 پایه موجود زمانی که به عنوان پایه های I/O دیجیتال استفاده می شوند دارای عملکرد مساوی هستند .
PBn و پایه I/O عمومی : بیت DDBn در رجیستر DDRB مشخص کننده جهت پایه است .
اگر DDBn یک باشد ، PBn به عنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDBn صفر باشد ، PBn به عنوان یک پایه ورودی در نظر گرفته می شود .
اگر PortBn یک باشد هنگامی که پایه به عنوان ورودی تعریف شود مقاومت Pull-UP فعال می شود برای خاموش کردن مقاومت Pull-UP باید Port Bn صفر باشد یا اینکه پایه به عنوان خروجی تعریف شود .
پایه های پورت زمانی که ریست اتفاق می افتد به حالت Tristate می روند .
دیگر کاربردهای پورت B : PORTB.7-TOSC2 : TOSC2 زمانی که تایمر/ کانتر 2 در مد آسنکرون کار می کند به این پایه و پایه TOSC1 کریستال ساعت متصل می شود .
در این حالت دیگر نمی توان از این پایه با عنوان I/O استفاده نمود .
PORTB.5-SCK : SCK کلاک خروجی Master و کلاک ورودی Slave برای ارتباط SPI است .
زمانی که SPI به عنوان Slave شکل دهی می شود این پایه با توجه به تنظیم DDB7 ورودی و در حالت Master خروجی تعریف می شود .
PORTB.4-MISO : MISO ورودی داده Master و خروجی داده slave که برای ارتباط SPI استفاده می شود .
زمانی که SPI به عنوان Master شکل دهی می شود .
این پایه با توجه به تنظیمات DDB6 ورودی و در حالت Slave به عنوان خروجی استفاده می شود .
PORTB-MPS1,OC2 : MIS1 ورودی داده Slave و خروجی داده Master که برای ارتباط SPI استفاده می شود .
این پایه با توجه به تنظیمات DDB3 خروجی و در حالت Slave به عنوان ورودی استفاده می شود .
OC2 : خروجی مد مقایسه ای تایمر / کانتر PB3.2 با یک شدن DDB3 می توان به عنوان پایه خروجی مد مقایسه ای timer/counter2 شکل دهی می شود .
این پایه همچنین برای خروجی PWM تایمر استفاده می شود .
PORTB.2-SS.OC1B : SS زمانی که SPI به عنوان Slave شکل دهی شود PB2 با توجه به DDB2 ورودی تعریف می شود و در Slave با Low شدن این پایه SPI فعال می شود .
این پایه در Master می تواند خروجی یا ورودی تعریف شود .
OC1B خروجی مد مقایسه ای Timer/Counter 1 پایه PB2 با یک شدن DDB2 می تواند برای خروجی مد مقایسه ای Timer/Counter شکل دهی می شود .
PORTB.0.ICP : PB0.ICP می تواند به عنوان پایه ورودی CAPTURE تایمر / کانتر 1 عمل کند .
2-2-1- پورت C : پورت C یک I/O دو طرفه 7 بیتی است .
سه آدرس از مکان حافظه I/O اختصاص به PORTC دارد .
یک آدرس برای رجیستر داده PORTC دومی رجیستر جهت داده DDRC و سومی پایه پورت PINC,C است .
آدرس پایه های ورودی پورت C فقط قابل خواندن است .
پایه های پورت دارای مقاومت ( Pull-up ) مجزا هستند .
بافر خروجی پورت C می تواند تا 20mA را sink کند و در نتیجه LED را مستقیما راه اندازی می کند .
هنگامی که PC0-PC7 که با مقاومت های Pull-Down خروجی استفاده می شوند آنها SOURCE جریان می شوند زمانی که مقاومت های Pull-up داخلی فعال باشند .
استفاده از پورت C به عنوان یک I/O عمومی دیجیتال : تمام 7 پایه موجود زمانی که به عنوان پایه های I/O دیجیتال استفاده می شوند دارای عملکرد مساوی هستند .
PCn پایه I/O عمومی : بیت DDCn در رجیستر DDRC مشخص کننده جهت پایه است .
اگر DDCn یک باشد ، PCn به عنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDCn صفر باشد ، PCn به عنوان یک پایه ورودی در نظر گرفته می شود .
اگر Port Cn یک باشد هنگامی که پایه به عنوان ورودی تعریف می شود ، مقاومت Pull-up فعال می شود .
برای خاموش کردن مقاومت Pull-up باید Port Cn صفر باشد یا اینکه پایه به عنوان خروجی تعریف شود .
پایه های پورت زمانی که ریست اتفاق می افتد به حالت Tri-state می روند .
دیگر کاربردهای پورت C : پورت C به عنوان ADC هم استفاده می شوند .
اگر تعدادی از پایه های پورت C خروجی تعریف شوند این نکته بسیار مهم است که در زمان نمونه برداری از سیگنال آنالوگ توسط ADC ، سوییچ نشوند .
این کار ممکن است عملیات تبدیل ADC را نامعتبر کند .
PORTC.6-RESET : RESET این پایه برای ریست کردن میکرو استفاده می شود .
PORTC.5-SCL,ADC5 : SCL در زمان ارتباط 2-WIRE به عنوان خط کلاک استفاده می شود .
PORTC.4-SDA,ADC4 : SDA در زمان ارتباط 2-WIRE به عنوان خط داده استفاده می شود .
3-2-1- پورت D : پورت D یک I/O دو طرفه 8 بیتی است .
سه آدرس از مکان حافظه I/O اختصاص به PORTD دارد.
یک آدرس برای رجیستر داده PORTD ، دومی رجیستر جهت داده DDRD و سومی پایه ورودی پورت PIND,D است .
آدرس پایه های ورودی پورت D فقط قابل خواندن است در صورتی که رجیستر داده جهت داده هم خواندنی و هم نوشتنی هستند .
پایه های پورت دارای مقاومت Pull-up مجزا هستند .
بافر خروجی پورت D می تواند تا 20mA را sink کند و در نتیجه LED را مستقیما راه اندازی می کند .
هنگامی که PD0-PD7 با مقاومت های Pull-Down خروجی استفاده می شوند آنها SOURCE جریان می شوند زمانی که مقاومت های Pull-up داخلی هستند .
استفاده از پورت D به عنوان یک I/O عمومی دیجیتال : تمام 8 پایه موجود زمانی که به عنوان پایه های I/O دیجیتال استفاده می شوند دارای عملکرد مساوی هستند .
PDN پایه I/O عمومی : بیت DDDn در رجیستر DDRD مشخص کننده جهت پایه است .
اگر DDDn یک باشد ، PDn به عنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDn به عنوان یک پایه ورودی در نظر گرفته می شود .
اگر PortDn یک باشد هنگامی که پایه به عنوان ورودی تعریف شود مقاومت Pull-up فعال می شود برای خاموش کردن مقاومت Pull-up باید PortDn صفر باشد یا اینکه پایه به عنوان خروجی تعریف شود .
دیگر کاربردهای پورت : PORTD.7.AIN1 : AIN1 ورودی منفی مقایسه کننده آنالوگ است .
PORTD.7.AIN0 : AIN0 ورودی مثبت مقایسه کننده آنالوگ است .
POTRD.5.T1 : T1 ورودی کلاک برای Timer / Counter1 است .
PORTD.4-XCKT0 : T0 ورودی کلاک برای Timer / Counter0 است .
XCK : این پایه نیز می تواند به عنوان کلاک خارجی USART مورد استفاده قرار گیرد .
این پایه فقط زمانی که USART در مد آسنکرون کار می کند فعال می شود .
PORTD.3-INT1 : INT1 : منبع وقفه خارجی یک پایه PD3 می تواند به عنوان منبع وقفه خارجی برای میکرو استفاده شود .
PORTD.3-INT0 : INT0 : منبع وقفه خارجی یک پایه PD2 می تواند می تواند به عنوان منبع وقفه خارجی برای میکرو استفاده شود .
PORTD.1-TXD : ارسال داده ( پایه خروجی داده برای USART ) زمانی که ارسال USART فعال می شود پایه با توجه به DDD1 به عنوان خروجی شکل دهی می شود.
PORTD.0.RXD : RXD دریافت داده ( پایه ورودی برای USART ) زمانی که دریافت USART فعال می شود پایه با توجه به DDD0 به عنوان ورودی شکل دهی می شود.
3-1- کلاک سیستم توزیع کلاک : کلاک سیستم میکرو طبق شکل زیر توزیع شده است .
کلاکCLKCPU-CPU : این کلاک برای انجام عملیات AVR به طور مثال رجیسترها استفاده می شود .
توقف و به مکث بردن این کلاک باعث می شود که عملیات و محاسبات AVR انجام نگیرد .
کلاک CLKI/O-I/O : این کلاک توسط بسیاری از ماژول های I/O به طور مثال تایمرها ، کانترها ، SPI و USART استفاده می گردد .
کلاک CLKFLASH-FLASH : این کلاک عملیات ارتباطی با حافظه FLASH را کنترل می کند .
کلاک FLASH معمولا با کلاک CPU فعال می شود .
کلاک غیر همزمان تایمرCLK ASY- : با این کلاک تایمر / کانتر به صورت غیر همزمان توسط کریستال ساعت 32768HZ کار می کند حتی اگر سیستم در حالت SLEEP باشد .
کلاک CLKASC-ADC : ADC از یک کلاک جداگانه حساس استفاده می کند که باعث می شود کلاک های CPU و I/O به حالت ایست ( HALT ) رفته تا نویز حاصل از مدار دیجیتال داخلی کاهش یافته و در نتیجه عملیات تبدیل با دقت بیشتری انجام یابد .
منابع کلاک (CLOCK SOURCE ): میکرو دارای انواع منابع کلاک اختیاری است که می توان انواع آن را به وسیله بیت ها قابل برنامه ریزی FLASH ( FLASH FUSE BITS ) انتخاب کرد .
کلاک انتخاب شده به عنوان ورودی کلاک AVR طبق جدول زیر در نظر گرفته شده و کلاک مناسب به هر قسمت سیستم داده می شود .
به نام زمان شروع ( START-UP ) برای رسیدن کریستال به شرایط پایدار ایجاد و سپس دستورات برنامه اجرا می شود و هنگامی که CPU از ریست شروع به کار می کند تاخیر اضافه (DELAY ) برای رسیدن ولتاژ به سطح پایدار ایجاد شده و سپس اجرای برنامه آغاز می شود .
برای ایجاد زمان بندی های مذکور از اسیلاتور WATCHDOG استفاده می گردد 2-3-1- اسیلاتور کریستالی ( EXTERNAL CRYSTAL/CERAMIC RESONATOR ): در این حالت کریستال یا نوسانگر سرامیکی ( CERAMIC RESONATOR ) یا کریستال کوارتز ( QUARTZ CRYSTAL ) همانطور که در شکل زیر نشان داده شده است به دو پایه XTAL1 و XTAL2 وصل می شود .
فیوز بیت CKPOTمی تواند برای دو حالت مختلف استفاده شود .
زمانی که محیط بسیار نویزی باشد این بیت برنامه ریزی می شود که رنج وسیعی از فرکانس ها را شامل می شود .
برنامه ریزی نکردن CKPOT باعث کاهش مصرف شده و بر خلاف قبل رنج محدودی از فرکانس ها را شامل می شود .
خازن های C1 و C2 برای کریستال ها و نوسانگرها بایستی یک مقدار باشند و مقادیر آنها بستگی به کریستال ، نوسانگر و نویزهای الکترومغناطیسی محیط دارد .
بعضی از خازن ها مورد استفاده برای کریستال های مختلف در جدول زیر آمده است .
برای نوسانگرهای سرامیکی بایستی مقدار خازن هایی که توسط کارخانه پیشنهاد می گردد استفاده شود .
اتصال کریستال به میکرو در حالت اسیلاتور کریستالی جدول مدهای عملیاتی اسیلاتور کریستالی توسط فیوز بیت CKSEEL0 و 0…SUT1 زمان آغاز (START-UP ) را می توان طبق جدول زیر انتخاب کرد .
جدول انتخاب زمان START-UP برای کلاک اسیلاتور کریستالی 3-3-1- اسیلاتور کریستالی فرکانس پایین : (EXTERNAL-LOWFREQUENCYCRYSTAL) برای استفاده از کریستال ساعت 32.768KHZ فیوز بیت های CKSEL با1001 برنامه ریزی می شوند و کریستال طبق شکل صفحه قبل از پایه های XTAL1 و XTAL2 متصل می شود .
با برنامه ریزی کردن CKOPT می توان خازن های داخلی را فعال نموده و در نتیجه خازن های خارجی را برداشت .
مقدار نامی خازن های داخلی 36PF است .
هنگامی که این کریستال انتخاب می شود زمان شروع (START-UP) توسط فیوز بیت های SUT طبق جدول زیر قابل انتخاب است .
جدول انتخاب زمان START-UP برای کلاک اسیلاتور کریستالی فرکانس پایین 4-3-1- اسیلاتور RC خارجی ( EXTERNAL RC OCSILLATOR ) : اتصال RC به پایه های XTAL1 در شکل زیر آمده است .
فرکانس تقریبی توسط معادله ( 3RC)f=1 بدست می آید .
مقدار خازن بایستی حداقل 22PF باشد .
با برنامه ریزی کردن فیوز بیت CKOPT کاربرد می تواند خازن های داخلی 36PF را بین XTAL1 و GND راه اندازی کند .
و در نتیجه دیگر نیازی به خازن خارجی نیست .
اسیلاتور می تواند در 4 مد فرکانسی کار کند که این فرکانس ها طبق فیوز بیت های طبق جدول زیر قابل انتخاب است .
هنگامی که فرکانس کاری انتخاب شود ، زمان شروع توسط فیوز بیت های 0…CKDEL3 طبق جدول زیر انتخاب است .
5-3-1- اسیلاتور RC کالیبره شده داخلی : ( CALIVRATE INTERNALRCOSCILLATOR) اسیلاتور RC کالیبره شده داخلی ، کلاک های نامی داخلی 1 ، 2 ، 4 و 8MHZ را در ولتاژ V5 و C25 تولید می کند .
این کلاک با برنامه ریزی کردن بیت های CKSEL می تواند به عنوان کلاک سیستم استفاده گردد که در این صورت نیازی به مدار خارجی نیست .
زمانی که از این مد استفاده می گردد ، فیوز بیت CKOPT همیشه بایستی برنامه ریزی شده باشد .
هنگامی که فرکانس کاری انتخاب می شود زمان شروع (START-UP ) توسط فیوز بیت های SUT طبق جدول زیر قابل انتخاب است .
6-3-1- کلاک خارجی ( EXTERNAL CLOCK ): برای راه اندازی میکرو توسط کلاک خارجی پایه XTAL1 طبق شکل زیر بایستی وصل شود .
برای این کار در این مد بیت های CKSEL با 0000 برنامه ریزی می شوند .
با برنامه ریزی فیوز بیت CKOPT خازن داخلی 36PF بین پایه های XTAL1 و GND فعال می شود .
اتصال کلاک خارجی به پایه میکرو در حالت کلاک خارجی هنگامی که این نو ع کلاک انتخاب می شود ، زمان شروع ( START-UP ) توسط فیوز بیت های SUT طبق جدول زیر قابل انتخاب است .
جدول انتخاب زمان START-UP برای کلاک خارجی در این مد باید از تغییرات ناگهانی فرکانس کلاک خارجی برای اطمینان از انجام پایدار و سریع عملیات میکرو کنترلر (MCU ) جلوگیری کرد .
تغییرات بیشتر از 2% در فرکانس و کلاک خارجی ممکن است باعث رفتارهای غیر قابل انعطاف میکرو شود .
زمانی که قصد تغییر فرکانس کلاک را دارید بایستی میکرو در حالت RESET نگه داشته شود .
اسیلاتور تایمر / کانتر : برای میکرو کنترلرهایی که دارای پایه TOSC1 و TOSC2 هستند ، کریستال ساعت 32.768KHZ مستقیما بین دو پایه قرار می گیرد و تایمر / کانتر 0 تا 2 به صورت آسنکرون از این دو پایه کلاک دریافت می کند .
فصل دوم : نرم افزار 1-2- نحوه عملکرد نرم افزار 1)برای معرفی میکرو به کامپایلر $Regfile="m16def.dat" 2)برای معرفی کریستال داخلی $crystal=1000000 3)پورت D را به عنوان ورودی در نظر بگیر .
Config Portd = Input 4)LCD را با دو سطر و 16 ستون پیکره بندی کن Config Lcd =16 * 2 5)مکان نما خاموش Cursor Off 6 و 7)A و B و C را به عنوان متغیر نوع بایت و D و E و F را به عنوان متغیر word ( کلمه ) در نظر بگیر .
Dim A As Byte , B As Byte , C As Byte , D As Byte , E As Byte , F As Word , G As Word , H As Word