220 likes | 327 Views
Bahasa c untuk pemrogramman avr. Sistem mikroprosessor – by rizal suryana. Alat Bantu. Applikasi + Compiler = CodeVision AVR Proteus. Tipe Data. Pendefinisian Variabel. Mengacu pada type data. Type_data nama variabel Unsigned int data; Unsigned int DATA; Data equ 23H.
E N D
Bahasa c untukpemrogrammanavr Sistemmikroprosessor – by rizalsuryana
Alat Bantu • Applikasi + Compiler = CodeVision AVR • Proteus
PendefinisianVariabel • Mengacupada type data. • Type_datanamavariabel • Unsigned int data; • Unsigned int DATA; • Data equ 23H
Konstanta • Sebuahvariabel yang nilainyatetap • const int b=1234 • constint pi=3.14
OPERATOR • Aritmatika • *, +, -, /, %, ++, -- • Logika • &&, ||, • Pembanding • >,<,==,=>,=<,!= • Shift • >>,<<,>>=,<<= • Bitwise • &, |, ~,^,! • Compound Assignment • +=,-=,*=,/=,%=,&=,^=
Operator Aritmatika • C = b + a • D = c – a • A = c * d • B = d / a • Ab = a%c
Operator Logika • && • a == b && c >d • || • c > d || d < a
Operator Pembanding • 4 > 2 • 3 < 10 • 4 >= 2 • 5 == 5, A = 12 • 10 <= 12 • 7 != 5
Operator Shift • 2 >> • 3<< • 2>>=2 • 3<<=4
Operator Bitwise • 25H & 12H • 09H | 2AH • ! 1H • ~ 25H • 07H ^ 2H
Operator Compound Assignment • A+=3 • A-=3 • A*=3 • A/=3 • A%=3 • A = A + 3 • A = A – 3 • A = A * 3 • A = A / 3 • A = A % 3
Function • Merupakansuatusubroutin program • intalfa(char par1, int par2, long par3) { /* Write some statements here */} • Running_led () { Please code here } • Void lcd_Clear (void) { /write code here } • Pemanggilan function • lcd_Claer( ) ;
Void Hitung_delay(int a, char f){ • c= d+a; • H = c * f; • } • Hitung_delay (nilaiA, waktu)
Komentar • // untuksatubarisperintah • /* */ untukbanyakperintahbaris /* PORTA=25; */
Akses Port I/O • DDRx Menentukanfungsidari I/O • PORTX AKSES I/O • Akses PORT sebagai Output menggunakanvariabel PORT (PORTC=25, PORTC.1=1) • Akses PORT sebagai INPUT menggunakan Variable PINx.Contoh • If (PINA.1==0){ //write code here dataPortA = PINA dataBitPortD = PIND.7 }
Percabangan • If • If … else • If … else if … else • while • Do … while • for • Switch () { • Case : }
Percabangan IF • If (PINA.1==0){ PORTC=255; Hitung_delay(); } • If (PINA == 100){ PORTC.2=1 } Else if (PINA == 50) { PORTC.2=0 } Looping : • If (PINA.1 == 0){ PORTC.2=1 } Else if (PINA.1==1) { PORTC.2=0 } Else if (PINA.2==0) } PORTB==0 }
Percabangan while dan do … while • While(NilaiA==10) { PORTA=100; } • NilaiA=1; Do { PORTC=I; i++; NilaiA++; }while(NilaiA<10)
Percabangan for • for (i=10;i==50;i++;){ printf("%d\r\n",data_ori); delay_ms(100); }
PercabanganSwitch • inputan=1; • switch(inputan){ case ‘5' : data_ori = read_adc(1); printf("%d\r\n",data_ori); delay_ms(100); case ‘1' : data_ori = read_adc(1); printf("%d\r\n",data_ori); delay_ms(100); case ‘2' : data_ori = read_adc(1); printf("%d\r\n",data_ori); delay_ms(100); }