Pada artikel ini akan saya bahas contoh-contoh program sederhana yang akan mendeskripsikan detail pemrograman dalam Bahasa C pada mikrokontroler, mulai dari bentuk percabangan, akses ke fitur-fitur yang dimiliki oleh ATMega8535 hingga akses ke antarmuka-antarmuka yang terhubung pada mikrokontroler tersebut.
Untuk meringkas artikel maka listing program di sini hanya saya tulis bagian main programnya saja, untuk listing lengkap dapat didownload dari file yang ada di link.
1. PROGRAM PERCABANGAN


int main (void){
unsigned char data_serial;
USART_INIT(MYUBRR);
data_serial=USART_Receive();
if (data_serial==’0′){
USART_Transmit(‘O’);
USART_Transmit(‘F’);
USART_Transmit(‘F’);
}
else{
USART_Transmit(‘O’);
USART_Transmit(‘N’);
}
unsigned char tabel_data [16]={0x0D,0x0A,’t’,’o’,’m’,’b’,’o’,’l’,’ ‘,’s’,’e’,’l’,’e’,’s’,’a’,’i’};
for (int i=0;i<16;i++)
USART_Transmit(tabel_data[i]);
while(1);
}
Listing program ini dapat didownload di sini
- Percabangan if else if
Percabangan ini seperti yang ada pada flowchart di bawah adalah percabangan yang memiliki lebih dari 2 cabang dan akhirnya memiliki titik temu yaitu di bagian yang mengirim data “Tombol Selesai”

int main (void){
unsigned char data_serial;
USART_INIT(MYUBRR);
data_serial=USART_Receive();
if (data_serial==’0′){
USART_Transmit(‘O’);
USART_Transmit(‘F’);
USART_Transmit(‘F’);
}
else if (data_serial==’1′){
USART_Transmit(‘O’);
USART_Transmit(‘N’);
}
else if (data_serial==’2′)
USART_Transmit(‘?’);
else
USART_Transmit(‘*’);
unsigned char tabel_data [16]={0x0D,0x0A,’t’,’o’,’m’,’b’,’o’,’l’,’ ‘,’s’,’e’,’l’,’e’,’s’,’a’,’i’};
for (int i=0;i<16;i++)
USART_Transmit(tabel_data[i]);
while(1);
}
Listing program dapat didownload di sini
- Percabangan Switch Case
Bentuk percabangan sama dengan if else if sehingga flowchartnya juga sama, hanya perbedaannya adalah harus diakhiri dengan “break” di tiap cabangnya kecuali bagian akhir yang merupakan default cabang.
Listing Program
int main (void){
unsigned char data_serial;
USART_INIT(MYUBRR);
data_serial=USART_Receive();
switch (data_serial){
case ‘0’:{
USART_Transmit(‘O’);
USART_Transmit(‘F’);
USART_Transmit(‘F’);
break;
}
case ‘1’:{
USART_Transmit(‘O’);
USART_Transmit(‘N’);
break;
}
case ‘2’:
USART_Transmit(‘?’);
break;
default:
USART_Transmit(‘*’);
}
unsigned char tabel_data [16]={0x0D,0x0A,’t’,’o’,’m’,’b’,’o’,’l’,’ ‘,’s’,’e’,’l’,’e’,’s’,’a’,’i’};
for (int i=0;i<16;i++)
USART_Transmit(tabel_data[i]);
while(1);
}
Listing program dapat didownload di sini
- Percabangan Nested
Percabangan ini adalah merupakan percabangan dalam cabang seperti pada flowchart di bawah ini

Listing Program
int main (void){
unsigned char data_serial;
USART_INIT(MYUBRR);
data_serial=USART_Receive();
if (data_serial==’0′){
data_serial=USART_Receive();
if (data_serial==’A’){
USART_Transmit(‘O’);
USART_Transmit(‘F’);
USART_Transmit(‘F’);
USART_Transmit(‘ ‘);
USART_Transmit(‘A’);
}
else{
USART_Transmit(‘O’);
USART_Transmit(‘F’);
USART_Transmit(‘F’);
USART_Transmit(‘ ‘);
USART_Transmit(‘B’);
}
}
else{
data_serial=USART_Receive();
if (data_serial==’A’){
USART_Transmit(‘O’);
USART_Transmit(‘N’);
USART_Transmit(‘ ‘);
USART_Transmit(‘A’);
}
else{
USART_Transmit(‘O’);
USART_Transmit(‘N’);
USART_Transmit(‘ ‘);
USART_Transmit(‘B’);
}
}
unsigned char tabel_data [16]={0x0D,0x0A,’t’,’o’,’m’,’b’,’o’,’l’,’ ‘,’s’,’e’,’l’,’e’,’s’,’a’,’i’};
for (int i=0;i<16;i++)
USART_Transmit(tabel_data[i]);
while(1);
}
Listing Program dapat didownload di sini
DELTA ELECTRONIC
Paulus Andi Nalwan, ST