Pemrograman Mikrokontroler AVR

Dalam pemrograman suatu mikrokontroler terdapat tiga tingkatan bahasa pemrograman, yaitu :

· Bahasa Mesin

· Assembly

· Bahasa Tingkat Tinggi

Bahasa mesin (machine language/machine code) adalah bahasa yang dipahami oleh komputer. Kode yang terdapat pada bahasa ini berupa kode bilangan biner yang dapat diproses oleh mikroprosesor sehingga sulit dipahami oleh manusia. Bahasa mesin umumnya bersifat spesifik, yaitu tidak lintas jenis mikroprosesor sehingga suatu jenis mikroprosesor memiliki bahasa pemrograman yang berbeda dengan jenis mikroprosesor lainnya. File bahasa mesin memiliki ekstensi .hex, karena untuk kepentingan manusia yang memprogram kode biner dikonversikan menjadi kode bilangan heksadesimal.

Bahasa Assembly terdiri dari instruksi berupa representasi mnemonic dari instruksi berupa kode bilangan biner dari bahasa mesin. Umumnya mnemonic berupa singkatan tiga atau empat huruf dari kata yang mewakili suatu instruksi. Contohnya instruksi Assembly adalah sebagai berikut :

· SUB adalah kode Assembly untuk instruksi substract, yaitu mengurangkan suatu angka dari angka lain.

· CBI adalah kode Assembly untuk instruksi Clear Bit I/O, yaitu memberi logika nol pada suatu pin I/O digital.

Instruksi pada Bahasa Assembly diterjemahkan menjadi bahasa mesin oleh perangkat lunak Assembler. Seperti juga bahasa mesin bahasa Assembly juga spesifik untuk suatu jenis mikroprosesor tertentu. Penjelasan lebih lanjut dari bahasa Assembly dapat dibaca pada tautan berikut :

· http://proton.ucting.udg.mx/tutorial/AVR/

· http://www.atmel.com/images/doc0856.pdf (Instruction Set Nomenclature untuk AVR 8 bit).

Bahasa pemrograman tingkat tinggi (high level programming language) memiliki sintaks yang lebih mendekati bahasa manusia. Hal ini menyebabkan bahasa tingkat tinggi lebih mudah untuk dipelajari. Meski demikian bahasa tingkat tinggi umumnya menghasilkan ukuran kode yang lebih besar dibandingkan bahasa Assembly. Bahasa tingkat tinggi memerlukan perangkat lunak kompiler (compiler) untuk menerjemahkan kode menjadi bahasa mesin.

Berikut ini adalah beberapa contoh perangkat lunak pemrogramanan untuk AVR :

· Assembly

o AVR Studio (http://www.atmel.com/microsite/atmel_studio6/) – dapat dipergunakan bebas, IDE

· C

o CVAVR (http://www.hpinfotech.com) – berbayar, terdapat trial version maksimal, dapat mengkompile 4kbyte kode program, IDE

o SDCC (http://sdcc.sourceforge.net) – open source

o WinAVR (winavr.sourceforge.net) – open source

o Arduino (http://www.arduino.cc) – open source, IDE

o AVR GCC (http://gcc.gnu.org/) – open source, berbasis teks

· Basic

o Bascom-AVR (www.mcse.com) – berbayar, terdapat trial version maksimal, dapat mengkompile 4kbyte kode program, IDE

o MikroBasic (http://www.mikroe.com/mikrobasic/avr/) – berbayar, IDE

Pada kuliah ini akan dipelajari bahasa pemrograman berbasis C dengan alasan sebagai berikut :

· Lebih mudah dan lebih cepat dipelajari dibandingkan Bahasa Assembly

· Mendukung bahasa mesin sehingga dapat digunakan untuk mengakses register

· Telah tersedia berbagai library yang siap digunakan

· Dapat dikonversikan ke Assembly secara efisien.

· Dapat digunakan untuk berbagai jenis mikrokontroler dengan sedikit modifikasi

· Terdapat beberapa perangkat lunak berbasis C yang bebas digunakan

Pemrograman mikrokontroler dilakukan dalam beberapa langkah seperti tertera pada Gambar 1. Langkah pertama adalah penulisan kode program menggunakan perangkat lunak text editor yang menghasilkan file .asm untuk Assembly, .c untuk C, dan .bas untuk Basic. Langkah berikutnya adalah proses kompilasi program menggunakan perangkat lunak compiler yang menghasilkan file .hex yang berisi kode bahasa mesin. Sebelum dikompilasi file sumber diperiksa sintaksnya terlebih dahulu oleh preangkat lunak debugger. File .hex inilah yang dimasukkan ke mikrokontroler menggunakan perangkat lunak programmer. Saat proses pemasukan program ini mikrokontroler dipasang pada rangkaian downloader dan dihubungkan dengan PC melalui perangkat keras programmer. Setelah diprogram mikrokontroler menjalankan fungsinya sebagai kontroler/pengendali pada rangkaian sistem minimum (Sismin) yang merupakan rangkaian yang berisi beberapa komponen tambahan pendukung mikrokontroler.Saat ini tidak diperlukan rangkaian downloader khusus karena AVR memiliki fasilitas ISP (In System Programming) sehingga AVR dapat diprogram langsung pada rangkaian kerjanya menggunakan programmer. Beberapa perangkat lunak pemrograman AVR merupakan IDE (Integrated Development Environment). IDE adalah suatu perangkat lunak pemrograman yang memuat seluruh/sebagian besar fasilitas untuk memprogram mikrokontroler, seperti text editor, debugger, compiler, dan downloader, sehingga tidak diperlukan lagi perangkat lunak lainnya. beberapa IDE bahkan juga memiliki fasilitas simulator dan komunikasi serial.

Gambar 1. Tahapan Pemrograman Mikrokontroler

Note : Tulisan ini adalah bagian dari materi kuliah Sistem Mikrokontroler Prodi Teknik Elektro UII

Leave a Reply

*