مجموعه آموزش های پایه ای میکروکنترلر avr و نرم افزار...

26
مدرس: یید امین مصحم م مهندس برق- کنترله شیرازنشگا داروکنترلر آموزش میکAVR مافزار و نرCodevisionAVR 1 ﻓﺮادرسFaraDars.org CodevisionAVR و ﻧﺮم اﻓﺰارAVR ﻣﺠﻤﻮﻋﻪ آﻣﻮزش ﻫﺎی ﭘﺎﯾﻪ ای ﻣﯿﮑﺮوﮐﻨﱰﻟﺮfaradars.org/fvee9310

Upload: faradars

Post on 19-Aug-2015

50 views

Category:

Education


2 download

TRANSCRIPT

Page 1: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

:مدرس

محمد امین مصالییکنترل-مهندس برق

دانشگاه شیراز

و نرم افزارAVRآموزش میکروکنترلر CodevisionAVR

1

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 2: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

مقدمه

2

الکترونیکیمحصوالتنشدنیجدابخش‌هایازیکیمیکروکنترلر‌ها•

میکروکنترلر‌هایخانوادهپرکاربردترینومحبوب‌ترینازیکیAVRمیکروکنترلر‌های•

(ATMEL)سازندهکارخانهوسیلهبهرسانیروزبهوتولید• فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 3: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

فهرست مطالب

3

AVRآشنایی‌اولیه‌با‌میکروکنترلرهای‌•

ساختار‌حافظه‌•

ساختار‌پورت‌ها•

CodevisionAVRار‌با‌نرم‌افزار‌ک•

انجام‌یک‌پروژه‌نمونه‌و‌شبیه‌سازی‌در‌نرم‌افزار‌پروتئوس•

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 4: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

AVRآشنایی اولیه با میکروکنترلر های

4

AVRبیتی‌8های‌:

(ATTINY)سری‌کوچک‌•

(AT90S)سری‌متوسط‌•

(ATMEGA)سری‌مگا‌•

مگاسری‌AVRبیتی‌خانواده‌8میکروکنترلرهای‌بر‌اساس‌:‌مبنای‌آموزش

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 5: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

5

(Fuse Bit)فیوز‌بیت

(Lock Bit)بیت‌قفل‌

.به‌معنای‌برنامه‌ریزی‌شده‌’0‘به‌معنای‌برنامه‌ریزی‌نشده‌و‌’1‘•

.‌‌امکان‌پذیر‌استJTAGدسترسی‌به‌بیت‌‌های‌فیوز‌و‌قفل‌در‌زمان‌برنامه‌ریزی‌میکروکنترلر‌به‌وسیله‌پروگرمر‌یا‌•

.در‌صورت‌استفاده‌از‌بیتهای‌قفل‌،‌این‌کار‌در‌انتهای‌برنامه‌ریزی‌بقیه‌قسمتها‌انجام‌شود‌•

.اما‌بیتهای‌فیوز‌دست‌نخورده‌باقی‌می‌مانند‌.‌کردن‌چیپ‌،‌پاک‌می‌شوند‌(‌Erase)بیتهای‌قفل‌،‌با‌پاک‌•

AVRآشنایی اولیه با میکروکنترلر های

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 6: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

6

منابع کالک سیستم

اسیالتور‌کریستالی•

اسیالتور‌کریستالی‌فرکانس‌پایین•

خارجیRCاسیالتور‌•

کالیبره‌شده‌داخلیRCاسیالتور‌•

کالک‌خارجی•

AVRآشنایی اولیه با میکروکنترلر های

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 7: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

7

سیستمResetمنابع

•Power-Onشدن

RESETاز‌طریق‌پایه•

Watchdog)تایمر‌نگهبان‌• Timer)

Brownکاهش‌ولتاژ‌تغذیه‌از‌حد‌• – Out(در‌صورتی‌که‌فیوزبیت‌BODENفعال‌باشد)

JTAGاز‌Resetدریافت‌فرمان‌•

AVRآشنایی اولیه با میکروکنترلر های

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 8: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

8

ساختار حافظه

Program)حافظه برنامه Memory)

(Flash)فلشنوعازایحافظه•

کاربرتوسطشدهنوشتهبرنامهذخیره•

flashوconstکلیدیکلماتبابرنامهدرشدهتعریف(خواندنیفقط)ثابتمقادیرذخیره•

:می‌شودتقسیمبخشدوبهبرنامهحافظه

Bootبخش•

(Application)کاربردیبخش•

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 9: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

9

RAM(SRAM Data Memory)حافظه داده

(SRAM)استاتیکرمنوعازحافظه•

برنامهدراستفادهموردموقتداده‌هایذخیرهبرای•

فضاایندربرنامهدرشدهتعریفمتغیر‌هایذخیره•

ساختار حافظه

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 10: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

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

Page 11: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

11

EEPROM(EEPROM Data Memory)حافظه داده

ماندگار‌هایدادهذخیرهبرای•

.می‌شوندذخیرهفضاایندرCزباندرeepromنوعازشدهتعریفمتغیر‌های•

:مثال

eeprom char e1;eeprom unsigned int e2 = 1234;

ساختار حافظه

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 12: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

12

ساختار پورتها

مفهوم پورت، ورودی و خروجی

بیرونباسیستم‌هایدادهتبادل•

«خروجی»و«ورودی»پورتمفهوم•

.باشدخروجییاورودیمی‌تواندفقطواحدآندرپورتپایههر:نکته•

RAMحافظهI/Oفضایدرکهآن‌هابهمربوطرجیستر‌هایدرتنظیماتاعمالوبرنامه‌نویسیطریقازپورت‌هابهدسترسی•

.استامکانپذیردارند،قرار

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 13: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

13

ساختار پورتها

نکات کاربردی

خیربعضیوپذیرندآدرسبیتپورتهاازبعضی•

:مثال

PORTB.3 = 0;PORTF.3 = 0;

.ندهیدمجازغیرولتاژورودیپورتهایروی.نکشیداضافهجریانخروجیپورتهایاز•

.شودفعالغیرJTAGENفیوزبیتباید،آنهاازاستفادهبرای.باشندمیJTAGارتباطبهمربوطپینهاازبعضی•

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 14: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

14

معرفی رجیستر های مربوط به پورت ها

(Cبرای‌پورت‌DDRCمثال‌‌)DDRرجیستر‌1.

.کندمیتعریفخروجیعنوانبهپورترویراآنمتناظرپینرجیستر،اینبیتهردریکدادنقرار•

.کندمیتعریفورودیعنوانبهپورترویراآنمتناظرپینبیت،هردرصفردادنقرار•

DDRBاگرمثال = :بودخواهدزیرصورتبهBپورتپین‌هایوضعیتشود،تنظیم11010101

ساختار پورتها

PB0PB1PB2PB3PB4PB5PB6PB7

خروجیخروجیورودیخروجیورودیخروجیورودیخروجی

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 15: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

15

پورت هامعرفی رجیستر های مربوط به

(Aبرای‌پورت‌PINAمثال‌‌)PINرجیستر‌.‌2

.می‌رودکاربهپورترویداده‌هایخواندنبرایواست«خواندنیفقط»رجیستراین

:مثال

inp = PINC;

b = PIND.3;

if (PINA.7 == 0) break;

ساختار پورتها

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 16: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

16

پورت هابهمربوطرجیستر هایمعرفی

(DپورتبرایPORTDمثال)PORTرجیستر.3

استشدهتعریفخروجیعنوانبهپورتکهحالتیدر:

.می‌شودپورترویآنمتناظرپینشدنیکیاصفرباعثرجیسترایندریکیاصفرنوشتنحالتایندر

استشدهتعریفورودیعنوانبهپورتکهحالتیدر:

پولصورتبهراورودیدرآن،یکنوشتنو(Tri-State)باالامپدانسصورتبهراورودیرجیستر،ایندرصفرنوشتنحالتایندر

.می‌کندپیکربندی(Pull-Up)دارآپ

ساختار پورتها

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 17: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

17

:مثال

DDRB = 0b00101100;

PORTB = 0b01101001;

:نتیجه‌دو‌خط‌دستور‌باال‌این‌است

PB0PB1PB2PB3PB4PB5PB6PB7

ورودی‌پول‌آپ‌دار

ورودیامپدانس‌باال

ورودیخروجی‌یکخروجی‌صفرامپدانس‌باال

ورودی‌پول‌خروجی‌یکآپ‌دار

ورودیامپدانس‌باال

ساختار پورتها

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 18: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

18

CodevisionAVRکار با نرم افزار

.آوردمیفراهمAVRمیکروکنترلر‌هایبرایاسمبلیوCزبانبهبرنامه‌نویسیبرایراتوانمندIDEیکCodevisionAVRافزارنرم

مثلجانبیامکانات

پروگرمراندازراه•

سریالترمینال•

...ودیباگابزار•

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 19: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

19

.اندشدهتعریفبزرگحروفباهمگیمیکروکنترلربهمربوطفایلهدردررجیستر‌هاناموتعاریف

.استضرورینکتهاینذکراست،حساسبزرگوکوچکحروفبهCزبانکهآنجاییاز

:گرفتخواهدخطازیردستورازکامپایلرمثال

PortG= 0x27;

CodevisionAVRکار با نرم افزار

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 20: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

20

endasm#وasm#پردازندهپیشعبارتدوبیندستوراتاین.کرداستفادهنیزاسمبلیکد‌هایازمی‌توانCزبانبرنامهمیاندر

.می‌گیرندقرارPORTB.2 = 1;#asmnopadd r0, r1#endasm

:نماییمعملزیرفرمبهبایدبنویسیم،خطیکدررااسمبلیدستورچندیایکبخواهیماگر

#asm (“nop \ add r0, r1”)

CodevisionAVRکار با نرم افزار

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 21: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

21

floatوbool،char،int،longمثلهاییداده.کندمیپشتیبانیاستانداردCزباندادهانواعازکدویژن

جملهاز.داردوجودنیزجزئیتفاوتهاییاما

bitبیتیتکدادهشدناضافه•

یکیاصفرمقدارفقط

(Global)سراسریصورتبهتعریف

.شونداستفادهیونیونیاساختار،آرایهصورتبهنباید

Professionalازغیرهاینسخهدرمضاعفدقتبااعشاریدادهوجودعدم•

.نندیکساfloatوdoubleداده،دیگرورژنهایدر

.شوداضافهبرنامهبهstdbool.hفایلهدر،boolدادهازاستفادهصورتدر•

CodevisionAVRکار با نرم افزار

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 22: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

22

آنکردنکامپایلوبرنامهنوشتنپروژه،ساخت

میکروکنترلرسیآیریزیبرنامه

CodevisionAVRکار با نرم افزار

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 23: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

پروگرمردستگاهروی•

DIPپکیجباچیپهایبرای

(On-Board)بردروی•

پروگرمرISP

کابلJTAG

برنامه ریزی آی سی میکروکنترلر

MCU PGM PC

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 24: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

24

ISPپروگرمر

SPIسریالروشبهریزیبرنامه

:نیازهاپیش

میکروکنترلرتغذیهمنبع•

میکروکنترلرکالکمنبع•

برنامه ریزی آی سی میکروکنترلر

MCU PGM PCParallel , Serial , USB

MOSIMISOSCKRESET

VDD VDD

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 25: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

25

انجام پروژه های نمونه و شبیه سازی در نرم افزار پروتئوس

رقمABCDEFGهگزا دسیمالکد

3F11111100

0601100001

5B11011012

4F11110013

6601100114

6D10110115

7D10111116

0711100007

7F11111118

6F11110119

فرادرس

FaraDars.org CodevisionAVR و نرم افزار AVR مجموعه آموزش های پایه ای میکروکنرتلر

faradars.org/fvee9310

Page 26: مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

ای میکروکنترلرآموزش های پایه »این اسالید ها بر مبنای نکات مطرح شده در مجموعه فرادرس های

AVR و نرم افزارCodevisionAVR»

.شده استتهیه

.برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایید

faradars.org/fvee9310