a. DDRAM
DDRAM merupakan memori tempat karakter yang ditampilkan berada. Contohnya karakter ‘A’ atau 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan kolom pertama
dari LCD. Apabila karakter tersebut di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom pertama darai LCD.
b. CGRAM
CGRAM merupakan memori untuk menggambarkan pola seluruh karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori akan hilang saat power
supplay tidak aktif sehingga pola karakter akan hilang.
c. CGROM
Adalah memori untuk menggambarkan pola sebuah karakter dan pola tersebut ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat menubah lagi. Oleh karena
ROM bersifat permanen, pola karakter tersebut akan hilang walaupun power supplay tidak aktif.
2.3 Dasar Pemrograman Atmega 8535 dengan Bahasa C
2.3.1 Pendahuluan
C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah bahasa yang berorientasi pada mesin dan bahasa tingkat tinggi bahasa yang
berorientasi pada manusia. Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada
berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok.
Universitas Sumatera Utara
Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program
lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI American National Standar Institut yang dijadikan acuan oleh para pembuat kompiler.
2.3.2 Bahasa Pemograman Mikrokontroler
Pengembangan sebuah sistem menggunakan mikrokontroler AVR buatan ATMEL menggunakan software AVR STUDIO dan CodeVisionAVR. AVR STUDIO merupakan
software yang digunakan untuk bahasa assembly yang mempunyai fungsi yang sangat lengkap, yaitu digunakan untuk menulis program, kompilasi, simulasi dan download program
ke IC mikrokontroler AVR. Sedangkan CodeVisionAVR merupakan software C-cross Compiler, dimana program dapat ditulis dalam bahasa C, CodeVision memiliki IDE
Integrated development Environment yang lengkap, dimana penulisan program, compile, link, pembuatan kode mesin assembler dan download program ke chip AVR dapat
dilakukan dengan CodeVision, selain itu ada fasilitas terminal, yaitu melakukan komunikasi serial dengan mikrokontroler yang sudah di program. Proses download program ke IC
mikrokontroler AVR dapat menggunakan System programmable Flash on-Chip mengizinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
2.3.3 Pengenal pada bahasa C
Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus. Pemberian
pengenal pada program harus memenuhi syarat-syarat di bawah ini: 1.
Karakter pertama tidak menggunakan angka; 2.
Karakter kedua berupa huruf, angka, garis bawah,; 3.
Tidak menggunakan spasi; 4.
Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda; 5.
Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator dari bahasa C.
Universitas Sumatera Utara
Contoh menggunakan pengenal yang diperbolehkan: 1.
Nama 2.
_nama 3.
Nama2 4.
Nama_pengenal Contoh penggunaan pengenal yang tidak diperbolehkan:
1. 2nama
2. Nama+2
3. Nama pengenal
2.3.4 Tipe Data
Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan signed
menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini,
Universitas Sumatera Utara
Tabel 2.1 Tipe Data Pemodifikasi Tipe
Persamaan Jangkauan Nilai
Signed char Char
-128 sd 127 Signed int
Int -32.768 sd 32.767
Signed short int Short, signed short
-32.768 sd 32.767 Signed long int
Long, long int, signed long -2.147.483.648 sd
2.147.483.647 Unsigned char
Tidak ada 0 sd 255
Unsigned int Unsigned
0 sd 65.535 Unsigned short int
Unsigned short 0 sd 65.535
Unsigned long int Unsigned long
0 sd 4.294.967.295
Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil program,
include mega.8535 include delay.h
Void main void {
int a, b; pengenal unsigned
d, e;
a = 50; b = 40;
d = 50; e = 40;
PORTC = 0x00; DDRC = 0Xff; set PORTC sebagai output
PORTB = 0x00; DDRB = 0Xff; set PORTB sebagai output
While1 {
PORTB = a – b; PORTC = d – e;
delay_ms100; };
}
Universitas Sumatera Utara
Program di atas akan memberikan data di PORTB = 10 desimal sedangkan PORTC = -10 desimal karena PORT mikrokontroler tidak dapat mengeluarkan nilai negatif maka
PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut disimpan dalam memori.
Pada program di atas terdapat tulisan set PORTB sebagai output yang berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program. Ada dua
cara penulisan komentar pada pemrograman bahasa C, yaitu dengan mengawali komentar dengan tanda “ “ untuk komentar yang hanya satu baris dan mengawali komentar dengan
tanda “ “ dan mengakhiri komentar dengan tanda “ “. Contoh:
ini adalah komentar ini adalah komentar
Yang lebih panjang Dan lebih panjang lagi
2.3.5 Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ ] untuk satu baris. Lebih
dari 1 baris gunakan pasangan [ ] dan [ ]. Statement yang tidak dieksekusi disebut juga comments komentar.
2.3.6 Fungsi
Function adalah bagian program yang dapat dipanggil oleh program utama. Penulisan :
[tipe data hasil] [nama function][tipe data input 1],[tipe data input 2] {
[statement] ; }
Universitas Sumatera Utara
2.3.7 Pernyataan berkondisi dan pengulangan
a. Pernyataan if