Professional Documents
Culture Documents
Fara Dars
Fara Dars
g
aD
محمد امین مصالیی
F ar
مهندس برق -کنترل
دانشگاه شیراز
1
ﺮ ﻓ
مقدمه
س ر د ا میکروکنترلرها یکی از بخشهای جدا نشدنی محصوالت الکترونیکی •
g
میکروکنترلرهای AVRیکی از محبوبترین و پرکاربردترین خانوادههای میکروکنترلر •
D a r s .or تولید و به روز رسانی به وسیله کارخانه سازنده ()ATMEL •
r g
•
o
ساختارپورتها
aD
•
r
انجامیکپروژهنمونهوشبیهسازیدرنرمافزارپروتئوس
D
• سریمگا()ATMEGA
4
ﻓ
آشنایی اولیه با میکروکنترلرهای AVR
.or g
• ’ ‘1بهمعنایبرنامهریزینشدهو’ ‘0بهمعنایبرنامهریزیشده.
ar aD
درصورتاستفادهازبیتهایقفل،اینکاردرانتهایبرنامهریزیبقیهقسمتهاانجامشود. •
F
بیتهایقفل،باپاک()Eraseکردنچیپ،پاکمیشوند.امابیتهایفیوزدستنخوردهباقیمیمانند. •
5
ﻓ
آشنایی اولیه با میکروکنترلرهای AVR
D
• اسیالتور RCخارجی
ar a
• اسیالتور RCکالیبرهشدهداخلی
F • کالکخارجی
6
ﻓ
آشنایی اولیه با میکروکنترلرهای AVR
D
• تایمرنگهبان()Watchdog Timer
ar a
• کاهشولتاژتغذیهازحد( Brown – Outدرصورتیکهفیوزبیت BODENفعالباشد)
7
ﺮ ﻓ
ساختار حافظه
r g
• ذخیره برنامه نوشته شده توسط کاربر
F a
حافظه برنامه به دو بخش تقسیم میشود:
بخش Boot •
بخش کاربردی ()Application •
8
ﺮ ﻓ
ساختار حافظه
س ر د ا حافظه داده )SRAM Data Memory( RAM
حافظه از نوع رم استاتیک ()SRAM •
.or g
•
s
برای ذخیره دادههای موقت مورد استفاده در برنامه
a r
ذخیره متغیرهای تعریف شده در برنامه در این فضا •
r g
• بخش فایل رجیستری ()Register File
s .o
• بخش I/O
a r
نکته 32 :بایت اول این بخش بیت آدرس پذیرند .
aD
;ADMUX.ADLAR = 1
ar
;TIFR.TOV1 = 1
F
;)TIFR |= ( 1<< TOV1
10
ﺮ ﻓ
ساختار حافظه
س ر د ا حافظه داده )EEPROM Data Memory( EEPROM
r g
•
o
برای ذخیره دادههای ماندگار
a
مثال :
F
;eeprom char e1
;eeprom unsigned int e2 = 1234
11
ﺮ ﻓ
ساختار پورتها
r g
تبادل دادههای سیستم با بیرون •
ar aD
نکته :هر پایه پورت در آن واحد فقط میتواند ورودی یا خروجی باشد. •
F
دسترسی به پورتها از طریق برنامهنویسی و اعمال تنظیمات در رجیسترهای مربوط به آنها که در فضای I/Oحافظه RAM •
12
ﺮ ﻓ
ساختار پورتها
r g
بعضی از پورتها بیت آدرس پذیرند و بعضی خیر •
aD
;PORTB.3 = 0
ar
;PORTF.3 = 0
F
از پورتهای خروجی جریان اضافه نکشید .روی پورتهای ورودی ولتاژ غیر مجاز ندهید . •
بعضی از پینها مربوط به ارتباط JTAGمی باشند .برای استفاده از آنها ،باید بیت فیوز JTAGENغیر فعال شود . •
13
ﺮ ﻓ
ساختار پورتها
r g
.1رجیستر( DDRمثال DDRCبرایپورت)C
r aD
•
a
قرار دادن صفر در هر بیت ،پین متناظر آن را روی پورت به عنوان ورودی تعریف می کند . •
PB7
خروجی F
PB6
خروجی
مثال اگر DDRB = 11010101تنظیم شود ،وضعیت پینهای پورت Bبه صورت زیر خواهد بود :
PB5
ورودی
PB4
خروجی
PB3
ورودی
PB2
خروجی
PB1
ورودی
PB0
خروجی
14
ﺮ ﻓ
ساختار پورتها
F
;inp = PINC
;b = PIND.3
ar aD
;if (PINA.7 == 0) break
مثال:
15
ﺮ ﻓ
ساختار پورتها
g
.3رجیستر ( PORTمثال PORTDبرای پورت )D
D a r s .or در حالتی که پورت به عنوان خروجی تعریف شده است:
r a
در این حالت نوشتن صفر یا یک در این رجیستر باعث صفر یا یک شدن پین متناظر آن روی پورت میشود.
F a در حالتی که پورت به عنوان ورودی تعریف شده است:
در این حالت نوشتن صفر در این رجیستر ،ورودی را به صورت امپدانس باال ()Tri-Stateو نوشتن یک درآن ،ورودی را به صورت پول
;DDRB = 0b00101100
س ر د ا مثال:
.or g
;PORTB = 0b01101001
PB7
ورودی
امپدانسباال
PB6
17
ﺮ ﻓ
کار با نرم افزار CodevisionAVR
g
•
r
راه انداز پروگرمر
s .o
•
r
ترمینال سریال
D a
ابزار دیباگ و ... •
a r s .or g مثال کامپایلر از دستور زیر خطا خواهد گرفت:
r aD
;PortG= 0x27
r g
;PORTB.2 = 1
s .o
#asm
a r
nop
D
add r0, r1
r a
#endasm
F a
اگر بخواهیم یک یا چند دستور اسمبلی را در یک خط بنویسیم ،باید به فرم زیر عمل نماییم:
)”#asm (“nop \ add r0, r1
20
ﺮ ﻓ
کار با نرم افزار CodevisionAVR
or g
• اضافه شدن داده تک بیتی bit
r aD
تعریف به صورت سراسری ()Global
F a
نباید به صورت آرایه ،ساختار یا یونیون استفاده شوند .
• عدم وجود داده اعشاری با دقت مضاعف در نسخه های غیر از Professional
در ورژنهای دیگر ،داده doubleو floatیکسا نند .
• در صورت استفاده از داده ، boolهدر فایل stdbool.hبه برنامه اضافه شود .
21
ﺮ ﻓ
کار با نرم افزار CodevisionAVR
س ر د ا ساخت پروژه ،نوشتن برنامه و کامپایل کردن آن
g
برنامه ریزی آی سی میکروکنترلر
س
MCU
r g
•روی دستگاه پروگرمر
aD a
• روی برد ( ) On-Board
F ar
پروگرمر ISP
کابل JTAG
ﺮ ﻓ
برنامه ریزی آی سی میکروکنترلر
a r
• منبع تغذیه میکروکنترلر
r aD
• منبع کالک میکروکنترلر
a
VDD VDD
F
MOSI
MISO Parallel , Serial , USB
MCU SCK PGM PC
RESET
24
ﺮ ﻓ
انجام پروژه های نمونه و شبیهسازی در نرمافزار پروتئوس
رقم
0
G
0
F
1
س رE
1د ا D
1
C
1
B
1
A
1
کد هگزا دسیمال
3F
r g
1 0 0 0 0 1 1 0 06
D a
3 1 0 0 1 1 1 1 4F
r a
4 1 1 0 0 1 1 0 66
F a
5 1 1 0 1 1 0 1 6D
6 1 1 1 1 1 0 1 7D
7 0 0 0 0 1 1 1 07
8 1 1 1 1 1 1 1 7F
9 1 1 0 1 1 1 1 6F
25
ﺮ ﻓ
با تشکر از حسن توجه شما