صفحه 1:

صفحه 2:
#منابع : #منابع موجود در ‎www.atmel.com‏ ‏مرجع کامل میکروکنترلرهای ۸۸۷ - انتشارات نص - محمد مهدی پرتوی فر و .. © ميكروكنترلرهاى +4171 و كاربردهاى آنها - انتشارات نص - امیر ره افروز #نرم افزارها : ‎CodeVisionAVR‏ ® ‎Proteus‏ © ‎AVR Studio‏ ©

صفحه 3:
© ميان ترم 5 . i ۳ : ‏#تمرين‎ هو بان قوم ‎٠.‏ : نمره

صفحه 4:
Introduction © ATMEL © 8 bit Microcontroller © Families ® Tiny © 90S (CLASSIC) ® Mega ®LCD AVR ® Execute One Instruction Per Cycle (MIPS)

صفحه 5:
جایگزینی تراشه های قد AT90S2313 ATTINY2313 AT90S2323 ATTINY25 AT90S4433 ATMEGA8 AT90S8515 ATMEGA8515 ATMEGA103 ATMEGA128 ATMEGA161 ATMEGA162 ATMEGA163 ATMEGA16 ATMEGA323 ATMEGA32

صفحه 6:
نام میکر و کنترلر از دو یا سه قسمت تشکیل شده است 6 ۸۲۷۳0۸ 6 9 ۸۲۳0۵ 8 ‎ATTINY 28L‏ © ‎ATTINY 28 V‏ ® قسمت اول نوع و سری میکرو و قسمت دوم حافظه 112511 را بیان می کند. قسمت سوم مخفف 00176۳ 101۷ و 001761 ‎pS wi very low‏ جدول زیر شرح داده شده است:

صفحه 7:
2 ميكر وكنترلر 81/4 بدون پسوند 455 ميكر وكتترلر 21/18 با يسوند 1 ۷ -2.7 میکر و کنترلر ۴۹ ‎۸٩۷‏ با پسوند۷ 1.8-5.5 0-16 MHZ 0-8 MHZ 0-4 MHZ

صفحه 8:
-Package - ao ‏موجه‎ ‎Pat aoci) ‏امه موم‎ PAR ADE) a (3008) as (apes) ae (ance) Par ocr) AREF ND Per (rosea) Pos (TOSC!) Pos (TO Pot 1700} Pos TINS) Po2 ITOK) ‏بم‎ (308) Poa ‏رصح‎ ‎Por (0¢2} TOO ۳ 3 ۵۵ روصم ‎Pet‏ )7 ‎auras) P52‏ ‎(OCD) PE‏ ‎Pad‏ )58( ‎(eros Pes‏ ‎(ets) PB:‏ ‎(60K) PBT‏ ‎RESET‏ vee KD MTA? (x0) P00 (xD) PDE canto) Po2 ‎Pos‏ رصع

صفحه 9:
Pad (ADC) PAS (ADCS) PAB (ADCS) PAT (ADCT) AREF GND avec. Por (Tosca) Pes (TOSct) PCs (TD) PCA (THO) (7 TOFPIMLE 38.2 segs 255 5 2222 22 ‏ممم مع ممم ممم‎ موم وت ۲ 7 / 3 3 33 : 8 : ‎i‏ : 2 : ‎is‏ / 8 3 ‎to u‏ 3 1 1219141161716! 920722 otto errs BSS885888595 EEEEESSERES e588 3382 (Mosi) PBS (MISO) PEE (S0K) P87 RESET ۷0 GND xTAL2 XTALT (RxD) Poo (TxD) POI into) PO

صفحه 10:
1 موه ‎NES‏ نامع هلام

صفحه 11:
Architecture ® RISC: Reduced Instruction Set Computer ==> AVR ® CISC: Complex Instruction Set Computer

صفحه 12:

صفحه 13:
Data Bus &-bit Program Status Flash ‏لمم‎ > an Counter and Control Memory ‏لمم‎ ‎T ‏اجه‎ ‎>| sexe 7 Instruction General Brit Register Purpose 5 1 ‏م الم‎ Gait Tastuction Watchdoi Decoder | Tee 1 2 1 g £ canal Control Lines 3 omparator 2 3 1 g 6 = VO Modulet VO Module 2 VO Module n EEPROM VO Lines

صفحه 14:
Memory Types ® SRAM (Static Random Access Memory) @ EEPROM é£(Electrically Erasable Programmable Read Only Memo) © Program © Flash

صفحه 15:
Memory © Flash (for mega32) © 32K Bytes of In-System Self- Programmable Flash Endurance: 10,000 Write/Erase Cycles

صفحه 16:
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

صفحه 17:
® Program Counter (PC) ® Instruction Register (IR) ® Instruction Decoder (ID)

صفحه 18:

صفحه 19:
X-tegister Low Byte X-register High Byte Y-register Low Byte Y-register High Byte Z-register Low Byte Z-register High Byte $00 $01 302 800 508 SOF $10 $11 91۸ $1B 56 5 SIE SIF F 8 General Purpose Working Registers

صفحه 20:
X-Y-Z Registers ۳ » x ۲ X- ‏اوه‎ 7 5 ‘R27 (S1B) R26 (S1A) 3 ۳ 1 ۲ 8 ۳ 5 ٠ ‏و2‎ 7 5 For (str) ۳301۳1۳

صفحه 21:
Data Bus &-bit Program Status Flash ‏لمم‎ > an Counter and Control Memory ‏لمم‎ ‎T ‏اجه‎ ‎>| sexe 7 Instruction General Brit Register Purpose 5 1 ‏م الم‎ Gait Tastuction Watchdoi Decoder | Tee 1 2 1 g £ canal Control Lines 3 omparator 2 3 1 g 6 = VO Modulet VO Module 2 VO Module n EEPROM VO Lines

صفحه 22:
ALU e Arithmetic And Logic Unit e Arithmetic - ADD R1,R2 eR1€©R1+R2 eLogic e AND RI,R2 ۰111 111 AND R2

صفحه 23:
Owe فيوز بيت ها قسمتی از حافظه میکرو کنترلر ها هستند که امكاناتى را در اختيار كاربر قرار مى دهند و با پاک شدن حافظه میکرو تتظیمات آنها از بين نمی رود

صفحه 24:
Clock Source

صفحه 25:
Clock Sources Device Clocking Option | External CrystaliCeramic Resonator | 1114-1010 | External Low-frequency Crystal | 1001 External RC Oscillator | 1000 - 0101 | Calibrated Internal RC Oscillator | 0100 - 0001 | External Clock | 0000 Note: 1. Forall fuses “1” means unprogrammed while “0” means programmed.

صفحه 26:
-Package - ao ‏موجه‎ ‎Pat aoci) ‏امه موم‎ PAR ADE) a (3008) as (apes) ae (ance) Par ocr) AREF ND Per (rosea) Pos (TOSC!) Pos (TO Pot 1700} Pos TINS) Po2 ITOK) ‏بم‎ (308) Poa ‏رصح‎ ‎Por (0¢2} TOO ۳ 3 ۵۵ روصم ‎Pet‏ )7 ‎auras) P52‏ ‎(OCD) PE‏ ‎Pad‏ )58( ‎(eros Pes‏ ‎(ets) PB:‏ ‎(60K) PBT‏ ‎RESET‏ vee KD MTA? (x0) P00 (xD) PDE canto) Po2 ‎Pos‏ رصع

صفحه 27:
ernal “og XTAL2 5 4 St xtra GND Oscillator Frequency Range | Recommended Range for Capacitors (Hz) C1 and C2 for Use with Crystals (pF) 0.4-0.9 2 0.9-3.0 12-22 ۵0-0 12-22 105 12-22 CKSELS.41 Tor 110 111 401, 110, 111 This option should not be used with crystals, only with ceramic resonators. ۷02۲ ات ارت Note: 1.

صفحه 28:
Prov Frequency Crystal Oscillator 2 ۲ XTAL2 ‏و ویو‎ 5 ta? ‏ات‎ ‏وه‎ 0 CKOPT =0 ==> Internal 36pF Capacitor

صفحه 29:
External RC Oscillator XTAL2 1011 ۳۱/۵96 7 8 | ۰ | 90 99-0 ont 50-0 | 1000 80-20 min C=22pF 3K<R<100K if CKOPT=0 then internal 36pF cap is available

صفحه 30:
۱9 ۳ Oscillator CKSELS.0 ‘Nominal Frequency (MHz) ۳ 10 0010 20 ort 40 700 86 Note: 1. The device is shipped with this option selected.

صفحه 31:
External Clock CKSEL=0000 If CKOPT=0 then internal c=36pF is available between XTAL1 and GND لور ono Ne

صفحه 32:
وس سس سس 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.

صفحه 33:
Clock Distribution

صفحه 34:
Calibrated RC Oscillator Flach and EEPROM ADC CPU Core RAM 1 1 ‏عووااه‎ ‎AVR Clock ‏تمه‎ ‎Control Unit ‏ی‎ ‎1 1 Reset Logio Watchdog Timer 7 ‏جز‎ 7 ‘Souree Clock Watchdog Clock Watchdog Oscillator Low-frequency Crystal Oscilator Extemal Giock Crystal Oscillator General ۵ Modules External RC Oscillator ‘Agyrehronous Timer/Counter 1 Timer/Counter ‘Osellator

صفحه 35:

صفحه 36:

صفحه 37:
SRAM Management

صفحه 38:
Data Aciress Space 6 Register Fle M Data (mega32)

صفحه 39:
Programmin 1 CodevisionAVR

صفحه 40:
e Prototyp #include <mega32.h> global definition mainQ { local variable; © statements; 1 function10, { local variable; Statements; } function20, © local variable; © Statements; 1

صفحه 41:
Prototype چون میکرو هميشه بايد در حال فعالیت باشده درون تابع 128110 یک حلقه دائم قرار داده می © #include <mega32.h> © global definition © main() 4 ‎local variable;‏ »© دستوراتی که باید یک بار اجرا شوند ‎٩‏ ‏(1) ۲۷۱۵ ۰ ‎a‏ ‏دستورات و کدهای اصلی برنامه که دائما اجرا می شوند 6 ۰1 95

صفحه 42:
Owe نکاتی در مورد برنامه نویسی خط اول هميشه دستور فراخوانی فایل های حاوی توابع 11630161 است در انتهای هر عبارت یک سمی کالن قرار داده می شود | 5 | 52 ابتدا و اتهای هر حلقه» عبارت شرطی و یا بلوک قرار داده می شود از // یا( /* و */) برای نوشتن توضیح در برنامه استفاده می شود

صفحه 43:
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 © Jong int 32 -2147483648 to 2147483647 © unsigned long int 32 0 to 4294967295 © signed long int 32 -2147483648 to 2147483647 © float 32 21.1756-38 ‏م‎ 98 © double 32 21.1756-38 ‏م‎ 98

صفحه 44:
Owe متغير ها و ثابت ها ابتدا باید معرفی شوند نام متغير نوع متغير حافظه مورد نیاز برای متفیر ‎eeprom int temp;‏ ‎flash int‏ ‎temp=10;‏ ‎eeprom char str;‏ ‎float a;‏ ‎int‏ ‎b=30;‏ .نام متفیر ها می تواند تر کیبی از حروف و اعداد باشده فقط نام متفیر نباید با عدد شروع شود

صفحه 45:
ات سس Constants ®flash int x=123; ®const char y=‘a’; ®#define C 100;

صفحه 46:
آرایه ها تعدادی متغیر دلخواه از یک نوع و یک نام که با اندیس های شماره دار از هم جدا هستند 101 5۳]10[ int i[3]= {2,5,6} ‏رشته(51۳1۳0):‎ به آرایه هایی که حروف اسکی را درون خود نگه می دارند» رشته می گوییم. ‎Char t[5]= “temp‏

صفحه 47:
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

صفحه 48:
————— Operators 1 ۱ 0 A ۸ ۱ ‏ا‎ ‎eases ۷ ۱ 0

صفحه 49:

صفحه 50:
>> >> OxFO & OxOF 0x00 | 0x03 OxOF “ ۴ ~(OxFO) OxFO >> 4 00۲ >> 4

صفحه 51:
افزایش یک واحد کاهش یک واحد آدرس در آدرس مثال 3 att a=at1 a=a-1 آدرس 3 در آدرسی که 3 به آن آشاره می‌کند

صفحه 52:

صفحه 53:

صفحه 54:
Decision and loops © if -else ® while ® do-while ® for © Switch - case

صفحه 55:

صفحه 56:
char a=10; char b=20; char max; void main(void) 14 while(1) £ if(a>b) 2 } € max=b;

صفحه 57:
switch (=) ( ase) Jabs Vege نامز شار ع عدت Tope fereak:] casey jute مور ۳ تام لدعم ‎Leonel‏

صفحه 58:
case 4: cate 6: aprintf(buffer,"Tabestan"); break; cane 3: sprint(buffer,"Paez" break; case ] ‏معط‎ ‎defaul ‎sprintf[butfer,"Error”); ‎1 #include <stdio.h> char month=10; char buffer[10]; void main(void) 4 while(1) 1 switch (month) 1 case 1: case 2: case 3: ‘sprintf(buffer," Bahar"); break;

صفحه 59:

صفحه 60:

صفحه 61:

صفحه 62:
#include <stdio.h> char buffer[10]; void main(void) ‏ف‎ while(1) 1 for (I=1; 1<=10; 1=1+1) sum = sum+i; sprintf(buffer,“Sum is %d",sum); 1 71

صفحه 63:
توابع و فرم تابع نویسی نام تابع 2 نوعداده خروجى (داده هاوورودى © 8 تعريف متغير هاى محلى © ۰ با ز گرداندن مقدار خروجی در صورت وجود 6 = دستورات

صفحه 64:
برنامه ای بنویسید که عدد ورودی را به توان ۳ برساند ®longint func( int x) BE ® long int s; © s=xtx*x; © return ‏زک‎ =:

صفحه 65:
جایگاه نوشتن توابع :توابع را در دو جا می توان نوشت ۱- قبل از ‎main gt‏ ۲- در زیر کل برنامه <include<header# Void func(void) 1 دستورات ()Void main } دستورات 7

صفحه 66:
<include<header# ‘Void fune(void) Void main(void) 1 دستورات ‎While(1)‏ 1 دستورات 1 { (Void fune 1 دستورات 1

صفحه 67:
Libraries math.h stdio.h delay.h Megal16.h And ...

صفحه 68:
PORTS

صفحه 69:
Direction #4 8 % ¢ اد ‎ot‏ ‏مومه [ 5021 | 9082 | 5045 | 0064 | 5085 | 905 | | Initial Value 0 3 3 0 0 3 0 0 Output=1 // PA.O input 3 //PA.5 output ۳16-0: 6

صفحه 70:
Output Latch a 76 5 4 3 2 3 9 [Farrar | romae roma | ronmat | roma] Fomras | ron | roma] roma peauwite RAT a Initial Vatu 0 0 9 0 0 3 0 0

صفحه 71:
Input register Br 7 6 5 4 3 2 1 0 LpINA7 | prac | pmas | PINAG | Pmas | PINAZ | PINAY | PmAO | PINA ReadWrite 8 8 8 8 8 8 8 8 Intial Value ‏ناا‎ NA NA ۷۸ NA NA NA NA

صفحه 72:
Example-1 برنامه ای بنویسد که بر روی پورت 3 مقدار 0628 را بنویسد. #include <mega32.h> void main(void) { DDRB=0xFF ; while (1) 1 PORTB=0x28; 1

صفحه 73:
Example-2 © تابعى بنويسيد که یک چراغ راهنمایی را بصورت زیر پیاده سازی کند: ‎ju?‏ : ۱۵ثانیه گزرد: ۲ثانیه © قرمز: 8 ثانيه نام تابع : 1181110516121 ورودی : ندارد خروجی : ندارد سبز : ۳0۳۲۸۵۰0 زرد: ۳0۲۸.1 0,55 : ‎PORTA.2‏

صفحه 74:
Example-2 Header file: delay.h void delay_us(unsigned int n); void delay_ms(unsigned int n); delay_us(100) <-- ‏#مثال : تاخیر ۱۰۰ میکروانیه‎ #مثال : تاخیر ۵ انیه -- < ‎delay_ms(5000)‏

صفحه 75:
Example-2 #include <mega32.h> #include <delay.h> void traficsignal (void) ; void main(void) 4 DDRA=0x07 ; while (1) 1 traficsignal(); he } void traficsignal (void) 1 PORTA. 0=1; PORTA. 1=0; PORTA. 2=0; delay_ms(15000) ; PORTA, 0=0; PORTA. 1=1;PORTA.2=0; delay_ms (3000) ; PORTA. 0=0; PORTA. 1=0; PORTA. 2=1; delay ms (15000) ; و

صفحه 76:
Exercise-1 ۱- تابعی بنویسد که یک چراغ راهنمایی را با دریافت تاخیرها توسط پرنامه زیر راه اندازی کند. #سبز : ۵06127 ثانیه ast Ydelay ‏#ررد:‎ ast ٩0612۲ ‏#قرمز:‎

صفحه 77:
Exercise-1 #include <mega32.h> void traficsignal(int gdelay,int ydeay,int rdelay); void main(void) 1 DDRA=0x07 ; while (1) 1 :(2,لا,»*) 8116519081 ye } void traficsignal(int gdelay, int ydelay, int rdelay) 1 PORTA. 0=1; PORTA. 1 delay _ms(gdelay) ; PORTA.0=0;PORTA. delay ms(ydelay) ; PORTA.0=0; PORTA. delay_ms(rdelay) ; 1

صفحه 78:
Example-3 ابعی بنویسید که یک عدد بی علامت را از پورت ۸ خوانده و بر روى يورت 3 نشان دهد. #include <nega32.h> void in out port(void); void main(void) 1 0900۵ 2088-01: while (1) 12 ‏ماه و‎ 1 > void in out port (void) 2 ‘unsigned char x; x=PINA; PORTB=x; 0

صفحه 79:
7segment

صفحه 80:
Common Anode

صفحه 81:
Common Cathode

صفحه 82:
Example-4 #برنامه ای بنویسید که اعداد ۰ تا ‎٩‏ را بر روی 7560106 آند مشترک به فاصله یک ثانیه نشان دهد . #include <mega32.h> #include <delay.h> unsigned char seven seg code(unsigned char num) ; void main(void) 1 unsigned char i; DDRA=Oxff; while (1) { for (i=0;i<10;i++) PORTA=seven_seg code(i); delay_ms (1060) ; Mz i

صفحه 83:
Coding ‏نت ل‎ anaes وه 1 1 1 1 1 1 3 ° 1 2 1 0 1 ° ° 1 ° ° om) 3 1 ° 1 1 3 3 0 0 ۳ 4 1 ° ° 1 1 3 ° 1 ‏لد‎ ‎5 1 ° ° 1 3 3 1 0 eo 6 2 ° ° ° ۰ ۰ 1 a ‏ان‎ ‎7 1 1 1 1 1 3 ° ° ‘ore 8 1 ۰ ° ° ° 3 ۰ ° 2 ات

صفحه 84:
Example-4 unsigned char seven_seg_code(unsigned char num) 1 unsigned char out; switch (num) { case O:out=0xc0; break; case 1:out=0xf9; break; case 2:out=0xa4; break; case 3:0ut=0xb0;break; case case case case case case 1 return out; 1

صفحه 85:
Owe °¥- مثال قب © مثال قبا ‎ly 7447‏ Exercise ‏ل را برای یک 75860 کاتد مشترک پیاده سازی کنید.‎ ل را با استفاده از ‎7segment .4 BCD Ja..IC‏ اده سازی کنید. ۴ با استفاده از 75601۳0610 کاتد مشترک و ۰7448 10 یک شمارنده ۰ قا ‎٩‏ با فاصله زمانی. ۱ ثانیه بسازید. ©ه- برنامه ای بنویسید که عددی را از پورت 3 خوانده و برروی 7560 نمایش دهد. #ع- یک شمارنده ۰ تا ‎۹٩‏ با فاصله زمانی ۱ ثانیه بسازید

صفحه 86:
Double 7Segment

صفحه 87:

صفحه 88:
LCD

صفحه 89:
LCD1 ۱۷۵16

صفحه 90:
OV (GND) Power supply for logic circuit and LCD (+4. 5V~+5. 50 Bias voltage level for LCD driving Register select input When RS= “High, data register is selected When RS= “Low”, instruction register is selected -Read/Write selection input When RW= “High”, read operation When RW= “Low”, write operation Start enable signal to read or write the data DBO-DB3, in 8-bit bus mode, used as low order bi- directional data bus During 4-bit bus mode, open these pins DB4-DB7, in 8-bit bus mode, used as high order bi- directional data bus. In case of 4-bit bus mode, used. as both high and low order DB? used for Busy Flag output backlight anode backlight cathode Power supply Power supply LCD Supply Voltage Register select Read/Write Read Write enable Data bus 0-7 RW DBO DBL DB2 DB3 24 DBS 6 DB7

صفحه 91:
۲ لق بس لقد ‎aa‏ لك PADADOD 2۸۱۸۵6۱ PAQADCZ 4 paaapca ‏ومس ليد‎ PASIADCS ‏معممويع لكد‎ ‏همع لد‎ موسو لت ۲ لیم مس لت me ‏له‎ ‏رس‎ ‎Berson ATMEGATS 10% 10k

صفحه 92:
Initialization /* the LCD module is connected to PORTC */ #asm + equ __lcd_port=0x15 #endasm /* now you can include the LCD Functions */ #include <lcd. h> Led_init(20);

صفحه 93:
PORT ADDRESS $1B ($38) PORTA $1A ($3A) DDRA $19 ($39) PINA $18 ($38) PORTB $47 ($37) DDRB. $16 ($36) PINB $45 (635) PORTC. $44 (634) DDR. $13 ($33) PING $42 ($32) PORTD. $11 ($31) DDRD $10 ($30) PIND

صفحه 94:
-CD Configuration With CodeWizard 7 He teh USART | Ariog Coast ADE | SPI vc ۱ ‏مه‎ ‏وت‎ | Pate | Enamaliea | Tine LCD. | eeanged | Poot ‏متمد‎ caret fPoRTa =] ‏ناسمه‎ 87 PORT 80-88 LCD Fing) PORT AK 1-AD LCD Pins) PORT 3t2-EN [LED Fing) PORT Bk? PORT 304-3046۵ Pitt) PORT 8k5-OBSILCD Pr12) PORT BRB -OBG(L.CD Pr 13) PORT St 7-OB7(LCD Pr 14)

صفحه 95:
Icd.h - High Level unsigned char Icd_init(unsigned char lcd_columns) void lcd_clear(void) void lcd_gotoxy(unsigned char x, unsigned char y) void lcd_putchar(char c) void lcd_puts(char *str) void lcd_putsf(char flash *str)

صفحه 96:
unsigned char Icd_init(unsigned char lcd_columns) Example: lcd_init(16)

صفحه 97:
Owe void lcd_clear(void) صفحه ال سی دی را پاک می کند void lcd_gotoxy(unsigned char x, unsigned char y) مکان نما را به سطر و ستون دلخواه می برد ‎Lcd_gotoxy(4,2)‏

صفحه 98:
void lcd_putchar(char c) Example : Icd_putchar(‘a'); void lcd_putsf(char flash *str) Icd_putsf(” Hello World");

صفحه 99:
void lcd_puts(char *str) Example: sprintf(buffer, “tempreture= %d”, temp); lcd_puts(buffer);

صفحه 100:
۰ ۱ 5 و یجنم کاراکت ع8 را بر ووی یک 2316 ‎LOD‏ تمایش دهید. #include <mega16.h> 9 -7 xample و در سطر دوم ستون اول عبارت asm ‘equ _Icd_port=0x1B ;PORTA. #endasm #include <led.h> #include <delay-h> void main(void) { led_init(16); while (1) 1 Ied_clear(); led_gotoxy(5,0); Ied_putchar(‘a’); led_gotoxy(0,1); Icd_putsf("CodeVisionAVR"); delay_ms(200); 5 3

صفحه 101:
xample-8 ابعى بنويسيد كه بصورت روان كلمه 17151011 00016) را بر روى (1:)001 نمايش دهد. ‎include <megal6.h>‏ ‎i1Alphanumerie LCD Module functions‏ ‎asm‏ ‘equ _lod_port=Ox1B ;PORTA endasm #include <lod.h> Pinclude <delay.h> ‘void main(votd) 1 ints Ted init(16); while (1) { for (I= 0;1<7:i++) 1 ۳ Jed_gotoxy(,0); Icd_putsf("CodeVisios delay_ms(400); 1 1

صفحه 102:
PULL UP PUD DDxn | PORTxn | (in SFIOR) vo Pull-up | Comment 0 0 x Input No ‘Tri-state (Hi-Z) Pxn will source current if ext. pulled: 1 0 Input | Yes | low. 1 1 Input No | Tristate (Hi-Z) 1 0 x Output | No | Output Low (Sink) 1 1 x Output | No | Output High (Source) a a8 2 # ‏اه ةق‎ 1 & [aor] SS ‏دمن‎ EN Intial value ‏و‎ 3 3 9 ۰ 9 ۰ ۰

صفحه 103:
example5 © برنامه ای بنویسید که پین پنجم پورت ۸ را ‎PULL UP‏ 09,5 و ورودی آن را بخواند چنانچه ورودی صفر شد یک 160 را روشن نماید. #include <mega32.h> void main(void) PORTA.0=0 SFIOR=0x09; white (1) { PORTA.0=0; 2

صفحه 104:
اوآ

صفحه 105:

صفحه 106:
تلمع ‎Ola‏

صفحه 107:
a o ca 2ج a1 Rt R2 R3 94 PCOISCL PCUSDA PC2TOK (5 PC4iTDO PCSITD) PCBTOSC! PCHTOSC? ۴۵0۳۵ POUTXO PO2ANTO POSMNT1 PD4/OC1B ‏ا‎ ‎۴۵۵/۴ ‎۳0002 ACC AREF Ut RESET ml (6۲۸1 ‏اعد‎ 2 40 ۳۸۵ PAIIADCI PA2ADC? PABADC3 PA#ADC4 PASIADCS PABIADCB PATIADC? PBOXCKITO PBITI PB2/INT2IAIND PB3OCDIAIN' PB4SS PBSMOSI PBGMISO PBTISCK ATMEGA32

صفحه 108:
Initialization Is key pressed? Find key Is Key released 2

صفحه 109:
Initialization void initial_keypad_port() SFIOR=SFIORS&OXFB; 1

صفحه 110:
unsigned char key, butnum; int s; unsigned char keytbl[16]={Oxee, Oxed, Oxeb, Oxe7, Oxde, Oxdd, Oxdb, 0xd7, Oxbe, Oxbd, Oxbb, 0xb7, 0x7e, 0x7d, 0x7b, 0x77}; DDRC = Ox0f; PORTC = Oxf0; delay_us(5); key = PINC; DDRC = Oxf0; PORTC = OxOf; delay_us(5); key = key | PINC;

صفحه 111:
if (key ! { for (butnum=0; butnum<16; butnum++) { if (keytbl[butnum]==key) break; }

صفحه 112:
Example-9 * برنامه اي بنویسید که عددي را از 16617120 خوانده برروي 7960نمایش دهد.

صفحه 113:
#include<mega16.h> #include<delay.h> int key(); display(int x); int a; main() { DDRB=Oxff; a=key(); display(a); }

صفحه 114:
Oxdd, Oxdb, 0xd7, Oxbe, unsigned char key, butnum; int s; unsigned char keytbl[16]={Oxee, Oxed, Oxeb, Oxe7, Oxde, id, Oxbb, Oxb7, Ox7e, Ox7d, 6x7b, 0x77}; DDRC = OxOf; PORTC = Oxf0; delay_us(5); key = PINC; DDRC = Oxf0; PORTC = Ox0f; delay_us(5); key = key | PINC; if (key != Oxff) { for (butnum=0; butnum<16; butnum++) if (keytbl[butnum]==key) break; 1 s=butnum; 1 else s=17; return s;

صفحه 115:
display(int x) { char str[16]= {0x3F,0x06,0x5B,0x4F, 0x66, 0x6D,0x7D, oe Ox6F,0x77,0x7C,0x39,0x5E,0x79, x 7 PORTB=str[x]; }

صفحه 116:
نامه با طورى دهيد كه عدد را (01).آنما دهد ۱ بالا را 5 ‎PASS SY); 1 0 oe‏ را ‎pay‏

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
34,000 تومان