Modul LCD ini memiliki 16 kaki untuk berkomunikasi dengan sistem mikrokontroler yang terdiri atas 3 kaki kontrol, 8 kaki data dan 5 kaki suplai tegangan. Fungsi dari 16 kaki dari LCD M1632 ditampilkan pada Tabel III.7. LCD M1632 ada dalam 2 jenis yaitu LCD M1632 refubrish dan LCD M1632 Hitachi. Perbedaan keduanya adalah pada penggunaan pin nomor 1 dan 2, jika pada LCD M1632 refubrish pin nomor 1 diberikan tegangan 5 volt dan nomor 2 diberikan tegangan 0 volt, maka pada LCD M1632 Hitachi penggunaan kedua pin tersebut adalah kebalikannya.
Dalam penggunaannya pengiriman data baik karakter maupun perintah terdapat dua metode yang dapat digunakan yaitu metode 4-bit dan 8-bit. Pada metode 8-bit pengiriman data dilakukan satu kali sedangkan pada metode 4-bit pengiriman data dilakukan dua kali. Untuk mengirim atau menerima data terlebih dahulu diatur pin RS dan RW terlebuh dahulu sesuai keperluan, kemudian setelah itu memberikan sinyal tinggi pada kaki E. Kemudian data dikirim dan sinyal pada kaki E dikembalikan ke sinyal rendah.
Keterangan:
X = dont care (tidak digunakan)
ID = kursor geser kanan (1), kursor geser kiri (0)
S = display bergeser (0), display tidak bergeser (1)
DS = display mati (0), display nyala (1)
C = Kursor on (1), off (0)
B = Blinking on (1), off (0)
SC = Geser display (1), geser kursor (0)
RL = Geser kiri (1), geser kanan (0)
DL = Antarmuka 8-bit (1), 4-bit (0)
N = Jumlah baris yang digunakan 1 baris (0), 2 baris (1)
F = Ukuran huruf 5x10 (1), 5x7 (0)
BF = Busy Flag, bernilai 1 jika LCD sedang melakukan proses.
A = Alamat
D = Data
-->Sebelum menggunakan modul LCD hal yang pertama kali harus dilakukan adalah melakukan inisialisasi terhadap mikrokontroler HD 44780 terlebih dahulu. Inisialisasi diperlukan untuk menentukan metode antarmuka, jumlah baris dan ukuran karakter penting dalam pengoperasian modul LCD. Setelah diinisialisasikan maka modul LCD baru bisa digunakan. Proses inisialisasi dari LCD dijelaskan dalam diagram alir yang digambarkan pada Gambar berikut.
X = dont care (tidak digunakan)
ID = kursor geser kanan (1), kursor geser kiri (0)
S = display bergeser (0), display tidak bergeser (1)
DS = display mati (0), display nyala (1)
C = Kursor on (1), off (0)
B = Blinking on (1), off (0)
SC = Geser display (1), geser kursor (0)
RL = Geser kiri (1), geser kanan (0)
DL = Antarmuka 8-bit (1), 4-bit (0)
N = Jumlah baris yang digunakan 1 baris (0), 2 baris (1)
F = Ukuran huruf 5x10 (1), 5x7 (0)
BF = Busy Flag, bernilai 1 jika LCD sedang melakukan proses.
A = Alamat
D = Data
-->Sebelum menggunakan modul LCD hal yang pertama kali harus dilakukan adalah melakukan inisialisasi terhadap mikrokontroler HD 44780 terlebih dahulu. Inisialisasi diperlukan untuk menentukan metode antarmuka, jumlah baris dan ukuran karakter penting dalam pengoperasian modul LCD. Setelah diinisialisasikan maka modul LCD baru bisa digunakan. Proses inisialisasi dari LCD dijelaskan dalam diagram alir yang digambarkan pada Gambar berikut.
Bagian program untuk mengatur LCD meliputi inisialisasi LCD dan bagian untuk menulis karakter. Sebelum menggunakan LCD pertama kali harus dilakukan inisialisasi untuk mengatur lebar jalur transfer data dan pengaturan tampilan yang dipilih. Setelah dilakukan inisialisasi maka penulisan karakter baru dapat dilakukan.
...
rcall intLCD
...
ldi temp,0x01 ;hapus display
rcall lcd_cmd
ldi ZL, low(2*opening11)
ldi ZH, high(2*opening11)
ldi temp,0x02 ;set kursor baris 1 kolom 1
rcall lcd_cmd
rcall lcd_display
...
intLCD:
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
rcall delay2
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
rcall delay3
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
ldi temp,0x38 ;fungsi
rcall lcd_cmd
ldi temp,0x08 ;display off
rcall lcd_cmd
ldi temp,0x01 ;hapus display
rcall lcd_cmd
ldi temp,0x06 ;entry mode
rcall lcd_cmd
ldi temp,0x0C ;display on
rcall lcd_cmd
ret
lcd_data:
cbi portd,RW
sbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
rcall delay3
ret
lcd_cmd:
cbi portd,RW
cbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
rcall delay3
ret
lcd_cmd2:
cbi portd,RW
cbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
ret
lcd_display:
clr r1
loop_display:
lpm
mov temp, r0
cpi temp, 0
brne lcd_send
ret
lcd_send:
rcall lcd_data
adiw ZL, 1
rjmp loop_display
opening11:
.db "Hello World ",0
(franz_aditya)
...
rcall intLCD
...
ldi temp,0x01 ;hapus display
rcall lcd_cmd
ldi ZL, low(2*opening11)
ldi ZH, high(2*opening11)
ldi temp,0x02 ;set kursor baris 1 kolom 1
rcall lcd_cmd
rcall lcd_display
...
intLCD:
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
rcall delay2
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
rcall delay3
ldi temp,0x30 ;inisialisasi
rcall lcd_cmd2
ldi temp,0x38 ;fungsi
rcall lcd_cmd
ldi temp,0x08 ;display off
rcall lcd_cmd
ldi temp,0x01 ;hapus display
rcall lcd_cmd
ldi temp,0x06 ;entry mode
rcall lcd_cmd
ldi temp,0x0C ;display on
rcall lcd_cmd
ret
lcd_data:
cbi portd,RW
sbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
rcall delay3
ret
lcd_cmd:
cbi portd,RW
cbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
rcall delay3
ret
lcd_cmd2:
cbi portd,RW
cbi portd,RS
out portc,temp
sbi portd,E
rcall delay3
cbi portd,E
ret
lcd_display:
clr r1
loop_display:
lpm
mov temp, r0
cpi temp, 0
brne lcd_send
ret
lcd_send:
rcall lcd_data
adiw ZL, 1
rjmp loop_display
opening11:
.db "Hello World ",0
(franz_aditya)
Comments
Post a Comment