مجموعه آموزش های پایه ای میکروکنترلر avr و نرم افزار...
TRANSCRIPT
:مدرس
محمد امین مصالییکنترل-مهندس برق
دانشگاه شیراز
و نرم افزارAVRآموزش میکروکنترلر CodevisionAVR
1
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
مقدمه
2
الکترونیکیمحصوالتنشدنیجدابخشهایازیکیمیکروکنترلرها•
میکروکنترلرهایخانوادهپرکاربردترینومحبوبترینازیکیAVRمیکروکنترلرهای•
(ATMEL)سازندهکارخانهوسیلهبهرسانیروزبهوتولید• فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
فهرست مطالب
3
AVRآشناییاولیهبامیکروکنترلرهای•
ساختارحافظه•
ساختارپورتها•
CodevisionAVRاربانرمافزارک•
انجامیکپروژهنمونهوشبیهسازیدرنرمافزارپروتئوس•
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
AVRآشنایی اولیه با میکروکنترلر های
4
AVRبیتی8های:
(ATTINY)سریکوچک•
(AT90S)سریمتوسط•
(ATMEGA)سریمگا•
مگاسریAVRبیتیخانواده8میکروکنترلرهایبراساس:مبنایآموزش
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
5
(Fuse Bit)فیوزبیت
(Lock Bit)بیتقفل
.بهمعنایبرنامهریزیشده’0‘بهمعنایبرنامهریزینشدهو’1‘•
.امکانپذیراستJTAGدسترسیبهبیتهایفیوزوقفلدرزمانبرنامهریزیمیکروکنترلربهوسیلهپروگرمریا•
.درصورتاستفادهازبیتهایقفل،اینکاردرانتهایبرنامهریزیبقیهقسمتهاانجامشود•
.امابیتهایفیوزدستنخوردهباقیمیمانند.کردنچیپ،پاکمیشوند(Erase)بیتهایقفل،باپاک•
AVRآشنایی اولیه با میکروکنترلر های
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
6
منابع کالک سیستم
اسیالتورکریستالی•
اسیالتورکریستالیفرکانسپایین•
خارجیRCاسیالتور•
کالیبرهشدهداخلیRCاسیالتور•
کالکخارجی•
AVRآشنایی اولیه با میکروکنترلر های
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
7
سیستمResetمنابع
•Power-Onشدن
RESETازطریقپایه•
Watchdog)تایمرنگهبان• Timer)
Brownکاهشولتاژتغذیهازحد• – Out(درصورتیکهفیوزبیتBODENفعالباشد)
JTAGازResetدریافتفرمان•
AVRآشنایی اولیه با میکروکنترلر های
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
8
ساختار حافظه
Program)حافظه برنامه Memory)
(Flash)فلشنوعازایحافظه•
کاربرتوسطشدهنوشتهبرنامهذخیره•
flashوconstکلیدیکلماتبابرنامهدرشدهتعریف(خواندنیفقط)ثابتمقادیرذخیره•
:میشودتقسیمبخشدوبهبرنامهحافظه
Bootبخش•
(Application)کاربردیبخش•
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
9
RAM(SRAM Data Memory)حافظه داده
(SRAM)استاتیکرمنوعازحافظه•
برنامهدراستفادهموردموقتدادههایذخیرهبرای•
فضاایندربرنامهدرشدهتعریفمتغیرهایذخیره•
ساختار حافظه
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
10
:میشودتقسیمبخشسهبهRAMحافظهRegister)رجیستریفایلبخش• File)I/Oبخش•
.پذیرندآدرسبیتبخشایناولبایت32:نکته
ADMUX.ADLAR = 1;TIFR.TOV1 = 1;TIFR |= ( 1<< TOV1);
کاربررمبخش•oداخلی(Internal)oخارجی(External)
ساختار حافظه
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
11
EEPROM(EEPROM Data Memory)حافظه داده
ماندگارهایدادهذخیرهبرای•
.میشوندذخیرهفضاایندرCزباندرeepromنوعازشدهتعریفمتغیرهای•
:مثال
eeprom char e1;eeprom unsigned int e2 = 1234;
ساختار حافظه
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
12
ساختار پورتها
مفهوم پورت، ورودی و خروجی
بیرونباسیستمهایدادهتبادل•
«خروجی»و«ورودی»پورتمفهوم•
.باشدخروجییاورودیمیتواندفقطواحدآندرپورتپایههر:نکته•
RAMحافظهI/Oفضایدرکهآنهابهمربوطرجیسترهایدرتنظیماتاعمالوبرنامهنویسیطریقازپورتهابهدسترسی•
.استامکانپذیردارند،قرار
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
13
ساختار پورتها
نکات کاربردی
خیربعضیوپذیرندآدرسبیتپورتهاازبعضی•
:مثال
PORTB.3 = 0;PORTF.3 = 0;
.ندهیدمجازغیرولتاژورودیپورتهایروی.نکشیداضافهجریانخروجیپورتهایاز•
.شودفعالغیرJTAGENفیوزبیتباید،آنهاازاستفادهبرای.باشندمیJTAGارتباطبهمربوطپینهاازبعضی•
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
14
معرفی رجیستر های مربوط به پورت ها
(CبرایپورتDDRCمثال)DDRرجیستر1.
.کندمیتعریفخروجیعنوانبهپورترویراآنمتناظرپینرجیستر،اینبیتهردریکدادنقرار•
.کندمیتعریفورودیعنوانبهپورترویراآنمتناظرپینبیت،هردرصفردادنقرار•
DDRBاگرمثال = :بودخواهدزیرصورتبهBپورتپینهایوضعیتشود،تنظیم11010101
ساختار پورتها
PB0PB1PB2PB3PB4PB5PB6PB7
خروجیخروجیورودیخروجیورودیخروجیورودیخروجی
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
15
پورت هامعرفی رجیستر های مربوط به
(AبرایپورتPINAمثال)PINرجیستر.2
.میرودکاربهپورترویدادههایخواندنبرایواست«خواندنیفقط»رجیستراین
:مثال
inp = PINC;
b = PIND.3;
if (PINA.7 == 0) break;
ساختار پورتها
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
16
پورت هابهمربوطرجیستر هایمعرفی
(DپورتبرایPORTDمثال)PORTرجیستر.3
استشدهتعریفخروجیعنوانبهپورتکهحالتیدر:
.میشودپورترویآنمتناظرپینشدنیکیاصفرباعثرجیسترایندریکیاصفرنوشتنحالتایندر
استشدهتعریفورودیعنوانبهپورتکهحالتیدر:
پولصورتبهراورودیدرآن،یکنوشتنو(Tri-State)باالامپدانسصورتبهراورودیرجیستر،ایندرصفرنوشتنحالتایندر
.میکندپیکربندی(Pull-Up)دارآپ
ساختار پورتها
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
17
:مثال
DDRB = 0b00101100;
PORTB = 0b01101001;
:نتیجهدوخطدستورباالایناست
PB0PB1PB2PB3PB4PB5PB6PB7
ورودیپولآپدار
ورودیامپدانسباال
ورودیخروجییکخروجیصفرامپدانسباال
ورودیپولخروجییکآپدار
ورودیامپدانسباال
ساختار پورتها
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
18
CodevisionAVRکار با نرم افزار
.آوردمیفراهمAVRمیکروکنترلرهایبرایاسمبلیوCزبانبهبرنامهنویسیبرایراتوانمندIDEیکCodevisionAVRافزارنرم
مثلجانبیامکانات
پروگرمراندازراه•
سریالترمینال•
...ودیباگابزار•
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
19
.اندشدهتعریفبزرگحروفباهمگیمیکروکنترلربهمربوطفایلهدردررجیسترهاناموتعاریف
.استضرورینکتهاینذکراست،حساسبزرگوکوچکحروفبهCزبانکهآنجاییاز
:گرفتخواهدخطازیردستورازکامپایلرمثال
PortG= 0x27;
CodevisionAVRکار با نرم افزار
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
20
endasm#وasm#پردازندهپیشعبارتدوبیندستوراتاین.کرداستفادهنیزاسمبلیکدهایازمیتوانCزبانبرنامهمیاندر
.میگیرندقرارPORTB.2 = 1;#asmnopadd r0, r1#endasm
:نماییمعملزیرفرمبهبایدبنویسیم،خطیکدررااسمبلیدستورچندیایکبخواهیماگر
#asm (“nop \ add r0, r1”)
CodevisionAVRکار با نرم افزار
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
21
floatوbool،char،int،longمثلهاییداده.کندمیپشتیبانیاستانداردCزباندادهانواعازکدویژن
جملهاز.داردوجودنیزجزئیتفاوتهاییاما
bitبیتیتکدادهشدناضافه•
یکیاصفرمقدارفقط
(Global)سراسریصورتبهتعریف
.شونداستفادهیونیونیاساختار،آرایهصورتبهنباید
Professionalازغیرهاینسخهدرمضاعفدقتبااعشاریدادهوجودعدم•
.نندیکساfloatوdoubleداده،دیگرورژنهایدر
.شوداضافهبرنامهبهstdbool.hفایلهدر،boolدادهازاستفادهصورتدر•
CodevisionAVRکار با نرم افزار
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
22
آنکردنکامپایلوبرنامهنوشتنپروژه،ساخت
میکروکنترلرسیآیریزیبرنامه
CodevisionAVRکار با نرم افزار
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
پروگرمردستگاهروی•
DIPپکیجباچیپهایبرای
(On-Board)بردروی•
پروگرمرISP
کابلJTAG
برنامه ریزی آی سی میکروکنترلر
MCU PGM PC
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
24
ISPپروگرمر
SPIسریالروشبهریزیبرنامه
:نیازهاپیش
میکروکنترلرتغذیهمنبع•
میکروکنترلرکالکمنبع•
برنامه ریزی آی سی میکروکنترلر
MCU PGM PCParallel , Serial , USB
MOSIMISOSCKRESET
VDD VDD
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
25
انجام پروژه های نمونه و شبیه سازی در نرم افزار پروتئوس
رقمABCDEFGهگزا دسیمالکد
3F11111100
0601100001
5B11011012
4F11110013
6601100114
6D10110115
7D10111116
0711100007
7F11111118
6F11110119
فرادرس
FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر
faradars.org/fvee9310
ای میکروکنترلرآموزش های پایه »این اسالید ها بر مبنای نکات مطرح شده در مجموعه فرادرس های
AVR و نرم افزارCodevisionAVR»
.شده استتهیه
.برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایید
faradars.org/fvee9310