1.21k likes | 1.55k Views
AVR Microcontrollers. Firsrt Session. منابع : منابع موجود در www.atmel.com مرجع كامل ميكروكنترلرهاي AVR - انتشارات نص - محمد مهدي پرتوي فر و .. ميكروكنترلرهاي AVR و كاربردهاي آنها - انتشارات نص - امير ره افروز نرم افزارها : CodeVisionAVR Proteus AVR Studio. ميان ترم : 5 نمره
E N D
AVR Microcontrollers Firsrt Session
منابع : • منابع موجود در www.atmel.com • مرجع كامل ميكروكنترلرهاي AVR - انتشارات نص - محمد مهدي پرتوي فر و .. • ميكروكنترلرهاي AVR و كاربردهاي آنها - انتشارات نص - امير ره افروز • نرم افزارها : • CodeVisionAVR • Proteus • AVR Studio
ميان ترم : 5 نمره • تمرين : 3 نمره • پروژه : 3 نمره • پايان ترم : 10 نمره
Introduction • ATMEL • 8 bit Microcontroller • Families • Tiny • 90S (CLASSIC) • Mega • LCD AVR • Execute One Instruction Per Cycle (MIPS)
نام میکروکنترلر از دو یا سه قسمت تشکیل شده است • ATMEGA 16 • ATMEGA 8 • ATTINY 28L • ATTINY 28 V قسمت اول نوع و سری میکرو و قسمت دوم حافظه flashرا بیان می کند. قسمت سوم مخفف low power و very low power است. که در جدول زیر شرح داده شده است:
Architecture • RISC: Reduced Instruction Set Computer ==> AVR • CISC: Complex Instruction Set Computer
Memory Types • Data • SRAM (Static Random Access Memory) • EEPROM (Electrically Erasable Programmable Read Only Memo) • Program • Flash
Program Memory • Flash (for mega32) • 32K Bytes of In-System Self-Programmable Flash Endurance: 10,000 Write/Erase Cycles
Data Memories • SRAM (for mega32) • 2K Byte Internal SRAM- Register file, I/O Register, Data Address. • EEPROM (for mega32) • 1024 Bytes EEPROM Endurance: 100,000 Write/Erase Cycles
Program Counter (PC) • Instruction Register (IR) • Instruction Decoder (ID)
ALU • Arithmetic And Logic Unit • Arithmetic • ADD R1,R2 • R1R1+R2 • Logic • AND R1,R2 • R1R1 AND R2
فیوز بیت ها قسمتی از حافظه میکرو کنترلر ها هستند که امکاناتی را در اختیار کاربر قرار می دهند و با پاک شدن حافظه میکرو تنظیمات آنها از بین نمی رود
Timer/Counter Oscillator • For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the crystal is connected directly between the pins. No external capacitors are needed. The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external clock source to TOSC1 is not recommended.
AVR Microcontrollers Second Session
Programming With CodevisionAVR
Prototype • #include <mega32.h> • global definition • main() • { • local variable; • statements; • } • function1() • { • local variable; • Statements; • } • function2() • { • local variable; • Statements; • }
Prototype چون میکرو همیشه باید در حال فعالیت باشد، درون تابع main یک حلقه دائم قرار داده می شود. • #include <mega32.h> • global definition • main() • { • local variable; • دستوراتی که باید یک بار اجرا شوند • While (1) • { • دستورات و کدهای اصلی برنامه که دائما اجرا می شوند • } • }
نکاتی در مورد برنامه نویسی خط اول همیشه دستور فراخوانی فایل های حاوی توابع header است در انتهای هر عبارت یک سمی کالن قرار داده می شود } و { در ابتدا و انتهای هر حلقه، عبارت شرطی و یا بلوک قرار داده می شود از // یا ( /* و */) برای نوشتن توضیح در برنامه استفاده می شود
Data Type • Type Size (Bits) Range • bit 1 0 , 1 • char 8 -128 to 127 • unsigned char 8 0 to 255 • signed char 8 -128 to 127 • int 16 -32768 to 32767 • short int 16 -32768 to 32767 • unsigned int 16 0 to 65535 • signed int 16 -32768 to 32767 • long int 32 -2147483648 to 2147483647 • unsigned long int 32 0 to 4294967295 • signed long int 32 -2147483648 to 2147483647 • float 32 ±1.175e-38 to ±3.402e38 • double 32 ±1.175e-38 to ±3.402e38
متغیر ها و ثابت ها ابتدا باید معرفی شوند نام متغیر نوع متغیر حافظه مورد نیاز برای متغیر eeprom int temp; flash int temp=10; eeprom char str; float a; int b=30; نام متغیر ها می تواند ترکیبی از حروف و اعداد باشد، فقط نام متغیر نباید با عدد شروع شود.
Constants • flash int x=123; • const char y=‘a’; • #define C 100;
آرایه ها تعدادی متغیر دلخواه از یک نوع و یک نام که با اندیس های شماره دار از هم جدا هستند intstr[10]; inti[3]= {2,5,6} رشته(string): به آرایه هایی که حروف اسکی را درون خود نگه می دارند، رشته می گوییم. Char t[5]= “temp”;
bit Data type • bit x,y; • x=1; • from R2.0 to R14.7 max=104 • Set in following menu: • Project/Configure/C Compiler/Code Generation/Bit Variable size
Operators + - * / % ++ -- = == ~ ! != < > <= >= & && | || ^ ? << >> -= += /= %= &= *= ^= |= >>= <<=