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++;
}
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.