MIKRO KONTROLER BAHASA C DENGAN AVR
LATAR BELAKANG
Bahasa pemrograman untuk mikrokontroler AVR yang paling populer
adalah menggunakan bahasa C. Bahasa C adalah bahasa pemrograman tingkat
menengah. Selain bahasa C ada bahasa tingkat rendah seperti Assembly dan bahasa
tingkat tinggi seperti Basic dan Pascal. Semakin rendah sebuah bahasa
pemrograman maka semakin mendekati kode mesin namun sulit dimengerti oleh
manusia. Sebaliknya semakin tinggi bahasa pemrograman maka semakin mudah
dimengerti oleh manusia namun sukar untuk diaplikasikan ke mesin, dalam hal ini
chip mikrokontroler.
PEMBAHASAN
Penggunaan bahasa C dalam pemrograman mikrokontroler semakin
luas setelah munculya kompiler AVR-GC, yaitu kompiler bahasa C yang sudah
dikhususkan untuk mikrokontroler jenis AVR. GCC sendiri adalah sebuah kompiler
bahasa C universal yang biasa dipakai saat proses development software seperti
sistem operasi Linux dan aplikasi. GCC merupakan singkatan dari GNU C Compiler,
yaitu compiler bahasa C yang gratis berbasis open source.
Bahasa C dipilih karena struktur bahasanya yang tidak rumit seperti bahasa
tingkat rendah namun mudah dimengerti oleh manusia seperti bahasa tingkat
tinggi.
Struktur penulisan bahasa C cukup simpel namun dengan kustomisasi yang luas
dan cukup menjangkau dalam pemrograman mikrokontroler. Berikut ini beberapa hal
penting dalam bahasa C yang digunakan untuk pemrograman mikrokontroler.
Struktur Penulisan Kode Program Bahasa C
Dalam menulis kode program menggunakan bahasa C kita harus mengikuti
kaidah-kaidah penulisan yang benar seperti misalnya dalam program harus
terdapat main rutin program yang ditarus didalam bagian/prosedur main.
Kemudian setiap perintah bahasa C diakhiri dengan tanda titik koma (;).
Dalam bahasa C juga harus diperhatikan penulisan huruf kecil dan huruf besar
karena bahasa C membedakan keduanya, misalnya kata Waktu berbeda
dengan waktu.
Berikut ini beberapa aturan penulisan bahasa C terutama yang sering dipakai dalam pemrograman mikrokontroler AVR:
Berikut ini beberapa aturan penulisan bahasa C terutama yang sering dipakai dalam pemrograman mikrokontroler AVR:
1.
Pada program utama harus terdapat main rutin yang ditulis dengan nama main.
2.
Statemen didalam rutin, baik itu main, fungsi atau prosedur harus diawali
dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda kurung
kurawal tutup (}).
3.
Setiap statemen program baik itu perintah, deklarasi variabel atau
konstanta harus diakhiri dengan tanda titik kome (;).
4.
Komentar program diawali dengan tanda // atau ditulis diantara tanda /* dan
*/. Komentar program adalah statemen yang tidak ikut dikompile atau tidak
dikerjakan oleh mikrokontroler dan tidak terikat dengan aturan sintak yang benar.
5.
Bahasa C mendukung penggunaan preposesor seperti include, define, if ,
ifdef dan sebagainya. Setiap preposesor diawali dengan
tanda # dan tidak diakhiri dengan tanda titik
koma (;).
6.
Untuk deklarasi beberapa variabel sekaligus maka setiap variabel harus
dipisahkan dengan tanda koma (,).
7.
Setiap identifier baik itu main rutin, fungsi atau prosedur harus disertai
tanda kurung sepasang () pada akhir identifier, misalnya main(), hitung(),
display() dann sebagainya.
Dan berikut ini Simulasi program
mikrokontroler AVR yang ditulis menggunakan bahasa C:
#include <avr/io.h> //preposesor include
#include <util/delay.h> //preposesor include
//deklarasi variabel
//dipisahkan dengan koma, diakhiri dengan titik koma
uint8_t on,off;
//dipisahkan dengan koma, diakhiri dengan titik koma
uint8_t on,off;
//main rutin
int main (void)
{
DDRD = 0xFF; // Buat semua Port D menjadi output, 0xFF= 1111 1111
on = 0xFF;
off = 0;
int main (void)
{
DDRD = 0xFF; // Buat semua Port D menjadi output, 0xFF= 1111 1111
on = 0xFF;
off = 0;
while(1) //perulangan program
{
PORTD = on; // Port D high, on=0xFF=1111 1111
_delay_ms(1000); // Tunda 1 detik
PORTD = off; // Port D low, off=0=0000 0000
_delay_ms(100); // Tunda 1 detik
}
{
PORTD = on; // Port D high, on=0xFF=1111 1111
_delay_ms(1000); // Tunda 1 detik
PORTD = off; // Port D low, off=0=0000 0000
_delay_ms(100); // Tunda 1 detik
}
return 0;
}
}
Semakin rendah sebuah bahasa pemrograman maka semakin mendekati
kode mesin namun sulit dimengerti oleh manusia. Sebaliknya semakin tinggi
bahasa pemrograman maka semakin mudah dimengerti oleh manusia namun sukar untuk
diaplikasikan ke mesin, dalam hal ini chip mikrokontroler.