Anda di halaman 1dari 5

Instruksi-instruksi pada Codevision AVR

by Alrilla. com on 01.01


Pada postingan kali ini saya akan membahas mengenai instruksi yang umum digunakan pada
program-program mikrokontroler sederhana. Untuk lebih jelasnya mari kita pelajari bahasan
dibawah ini.

Pengembangan sebuah system menggunakan mikrokontroler AVR buatan ATMEL


menggunakan software AVR STUDIO dan Codevision AVR. AVRSTUDIO merupakan
software 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 (Integrated
Development 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 deprogram. 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
#define

ALFA
SUM(a,b)
sensor
pompa

oxff
a+b
PIN.2
PORTB.o

Komentar
Penulisan komentar untuk beberapa baris komentar sekaligus
/*
komentar
..*/
Penulisan komentar untuk satu baris saja
//komentar
1.
Program Kontrol
a.
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 for dapat
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 pernyataan relasional yang menyatakan syarat berhentinya pengulangan,
biasanya barkaitan dengan variable kontrol, nama_variable++ dan nama_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.
1. char getchar(void) : menghasilkan nilai balikan berupa karakter yang diterima dari
UART, menggunakan system polling (menerima data serial)
2. void putchar(char c): mengirim karakter c menggunakan UART, menggunakan
system polling (mengirimkan data serial)
Sebelum menggunakan fungsi ini, lakukan terlebih dahulu pengaturan konfigurasi
komunikasi serial:
1)
Inisialisasi baudrate UART
2)
Mengaktifkan transmitter UART
3)
Mengaktifkan receiver UART
Fungsi I/O yang lebih tinggi lainnya menggunakan fungsi getchar dan putchar, seperti:
1. void puts(char *str) : output, menggunakan putchar, null mengakhiri karakter string,
berlokasi di SRAM.
2. void putsf(char flash *str) : output, menggunakan putchar, null mengakhiri karakter
string, berlokasi di FLASH.
3. 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.
1. unsigned char cabs(signed char x): menghasilkan nilai absolute dari byte x
2. unsigned int abs(int x): menghasilkan nilai absolute dari bilangan integer x
3. unsigned long labs(long x): menghasilkan nilai absolute dari bilangan long integer x.
4. float fabs(float x): menghasilkan nilai absolute dari bilangan floating point x
5. signed char cmax(signed char a,signed char b) : menghasilkan nilai maksimum dari
byte a dan b.
6. 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 modul

alphanumeric LCD yang dibuat dengan chip Hitachi HD44780 atau yang serupa chip Hitachi
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. Fungsi-fungsi untuk mengakses LCD diantaranya
adalah:
1. 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.
2. void lcd_clear(void): menghapus layar LCD dan meletakkan posisi karakter pada
baris ke-0 kolom ke-0.
3. 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.
4. void lcd_putchar(char c): menampilkan karakter c pada LCD
5. void lcd_puts(char *str): menampilkan string yang disimpan pada SRAM pada LCD.
6. 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:
1. void delay_us(unsigned int n) : fungsi ini menghasilkan delay selama n -detik, n
adalah nilai konstan.
2. 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 semiconductor DS1302
Real Time Clock, 1 Wire Protocol, SPI, Power Management dapat dilihat pada manual
CodeVisionAVR, CodeVisionAVR user manual.

Anda mungkin juga menyukai