Anda di halaman 1dari 9

PEMROGRAMAN BAHASA C UNTUK MIKROKONTROLER AVR

Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk


mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan
programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat
3dipelajari sebagai berikut.

Struktur Penulisan Program
Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu header,
deklarasi konstanta global dan atau variable, fungsi dan atau prosedur (dapat di bawah
program utama), dan program utama.

STRUKTUR PENULISAN CONTOH

/* HEADER untuk memanggil library yang akan
digunakan */
#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional

#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional

/* Deklarasi konstanta dan atau variabel global
*/
[global variables] // Opsional

/* Deklarasi fungsi dan atau prosedur */
[functions] // Opsional



/* Program utama */


#include <mega8535.h>
#include <stdio.h>

unsigned char dt, xx;
char buf[33];

unsigned char lampu (unsigned
char bitn)
{
PORTA=bitn & 0x3C;
}

void main (void);
{
char data;

PORTA=0x00;
void main(void)
{
/* Deklarasi konstanta dan atau variabel lokal */
[Deklarasi local variable/constant]
[Isi Program Utama]
}

DDRA=0xF0;
While (1)
{

};
}

Tipe Data
Tabel 3.1 memperlihatkan tipe-tipe variable data yang dapat digunakan di compiler
Code Vision AVR.
Tabel 3.1 Tipe Data
Tipe Size
(bit)
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 4294967292
signed long int 32 -2147483648 to
2147483647
float 32 1.175e-38 to 3.402e38
double 32 1.175e-38 to 3.402e38



Deklarasi Variabel dan Konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan:
Global variabel/konstanta yang dapat diakses di seluruh bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat
dideklarasikannya.

Identifikasi label, variable dan fungsi dapat berupa huruf (AZ, az) danangka (09),
juga karakter underscore (_). Meskipun begitu identifikasi hanya bisa dimulai dengan
huruf atau karakter underscore. Yang lebih penting lagi, identifikasi ini case sensitive,
yaitu huruf besar dan huruf kecil berbeda. Misalnya, variable1 tidak sama
dengan Variable1. Identifikasi bisa memuat sebanyak 32 karakter.
Penulisan konstanta adalah sebagai berikut:
Integer atau long integer dapat ditulis dengan format decimal (contoh 1234),
biner dengan awalan 0b (contoh 0b101001), heksadesimal dengan awalan 0x (contoh
0xff) atau octal dengan awalan 0 (contoh 0777).
Unsigned integer ditulis dengan diakhiri U (contoh 10000U)
Long integer ditulis dengan diakhiri L (contoh 99L)
Unsigned long integer ditulis dengan diakhiri UL (contoh 99UL)
Floating point ditulis dengan diakhiri F (contoh 1.234F)
Karakter harus dituliskan dalam tanda kutip (contoh a)
String harus dalam tanda kutip dua (contoh Saya Belajar C).

Komentar
Komentar diawali dengan tanda /* dan diakhiri dengan */
Contoh:
/* Ini komentar */
/* Ini komentar
Multi baris */
Sedangkan komentar satu baris bias dengan tanda //
Contoh:
// Ini juga komentar

Reserved Keywords
Berikut ini adalah daftar kata baku yang tidak bias dipakai (reserved keywords) untuk
label, identifikasi atau variabel.
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

Percabangan
If - then
Struktur penulisan Contoh
if (kondisi) {
// pernyataan
};

if (a<0x50) {
PORTC=0x55;
}


if then else
Struktur penulisan Contoh
if (kondisi) { If (a<0x50) {
// pernyataan a
}
Else {
// pernyataan b
};

PORTC=0x55;
}
Else {
PORTC=0xAA;
};


Switch case
Struktur penulisan Contoh

Switch (ekspresi) {
Case konstanta1:
Pernyataan1
Break;
Case konstanta2:
Pernyataan2
Break;

Case konstantaN:
pernyataanN
break;
}


switch (a) {
case 1:
PORTC=0x01;
break;
case 2:
PORTC=0x02;
break;
case 3:
PORTC=0x04;
break;
}



Switch case default
Struktur penulisan Contoh

Switch (ekspresi) {
Case konstanta1:
Pernyataan1
Break;
Case konstanta2:
Pernyataan2

switch (a) {
case 1:
PORTC=0x01;
break;
case 2:
PORTC=0x02;
Break;

Case konstantaN:
pernyataanN
break;
default:
pernyataan-pernyataan;
}


break;
case 3:
PORTC=0x04;
break;
default:
PORTC=0xFF;
}




Perulangan
For

For (mulai; kondisi; penambahan atau
pengurangan) {
Pernyataan-pernyataan;
};


A=1;
For (i=1; i<50; i++) {
A=a*2;
PORTC=a;;
};




While
While (kondisi) {
Pernyataan-pernyataan;
}


I=1;
A=1;
While (i<50) {
A=a*2;
PORTc=a;;
I++;
};



Do while
Do {
Pernyataan-pernyataan;
}
While (kondisi);


I=1;
A=1;
Do {
A=a*2;
PORTc=a;;
I++;
}
While (i<50);



Operasi logika dan biner
Logika
AND :&&
NOT : !
OR : ||
Biner
AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~

Operasi relasional (perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=

Operasi aritmatika
+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai
di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30
a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30x5 = 150.
a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 = 33.
a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.
a-- ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.


Memasukkan bahasa Assembly (in line assembly)
Dalam pemrograman dengan bahasa C, bahasa assembly masih dapat dimasukkan ke
dalam program C. Struktur penulisannya pun juga mudah, yaitu:


#asm // dimulai dengan #asm
nop // blok bahasa assembly
nop
#endasm // diakhiri dengan #endasm


Atau jika hanya beberapa instruksi maka bias dituliskan dengan;

#asm(nop`nop`nop)


Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ }
]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris.
Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi
disebut juga comments / komentar.

Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu

Function
Function adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan : [tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2])
{
[statement] ;
}

Anda mungkin juga menyukai