2.8 Bahasa Pemograman C
Struktur bahasa pemograman C Andrian, 2013:
1. Header File Header File adalah berkas yang berisi prototype fungsi, definisi konstanta
dan definisi variable. Fungsi adalah kumpulan kode C yang diberi nama dan
ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan. Contoh : stdio.h, math.h, conio.h
2. Preprosesor Directive Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau
berkas-berkas fungsi maupun pendefinisian konstanta. Contoh: include stdio.h, include phi 3.14
3. Void Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian
return. 4. Main
Fungsi main adalah fungsi yang pertama kali dijalankan ketika program dieksekusi tanpa fungsi main suatu program tidak d apat dieksekusi namun dapat
dikompilasi. 5. Statement
Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement
diakhiri dengan titik-koma ;
2.9 Code Vision AVR
Code Vision AVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga
Universitas Sumatera Utara
komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. Berdasarkan spesifikasi yang
dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C
standar ANSI seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya. Tetapi walaupun demikian, dibandingkan
bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C
tersebut ditanamkan embedded. Khusus untuk library fungsi, disamping library standar seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori
dan sebagainya, CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat
luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi
I2C, IC RTC Real time Clock, sensor suhu LM75, SPI Serial Peripheral Interface dan lain sebagainya. Untuk memudahkan pengembangan program
aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis
Windows, Code Vision AVR ini telah mengintegrasikan perangkat lunak downloader in system programmer yang dapat digunakan untuk mentransfer
kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram.
Code Vision AVR 1.2.4.9 adalah suatu kompiler berbasis bahasa C, yang terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR Alf and
Vegard ‟s Risc processor terhadap mikrokontroler dengan sistem berbasis
window. Code Vision AVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa
keunggulan tambahan untuk memenuhi keunggulan spesifikasi dari Code Vision AVR yaitu hasil kompilasi studio debugger dari ATMEL.
Integrated Development Environtment IDE telah diadaptasikan pada chip AVR yaitu In-System Programmer software, memungkinkan programmer
untuk mentransfer program ke chip mikrokontroler secara otomatis setelah proses
Universitas Sumatera Utara
assemblykompilasi berhasil. In-System Programmer software didesign untuk bekerja dan dapat berjalan dengan perangkat lunak lain seperti AVR Dragon,
AVRISP, Atmel STK500, dan lain sebagainya. Disamping library standar C, Code Vision AVR C compiler memiliki
librari lain untuk:
Modul LCD Alpanumerik
Delays
Protokol semikonduktor MaximDallas
Dan lainnya Code Vision AVR juga memiliki Code Wizard AVR sebagaki generator program
otomatis, yang memungkinkan kita untuk menulis, segala bentuk pengaturan Chip dalam
waktu singkat,
dan semua
kode yang
dibutuhkan untuk
mengimplementasikan fungsi-fungsi seperti:
1. Pengaturan akses External Memory
Untuk chip-chip AVR yang memungkinkan koneksi memori eksternal SRAM, dapat juga mengatur ukuran memori dan wait state tahap tunggu dari
memori ketika memori tersebut diakses.
2. Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat membuat kode secara otomatis yang dapat mengidentifikasi kondisi yang menyebabkan chip di reset.
3. Inisialisasi port inputoutput
Pengaturan port-port yang kan dijadikan gerbang masukan dan keluaran dapat secara otomatis digenerate codenya. Yang kita lakukan hanya memilih port-
port yang akan digunakan sebagai input atau output.
4. Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan digunakan untuk menginterupsi program utama
5. Inisialisasi timerscounters
Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya digunakan pada interupsi.
Universitas Sumatera Utara
6. Inisialisasi timer watchdog
Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya digunakan pada interupsi, sehingga interupsi akan dilayani oleh suatu fungsi
wdt_timeout_isr.
7. Inisialisasi UARTUSART dan komunuikasi serial
Pengaturan komunikasi serial sebagai penerima atau pengirim data.
8. Inisialisasi komparasi analog
Pengaturan yang berkaitan dengan masukan data yang digunakan dalam aplikasi yang membutuhkan komparasi pada ADC nya.
9. Inisialisasi ADC
Pengaturan ADCAnalog-Digital Converter yang berfungsi untuk merubah format analog menjadi format digital untuk diolah lebih lanjut.
10. Inisialisasi antarmuka SPI
Pengaturan chip yang berkaitan dengan Clock rate, Clock Phase, dan lainnya.
11. Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara register yang terdapat pada chip AVR.
12. Inisialisasi antarmuka CAN
Pengaturan chip yang lebih kompleks, yang dapat mengatur interupsi, transmisi data, timers, dan lainnya.
13. Inisialisasi sensor temperatur, thermometer, dan lainnya
Pengaturan yang berhubungan dengan sensor temperatur one wire bus, memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR.
14. Inisialisasi one wire bus
Pengaturan yang berhubungan dengan sensor temperatur yang memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR. Seperti MaximDallas
Semiconductor.
15. Inisialisasi modul LCD
Pengaturan port-port yang kan digunakan sebagai penghubung dengan LCD alpha numerik.
Universitas Sumatera Utara
Contoh cara kerja sebelum melakukan pemograman di AVR, dimana contoh disini adalah contoh pengaturan program agar mikrokontroler dapat
berkomunikasi dengan komputer: a.
Memilih project baru dan melakukan penyetingan komponen yang digunakan pada board.
b. Pengaturan ICChip, pada chip yang kita harus dilakukan adalah IC
apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan Clock 16 MHz. Clock ini harus di atur dengan ukuran 16 MHz,
karena pada komponen oksilator yang digunakan sebesar 16 MHz. c.
Pengaturan ADC, pada ADC ini ada beberapa pilihan yang harus dipilih. diantaranya ADC Enable di check listv, Use 8 bit di
check listv, high speed di check list v dan Volt Ref dipilih „AVCC PIN‟. AVCC PIN berguna sebagai referensi tegangan pada
ADC untuk nilainya sebesar 5 volt. d.
Pengaturan USART, usart ini yang nantinya menghubungkan rangkaian mikrokontroler dengan PC komputer. Langkah-
langkah yang dilakukan dengan adanya pilihan Receiver di check listv dan Transmitter di check listv. Pengaturan receiver
berfungsi apakah serial itu sebagai penerima data, sedangkan transmitter berfungsi serial bisa digunakan sebagai pengiriman
data. Untuk lebih jelas tampilan pengaturan yang disediakan oleh AVR dapat
dilihat pada gambar dibawah ini :
Gambar 2.9 Form Pegaturan Code Vision AVR
Universitas Sumatera Utara
Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membentuk sebuah instruksi layaknya perintah program ke ICChip, adapula
perintah program yang kita ketik sendiri. Selain itu, Code Vision AVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau Code
Wizard AVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program template, dan juga memberi kemudahan bagi programmer
dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat
lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela Code Wizard AVR selesai dilakukan. Secara
teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer seperti Visual C,
Borland Delphi, dan sebagainya. Disamping versi yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang dapat
didownload dari internet secara gratis. Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu tidak semua fungsi library yang
tersedia dapat dipanggil secara bebas. Seperti halnya belajar pemrograman komputer, agar mendapatkan pemahaman yang kuat dalam pemrograman
microcontroller AVR, anda sebaiknya mencoba langsung membuat aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak
Code vision AVR versi demo pada dasarnya adalah sarana yang cocok dan telah cukup memenuhi kebutuhan minimal anda. Gambar 2.15 berikut memperlihatkan
diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR dengan Code vision AVR yang dapat anda lakukan :
Gambar 2.10 Alur pemrograman microcontroller AVR
Universitas Sumatera Utara
Seperti terlihat pada gambar 2.10, Code vision AVR pada dasarnya telah mengintegrasikan
komponen-komponen penting
dalam pemrograman
microcontroller AVR: Editor,Compiler C, assembler dan ISP In System Programmer. Khusus dengan ISP, ada beberapa jenis perangkat keras
programmer dongle berikut papan pengembangnya yang telah didukung oleh perangkat lunak Code vision AVR ini, salah satu diantaranya adalah Kanda
System STK 200300 produk Perusahaan Kanda yang terhubung pada saluran antarmuka port Paralel Komputer.
2.10 Mikrokontroler AVR Dan Bahasa C