You are on page 1of 7

Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan Codevision AVR.

AVRSTUDIO

merupakansoftware khusus untuk bahasa assembly yang mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi,

dan download program ke IC mikrokontroler AVR. Sedangkan Codevision AVR merupakan software C-cross compiler, dimana program dapat ditulis dalam bahasa C, Codevision memiliki IDE (IntegratedDevelopment Environment) yang lengkap, di mana penulisan program, compile, link, pembuatan kode mesin (assembler)

dan download program ke chip AVR dapat dilakukan pada codevision, selain itu ada fasilitas terminal, yaitu untuk melakukan komunikasi serial dengan mikrokontroler yang sudah diprogram. Proses download program ke IC mikrokontroler AVR dapat

menggunakan system download secara ISP ( In System Programming ). In-System programmable Flash on-chip mengizinkan memori program untuk

diprogram ulang dalam system menggunakan hubungan serial SPI (Andrianto, 2008: 17).

Berikut ini penjelasan penggunaan program dalam bahasa C di software Codevision AVR. Preprocessor (#): Digunakan untuk memasukkan (include) text dari file lain,

mendefinisikan macro yang dapat mengurangi beban kerja pemrograman dan meningkatkan legibility source code (mudah dibaca). #define : Digunakan untuk mendefinisikan macro Contoh : #define #define #define SUM(a,b) sensor ALFA a+b PIN.2 oxff

#define Komentar

pompa

PORTB.o

Penulisan komentar untuk beberapa baris komentar sekaligus /* komentar ..*/ Penulisan komentar untuk satu baris saja //komentar

1. a.

Program Kontrol Percabangan

Perintah if dan ifelse Perintah if dan ifelse.. digunakan untuk melakukan operasi percabangan bersyarat. Sintaks penulisan if dapat ditulis sebagai berikut : if(<expression>)<statement>; Sintaks perintah if else dapat dituliskan sebagai berikut: if(<expression>)<statement1>; else <statement2>;

b.

Looping (pengulangan)

Looping adalah pengulangan satu atau beberapa perintah sampai mencapai keadaan tertentu. Ada tiga perintah looping, yaitu: for ,while , dan dowhile. Sintaks loop fordapat dituliskan sebagai berikut :

for Untuk pengulangan yang melakukan proses increment for(nama_variable = nilai_awal;syarat_loop;nama_variable ++) { statement_yang_diulang; } //untuk pengulangan yang melakukan proses decrement For(nama_varible=nilai_awal;syarat_loop;nama_variable ) { Statement_yang_diulang; }

Syarat_loop adalah pengulangan,

pernyataan

relasional yang menyatakan dengan variable

syarat berhentinya

biasanya

barkaitan

kontrol, nama_variable++

dannama_variable, menyatakan proses increment dan proses decrement pada variable kontrol. while Perintah while dapat melakukan looping apabila persyaratannya benar. Sintaks perintah while dapat dituliskan sebagai berikut : nama_varible = nilai_awal; while (syarat_loop) { Statement_yang_akan_diulang;

Nama_variable++; }

2. Library Function pada CodeVisionAVR a. Fungsi Input/Output Fungsi-fungsi input/Output berada didalam file stdio.h, pada subdirektori \INC. berikut ini beberapa fungsi I/O dasar yang disediakan pada CodeVision. char getchar(void) : menghasilkan nilai balikan berupa karakter yang diterima dari UART, menggunakan system polling (menerima data serial) void putchar(char c): mengirim karakter c menggunakan UART, menggunakansystem polling (mengirimkan data serial) Sebelum menggunakan fungsi ini, lakukan terlebih dahulu pengaturan konfigurasi komunikasi serial: 1) 2) 3) Inisialisasi baudrate UART Mengaktifkan transmitter UART Mengaktifkan receiver UART

Fungsi I/O yang lebih tinggi lainnya menggunakan fungsi getchar dan putchar, seperti: void puts(char *str) : output, menggunakan putchar, null mengakhiri karakter string,

berlokasi di SRAM. void putsf(char flash *str) : output, menggunakan putchar, null mengakhiri karakterstring, berlokasi di FLASH. void printf(char flash *fmtstr[ , arg1, arg2, ...]) : output text yang terformat, menggunakan putchar, sesuai dengan format specifiers dalam fmtstr string.

b. Fungsi Matematika Fungsi ini berada di dalam file math.h, pada subdirektori \INC. Berikut ini sebagian dari beberapa fungsi-fungsi matematika yang disediakan pada CodeVision. unsigned char cabs(signed char x): menghasilkan nilai absolute dari byte x unsigned int abs(int x): menghasilkan nilai absolute dari bilangan integer x unsigned long labs(long x): menghasilkan nilai absolute dari bilangan long integer x. float fabs(float x): menghasilkan nilai absolute dari bilangan floating point x signed char cmax(signed char a,signed char b) : menghasilkan nilai maksimum daribyte a dan b. int max(int a,int b) : menghasilkan nilai maksimum dari integer a dan b.

c. Fungsi LCD Fungsi LCD ditunjukkan untuk memudahkan interfacing antara program C dan modulalphanumeric LCD yang dibuat dengan chip Hitachi HD44780 atau yang

serupa chipHitachi HD44780. fungsi ini berada di dalam file lcd.h, pada subdirektori \INC. Header ini harus dimasukan (include) jika kita akan menggunakan fungsi-fungsi LCD. Sebelum menggunakan fungsi ini, terlebih dahulu harus diatur port mikrokontroler yang digunakan untuk komunikasi dengan modul LCD. Format LCD dalam lcd.h mendukung: 18, 212, 312, 116, 216, 220, 420, 224, dan 240 karakter. Fungsifungsi untuk mengakses LCD diantaranya adalah: unsigned char lcd_init(unsigned char lcd_columns): untuk menginisialisasi modul LCD, menghapus layar dan meletakkan posisi karakter pada baris ke-0. jumlah kolom pada LCD

harus disebutkan (misal, 16). Kursor tidak di tampakkan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain. void lcd_clear(void): menghapus layar LCD dan meletakkan posisi karakter pada baris ke0 kolom ke-0. void lcd_gotoxy(unsigned char x, unsigned char y): meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan kolom dimulai dari nol. void lcd_putchar(char c): menampilkan karakter c pada LCD void lcd_puts(char *str): menampilkan string yang disimpan pada SRAM pada LCD. void lcd_putsf(char flash *str): menampilkan string yang disimpan pada flash pada LCD.

d. Fungsi Delay Menghasilkan delay dalam program-C. Berada pada header delay.h yang harus dimasukkan (include) sebelum digunakan. Sebelum memanggil fungsi, interupsi harus dimatikan terlebih dahulu, bila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR yang digunakan pada menu Project Configur C Compiler Code Generation. Fungsi delay yang dihasilkan adalah: void delay_us(unsigned int n) : fungsi ini menghasilkan delay selama n -detik, n adalah nilai konstan. void delay_ms(unsigned int n) : fungsi ini menghasilkan delay selama n mili-detik, n adalah nilai konstan.

Kedua fungsi tersebut secara otomatis akan me-reset watchdog-timer setiap 1 mili-detik dengan mengaktifkan instruksi wdr. Fungsi fungsi lain seperti fungsi akses memori, I2C,

maxim/dallas semiconductorDS1302 Real Time Clock, 1 Wire Protocol, SPI, Power Management dapat dilihat pada manual CodeVisionAVR, CodeVisionAVR user manual.

You might also like