Bahasa Pemograman C Code Vision AVR

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