SlideShare a Scribd company logo
1 of 26
Download to read offline
‫مدرس‬:
‫مصالیی‬ ‫امین‬ ‫محمد‬
‫برق‬ ‫مهندس‬-‫کنترل‬
‫شیراز‬ ‫دانشگاه‬
‫میکروکنترلر‬ ‫آموزش‬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)
‫مبنای‌آموزش‬‌:‌‫بر‌اساس‬‌‫میکروکنترلرهای‬8‌‫بیتی‌خانواده‬AVR‌‫سری‬‫مگا‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
5
‫بیت‬‌‫فیوز‬(Fuse Bit)
‌‫بیت‌قفل‬(Lock Bit)
•‘1’‌‫به‌معنای‌برنامه‌ریزی‌نشده‌و‬‘0’‌‫به‌معنای‌برنامه‌ریزی‌شده‬.
•‌‫‌ریزی‌میکروکنترلر‌به‌وسیله‌پروگرمر‌یا‬‫ه‬‫‌های‌فیوز‌و‌قفل‌در‌زمان‌برنام‬‌‫ت‬‫دسترسی‌به‌بی‬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‫فعال‌باشد‬)
•‌‫دریافت‌فرمان‬Reset‌‫از‬JTAG
‫های‬‫میکروکنترلر‬ ‫با‬ ‫اولیه‬ ‫آشنایی‬AVR
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
8
‫حافظه‬ ‫ساختار‬
‫برنامه‬ ‫حافظه‬(Program Memory)
•‫حافظه‬‫ای‬‫از‬‫نوع‬‫فلش‬(Flash)
•‫ذخیره‬‫برنامه‬‫نوشته‬‫شده‬‫توسط‬‫کاربر‬
•‫ذخیره‬‫مقادیر‬‫ثابت‬(‫فقط‬‫خواندنی‬)‫تعریف‬‫شده‬‫در‬‫برنامه‬‫با‬‫کلمات‬‫کلیدی‬const‫و‬flash
‫حافظه‬‫برنامه‬‫به‬‫دو‬‫بخش‬‫تقسیم‬‫‌شود‬‫ی‬‫م‬:
•‫بخش‬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)
•‫برای‬‫ذخیره‬‫داده‬‫‌های‬‫ماندگار‬
•‫‌های‬‫ر‬‫متغی‬‫تعریف‬‫شده‬‫از‬‫نوع‬eeprom‫در‬‫زبان‬C‫در‬‫این‬‫فضا‬‫ذخیره‬‫‌شوند‬‫ی‬‫م‬.
‫مثال‬:
eeprom char e1;
eeprom unsigned int e2 = 1234;
‫حافظه‬ ‫ساختار‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
12
‫پورتها‬ ‫ساختار‬
‫خروجی‬ ‫و‬ ‫ورودی‬ ،‫پورت‬ ‫مفهوم‬
•‫تبادل‬‫داده‬‫‌های‬‫سیستم‬‫با‬‫بیرون‬
•‫مفهوم‬‫پورت‬«‫ورودی‬»‫و‬«‫خروجی‬»
•‫نکته‬:‫هر‬‫پایه‬‫پورت‬‫در‬‫آن‬‫واحد‬‫فقط‬‫‌تواند‬‫ی‬‫م‬‫ورودی‬‫یا‬‫خروجی‬‫باشد‬.
•‫دسترسی‬‫به‬‫‌ها‬‫ت‬‫پور‬‫از‬‫طریق‬‫‌نویسی‬‫ه‬‫برنام‬‫و‬‫اعمال‬‫تنظیمات‬‫در‬‫‌های‬‫ر‬‫رجیست‬‫مربوط‬‫به‬‫‌ها‬‫ن‬‫آ‬‫که‬‫در‬‫فضای‬I/O‫حافظه‬RAM
‫قرار‬،‫دارند‬‫امکانپذیر‬‫است‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
13
‫پورتها‬ ‫ساختار‬
‫کاربردی‬ ‫نکات‬
•‫بعضی‬‫از‬‫پورتها‬‫بیت‬‫آدرس‬‫پذیرند‬‫و‬‫بعضی‬‫خیر‬
‫مثال‬:
PORTB.3 = 0;
PORTF.3 = 0;
•‫از‬‫پورتهای‬‫خروجی‬‫جریان‬‫اضافه‬‫نکشید‬.‫روی‬‫پورتهای‬‫ورودی‬‫ولتاژ‬‫غیر‬‫مجاز‬‫ندهید‬.
•‫بعضی‬‫از‬‫پینها‬‫مربوط‬‫به‬‫ارتباط‬JTAG‫می‬‫باشند‬.‫برای‬‫استفاده‬‫از‬‫آنها‬،‫باید‬‫بیت‬‫فیوز‬JTAGEN‫غیر‬‫فعال‬‫شود‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
14
‫ها‬‫پورت‬ ‫به‬ ‫مربوط‬ ‫های‬‫رجیستر‬ ‫معرفی‬
.1‌‫رجیستر‬DDR(‌‌‫مثال‬DDRC‌‫برای‌پورت‬C)
•‫قرار‬‫دادن‬‫یک‬‫در‬‫هر‬‫بیت‬‫این‬،‫رجیستر‬‫پین‬‫متناظر‬‫آن‬‫را‬‫روی‬‫پورت‬‫به‬‫عنوان‬‫خروجی‬‫تعریف‬‫می‬‫کند‬.
•‫قرار‬‫دادن‬‫صفر‬‫در‬‫هر‬،‫بیت‬‫پین‬‫متناظر‬‫آن‬‫را‬‫روی‬‫پورت‬‫به‬‫عنوان‬‫ورودی‬‫تعریف‬‫می‬‫کند‬.
‫مثال‬‫اگر‬DDRB = 11010101‫تنظیم‬،‫شود‬‫وضعیت‬‫‌های‬‫ن‬‫پی‬‫پورت‬B‫به‬‫صورت‬‫زیر‬‫خواهد‬‫بود‬:
‫پورتها‬ ‫ساختار‬
PB0PB1PB2PB3PB4PB5PB6PB7
‫خروجی‬‫ورودی‬‫خروجی‬‫ورودی‬‫خروجی‬‫ورودی‬‫خروجی‬‫خروجی‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
15
‫به‬ ‫مربوط‬ ‫های‬‫رجیستر‬ ‫معرفی‬‫ها‬‫پورت‬
2‌.‌‫رجیستر‬PIN(‌‌‫مثال‬PINA‌‫برای‌پورت‬A)
‫این‬‫رجیستر‬«‫فقط‬‫خواندنی‬»‫است‬‫و‬‫برای‬‫خواندن‬‫‌های‬‫ه‬‫داد‬‫روی‬‫پورت‬‫به‬‫کار‬‫‌رود‬‫ی‬‫م‬.
‫مثال‬:
inp = PINC;
b = PIND.3;
if (PINA.7 == 0) break;
‫پورتها‬ ‫ساختار‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
16
‫معرفی‬‫های‬‫رجیستر‬‫مربوط‬‫به‬‫ها‬‫پورت‬
3.‫رجیستر‬PORT(‫مثال‬PORTD‫برای‬‫پورت‬D)
‫در‬‫حالتی‬‫که‬‫پورت‬‫به‬‫عنوان‬‫خروجی‬‫تعریف‬‫شده‬‫است‬:
‫در‬‫این‬‫حالت‬‫نوشتن‬‫صفر‬‫یا‬‫یک‬‫در‬‫این‬‫رجیستر‬‫باعث‬‫صفر‬‫یا‬‫یک‬‫شدن‬‫پین‬‫متناظر‬‫آن‬‫روی‬‫پورت‬‫‌شود‬‫ی‬‫م‬.
‫در‬‫حالتی‬‫که‬‫پورت‬‫به‬‫عنوان‬‫ورودی‬‫تعریف‬‫شده‬‫است‬:
‫در‬‫این‬‫حالت‬‫نوشتن‬‫صفر‬‫در‬‫این‬،‫رجیستر‬‫ورودی‬‫را‬‫به‬‫صورت‬‫امپدانس‬‫باال‬(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
‫نرم‬‫افزار‬CodevisionAVR‫یک‬IDE‫توانمند‬‫را‬‫برای‬‫‌نویسی‬‫ه‬‫برنام‬‫به‬‫زبان‬C‫و‬‫اسمبلی‬‫برای‬‫‌های‬‫ر‬‫میکروکنترل‬AVR‫فراهم‬‫می‬‫آورد‬.
‫امکانات‬‫جانبی‬‫مثل‬
•‫راه‬‫انداز‬‫پروگرمر‬
•‫ترمینال‬‫سریال‬
•‫ابزار‬‫دیباگ‬‫و‬...
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
19
‫تعاریف‬‫و‬‫نام‬‫‌ها‬‫ر‬‫رجیست‬‫در‬‫هدر‬‫فایل‬‫مربوط‬‫به‬‫میکروکنترلر‬‫همگی‬‫با‬‫حروف‬‫بزرگ‬‫تعریف‬‫شده‬‫اند‬.
‫از‬‫آنجایی‬‫که‬‫زبان‬C‫به‬‫حروف‬‫کوچک‬‫و‬‫بزرگ‬‫حساس‬،‫است‬‫ذکر‬‫این‬‫نکته‬‫ضروری‬‫است‬.
‫مثال‬‫کامپایلر‬‫از‬‫دستور‬‫زیر‬‫خطا‬‫خواهد‬‫گرفت‬:
PortG= 0x27;
‫افزار‬ ‫نرم‬ ‫با‬ ‫کار‬CodevisionAVR
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
20
‫در‬‫میان‬‫برنامه‬‫زبان‬C‫‌توان‬‫ی‬‫م‬‫از‬‫‌های‬‫د‬‫ک‬‫اسمبلی‬‫نیز‬‫استفاده‬‫کرد‬.‫این‬‫دستورات‬‫بین‬‫دو‬‫عبارت‬‫پیش‬‫پردازنده‬#asm‫و‬#endasm
‫قرار‬‫‌گیرند‬‫ی‬‫م‬.
PORTB.2 = 1;
#asm
nop
add r0, r1
#endasm
‫اگر‬‫بخواهیم‬‫یک‬‫یا‬‫چند‬‫دستور‬‫اسمبلی‬‫را‬‫در‬‫یک‬‫خط‬،‫بنویسیم‬‫باید‬‫به‬‫فرم‬‫زیر‬‫عمل‬‫نماییم‬:
#asm (“nop  add r0, r1”)
‫افزار‬ ‫نرم‬ ‫با‬ ‫کار‬CodevisionAVR
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
CodevisionAVR ‫اﻓﺰار‬ ‫ﻧﺮم‬ ‫و‬ AVR ‫ﻣﯿﮑﺮوﮐﻨﱰﻟﺮ‬ ‫ای‬ ‫ﭘﺎﯾﻪ‬ ‫ﻫﺎی‬ ‫آﻣﻮزش‬ ‫ﻣﺠﻤﻮﻋﻪ‬
faradars.org/fvee9310
21
‫کدویژن‬‫از‬‫انواع‬‫داده‬‫زبان‬C‫استاندارد‬‫پشتیبانی‬‫می‬‫کند‬.‫داده‬‫هایی‬‫مثل‬bool،char،int،long‫و‬float
‫اما‬‫تفاوتهایی‬‫جزئی‬‫نیز‬‫وجود‬‫دارد‬.‫از‬‫جمله‬
•‫اضافه‬‫شدن‬‫داده‬‫تک‬‫بیتی‬bit
‫فقط‬‫مقدار‬‫صفر‬‫یا‬‫یک‬
‫تعریف‬‫به‬‫صورت‬‫سراسری‬(Global)
‫نباید‬‫به‬‫صورت‬‫آرایه‬،‫ساختار‬‫یا‬‫یونیون‬‫استفاده‬‫شوند‬.
•‫عدم‬‫وجود‬‫داده‬‫اعشاری‬‫با‬‫دقت‬‫مضاعف‬‫در‬‫نسخه‬‫های‬‫غیر‬‫از‬Professional
‫در‬‫ورژنهای‬‫دیگر‬،‫داده‬double‫و‬float‫یکسا‬‫نند‬.
•‫در‬‫صورت‬‫استفاده‬‫از‬‫داده‬bool،‫هدر‬‫فایل‬stdbool.h‫به‬‫برنامه‬‫اضافه‬‫شود‬.
‫افزار‬ ‫نرم‬ ‫با‬ ‫کار‬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 PC
Parallel , Serial , USB
MOSI
MISO
SCK
RESET
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

More Related Content

Similar to مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR

آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
faradars
 
بهینه سازی انتقال چمدان در فرودگاه
بهینه سازی انتقال چمدان در فرودگاهبهینه سازی انتقال چمدان در فرودگاه
بهینه سازی انتقال چمدان در فرودگاه
yahya soleimani
 
Laravel - back-end framework in persian language
Laravel - back-end framework in persian languageLaravel - back-end framework in persian language
Laravel - back-end framework in persian language
Omid Khosrojerdi
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
pdnsoftco
 

Similar to مجموعه آموزش های پایه ای میکروکنترلر AVR و نرم افزار CodevisionAVR (20)

Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)
 
Thesis Omid Abolghasemi presentation, Dr. Seyyed Hassan Sedighy, Dr. Hossein ...
Thesis Omid Abolghasemi presentation, Dr. Seyyed Hassan Sedighy, Dr. Hossein ...Thesis Omid Abolghasemi presentation, Dr. Seyyed Hassan Sedighy, Dr. Hossein ...
Thesis Omid Abolghasemi presentation, Dr. Seyyed Hassan Sedighy, Dr. Hossein ...
 
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
آموزش برنامه نویسی R و نرم افزار R Studio بخش هفتم | فرادرس
 
آموزش طراحی برد‌ مدار چاپی به کمک نرم‌افزار Altium Designer
آموزش طراحی برد‌ مدار چاپی به کمک نرم‌افزار Altium Designerآموزش طراحی برد‌ مدار چاپی به کمک نرم‌افزار Altium Designer
آموزش طراحی برد‌ مدار چاپی به کمک نرم‌افزار Altium Designer
 
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وبطراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
طراحی، پیاده‌سازی و ارزیابی رایانش توری تحت وب
 
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت   تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
تنظیم فایروال میکروتیک برای دسترسی سیستمها به اینترنت
 
آموزش سیستم های عامل - بخش سوم
آموزش سیستم های عامل - بخش سومآموزش سیستم های عامل - بخش سوم
آموزش سیستم های عامل - بخش سوم
 
آموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCADآموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCAD
 
OpenVox Products Introduction
OpenVox Products IntroductionOpenVox Products Introduction
OpenVox Products Introduction
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
Yeastar IP-PBX Introduction
Yeastar IP-PBX IntroductionYeastar IP-PBX Introduction
Yeastar IP-PBX Introduction
 
Sangoma Vega Gateways
Sangoma Vega GatewaysSangoma Vega Gateways
Sangoma Vega Gateways
 
01-intro_A.ppt
01-intro_A.ppt01-intro_A.ppt
01-intro_A.ppt
 
بهینه سازی انتقال چمدان در فرودگاه
بهینه سازی انتقال چمدان در فرودگاهبهینه سازی انتقال چمدان در فرودگاه
بهینه سازی انتقال چمدان در فرودگاه
 
Laravel - back-end framework in persian language
Laravel - back-end framework in persian languageLaravel - back-end framework in persian language
Laravel - back-end framework in persian language
 
Ravar matrix 03 09 1398
Ravar matrix 03 09 1398Ravar matrix 03 09 1398
Ravar matrix 03 09 1398
 
آموزش مدیریت بانک اطلاعاتی اوراکل - بخش پنجم
آموزش مدیریت بانک اطلاعاتی اوراکل - بخش پنجمآموزش مدیریت بانک اطلاعاتی اوراکل - بخش پنجم
آموزش مدیریت بانک اطلاعاتی اوراکل - بخش پنجم
 
introduce photovoltaic business
introduce photovoltaic businessintroduce photovoltaic business
introduce photovoltaic business
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 
Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0Pdn tech-netfilter&iptables-ver2.1.0
Pdn tech-netfilter&iptables-ver2.1.0
 

More from faradars

More from faradars (20)

آموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهمآموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهم
 
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجمآموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهمآموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهم
 
آموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهمآموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهم
 
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتمآموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
 
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتمآموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
 
آموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششمآموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششم
 
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجمآموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارمآموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
 
آموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سومآموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سوم
 
آموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دومآموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دوم
 
آموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکمآموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکم
 
آموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سومآموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سوم
 
آموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتمآموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتم
 
آموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دومآموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دوم
 
آموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتمآموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتم
 
آموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششمآموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششم
 
آموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اولآموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اول
 
آموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجمآموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجم
 
آموزش ترمودینامیک ۲ بخش چهارم
آموزش ترمودینامیک ۲ بخش چهارمآموزش ترمودینامیک ۲ بخش چهارم
آموزش ترمودینامیک ۲ بخش چهارم
 

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