Struktur pemrograman C
Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu :
Secara umum, pemrograman C paling sederhana dilakukan dengan hanya menuliskan program utamanya saja, yaitu :
void main (void)
{
…
}
A. Header
Header berisi include file (.hex), yaitu library (pustaka) yang akan digunakan dalam pemrograman.
Contoh:
#include <mega8535.h>
B. Tipe Data
Berikut ini adalah tabel tipe-tipe variabel data yang dapat digunakan di kompiler Code Vision AVR:
Khusus untuk tipe data bit hanya bisa dideklarasikan untuk variabel global.
C. Konstanta
Penulisan konstanta adalah sebagai berikut:
D. Komentar
Komentar diawali dengan tanda ‘/*’ dan diakhiri dengan ‘*/’.
Contoh:
/* ini komentar */
/* ini komentar
multi baris*/
Contoh:
// Ini juga komentar
E. Reserved Keywords
F. Aritmatika
G. Simbol
H. Manipulasi Bit
I. Percabangan
if (a<0×50) {
PORTC=0×55; // PORTC akan dikirim data 0×55
};
if (a<0×50) {
PORTC=0×55;
}
else {
PORTC=0xAA;
};
. . .
switch (a) {
case 1:
PORTC=0×01;
break;
case 2:
PORTC=0×02;
break;
case 3:
PORTC=0×03;
break;
}
. . .
. . .
switch (a) {
case 1:
PORTC=0×01;
break;
case 2:
PORTC=0×02;
break;
case 3:
PORTC=0×03;
break;
default:
PORTC=0xFF;
}
. . .
J. Perulangan
. . .
a=1;
for (i=1; i<50; i++) {
a=a*2
PORTC=a;
};
. . .
. . .
i=1;
a=1;
while (i<50) {
a=a*2;
PORTC=a;
i++;
};
. . .
. . .
i=1;
a=1;
do {
a=a*2;
PORTC=a;
i++;
}
while (i<50);
. . .
Referensi :
Bahasa C Untuk Mikrokontroler ATMEGA8535, M.ary heryanto, ST & Ir. Wisnu Adi P.
http://catatansaad.wordpress.com/2009/07/26/bahasa-pemrograman-c-untuk-avr/
Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu :
- header,
- deklarasi konstanta global atau variabel,
- fungsi dan prosedur
- program utama.
Secara umum, pemrograman C paling sederhana dilakukan dengan hanya menuliskan program utamanya saja, yaitu :
void main (void)
{
…
}
A. Header
Header berisi include file (.hex), yaitu library (pustaka) yang akan digunakan dalam pemrograman.
Contoh:
#include <mega8535.h>
B. Tipe Data
Berikut ini adalah tabel tipe-tipe variabel data yang dapat digunakan di kompiler Code Vision AVR:
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
|
C. Konstanta
Penulisan konstanta adalah sebagai berikut:
- Integer atau lng integer dpat ditulis dengan format desimal (contoh 1234), biner dengan awlan 0b contoh (0b101001), heksadesimal dengan awalan 0x (contoh 0xff) atau oktal dengan awalan 0 (0777).
- Unsigned integer ditulis dengan diakhiri U (contoh 10000U).
- Long integer diulis dengan diakhiri L (contoh99L)
- Unsigned long integer ditulis dengan diakhiri UL (contoh 99UL).
- Floating point ditulis dengan diakhiri F (contoh 1.234F).
D. Komentar
Komentar diawali dengan tanda ‘/*’ dan diakhiri dengan ‘*/’.
Contoh:
/* ini komentar */
/* ini komentar
multi baris*/
Contoh:
// Ini juga komentar
E. Reserved Keywords
Break flash signed
bit float sizeof case for sfrb char funcused sfrw const goto static continue if struct default inline switch do int typedef double interrupt union eeprom long unsigned else register void enum return volatile extern short while |
Simbol | Contoh | Aritmatika |
+ | c=a+b n=n+2 | Penjumlahan |
- | c=a-b n=n-2 | Pengurangan |
++ | ++i | Kenaikan(increment, sama dengan i=i+1 |
- | –i | Penurunan(decrement, sama dengan i=i-1 |
* | c=a*b n=n*2 | Perkalian |
/ | c=a/b n=n/2 | Pembagian |
% | sisa=a % b | Menghasilkan sisa dari pembagian. A dan b bilangan bulat |
= | a=b | Pemberian nilai |
+= | a+=2 | Penambahan suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a+2 |
-= | a-=2 | Pengurangan suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a-2 |
*= | a*=2 | Pengalian suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a*2 |
/= | a/=2 | Pembagian dari suatu nilai pada suatu variabel yang sudah ada sebelumnya. Sama dengan a=a/2 |
%= | a/=2 | Sisa dari suatu nilai pada suatu variabel yang sudah ada sebelumnya yang dibagi oleh nilai atau variabel lain. Sama dengan a=a/2 |
* | *pointer | Menunjukkan isi dari pointer |
Symbol | Contoh | Logika Pembanding |
“==” | if(a==b) | Logika sama dengan, digunakan untuk pembanding. Menghasilkan nilai true jika a = b. |
!= | if(a!=b) | Tidak sama dengan. Menghasilkan nilai true jika a ≠ b. |
< | if(a<b) | Logika lebih kecil dari. Menghasilkan nilai true jika a < b. |
<= | if(a<=b) | Logika lebih kecil sama dengan dari. Menghasilkan nilai true jika a ≤ b. |
> | if(a>b) | Logika lebih besar dari. Menghasilkan nilai true jika a > b. |
>= | if(a>=b) | Logika lebih besar sama dengan dari. Menghasilkan nilai true jika a ≥ b. |
! | If(!a) | NOT |
&& | if(a==b && a==c) | AND |
| | | if(a==b | | a==c) | OR |
~ | a=~b | Complement b=1100;a=0011 |
& | c= a & b | AND untuk manipulasi bit. a=1100; b=1001; maka c=1000 |
| | c=a | b | OR untuk manipulasi bit. a=1100; b=1001; maka c=1101 |
^ | c=a ^ b | XOR untuk manipulasi bit. a=1100; b=1001; makac=0101. |
<< | c=a << n | Shift left, manipulasi bit menggeser ke kiri sejauh n bit. a=1101; n=2; maka c=110100 |
>> | C= a >> n | Shift Right, manipulasi bit menggeser ke kiri sejauh n bit. a=11010; n=2; maka c=0110. |
- if-then
if (a<0×50) {
PORTC=0×55; // PORTC akan dikirim data 0×55
};
- if-then-else
if (a<0×50) {
PORTC=0×55;
}
else {
PORTC=0xAA;
};
- Switch – case
. . .
switch (a) {
case 1:
PORTC=0×01;
break;
case 2:
PORTC=0×02;
break;
case 3:
PORTC=0×03;
break;
}
. . .
- Switch – case – default
. . .
switch (a) {
case 1:
PORTC=0×01;
break;
case 2:
PORTC=0×02;
break;
case 3:
PORTC=0×03;
break;
default:
PORTC=0xFF;
}
. . .
J. Perulangan
- For
. . .
a=1;
for (i=1; i<50; i++) {
a=a*2
PORTC=a;
};
. . .
- While
. . .
i=1;
a=1;
while (i<50) {
a=a*2;
PORTC=a;
i++;
};
. . .
- Do – While
. . .
i=1;
a=1;
do {
a=a*2;
PORTC=a;
i++;
}
while (i<50);
. . .
Referensi :
Bahasa C Untuk Mikrokontroler ATMEGA8535, M.ary heryanto, ST & Ir. Wisnu Adi P.
http://catatansaad.wordpress.com/2009/07/26/bahasa-pemrograman-c-untuk-avr/
0 komentar:
Posting Komentar