1. PIN DESCRIPTION
Berikut keterangan Pin-pinnya.
Pin 1 -> VSS -> GND
Pin 2 -> VCC -> +5V
Pin 3 -> VEE -> Untuk Seting Kontras
Pin 4 -> RS -> 0 = Intruksi Input, 1 = Data Input
Pin 5 -> R/W -> 0 = Write ke LCD, 1 = Read dari LCD
Pin 6 -> EN -> 0 = enabel signal, signal dieksekusi ketika dari "1" ke "0" (edge)
Pin 7 - 14 -> D0 - D7 -> Data bus LINE
Pin 15 -> LED A -> +5V
Pin 16 -> LED K -> GND
E. PERINTAH-PERINTAH YANG PERLU DIKUASAI
Pin 1 -> VSS -> GND
Pin 2 -> VCC -> +5V
Pin 3 -> VEE -> Untuk Seting Kontras
Pin 4 -> RS -> 0 = Intruksi Input, 1 = Data Input
Pin 5 -> R/W -> 0 = Write ke LCD, 1 = Read dari LCD
Pin 6 -> EN -> 0 = enabel signal, signal dieksekusi ketika dari "1" ke "0" (edge)
Pin 7 - 14 -> D0 - D7 -> Data bus LINE
Pin 15 -> LED A -> +5V
Pin 16 -> LED K -> GND
B. MEMORY DI DALAM LCD
Dalam seri ini, dalam LCD terdapat DDRAM dan CGROM.
DDRAM (Display Data RAM), ram ini adalah ram yang menyimpan data yang ditampilkan di display. LMB162A mempunyai dua line LCD. Berikut maping dari display LCD terhadap DDRAM :
DDRAM - Display
00 00
01 01
dst dst
DDRAM memiliki 80 x bits, atau 80 karakter mulai dari 00H - 67H. Display LCD line 1, hanya menampilkan 16 baris, maka yang ditampilkan dari DDRAM, adalah alamat 00H - 0FH. Sedangkan line kedua display LCD akan menampilkan mulai dari alamat 40H - 4FH. Data yang tersimpan didalam DDRAM yang tidak ditampilkan tetap ada, tetapi hanya saja tidak kelihatan.
DDRAM (Display Data RAM), ram ini adalah ram yang menyimpan data yang ditampilkan di display. LMB162A mempunyai dua line LCD. Berikut maping dari display LCD terhadap DDRAM :
DDRAM - Display
00 00
01 01
dst dst
DDRAM memiliki 80 x bits, atau 80 karakter mulai dari 00H - 67H. Display LCD line 1, hanya menampilkan 16 baris, maka yang ditampilkan dari DDRAM, adalah alamat 00H - 0FH. Sedangkan line kedua display LCD akan menampilkan mulai dari alamat 40H - 4FH. Data yang tersimpan didalam DDRAM yang tidak ditampilkan tetap ada, tetapi hanya saja tidak kelihatan.
CGROM (Chararcter Generator ROM), adalah data yang berada di dalam LCD, yang berfungsi dengan kode tertentu (ascii) akan menampilkan data tertentu. Misalnya perintah menampilkan huruf "A", maka kita perlu memberi perintah tertentu. Dimana perintah tersebut berpatokan pada data di dalam CGROM ini.
C. CARA BERKOMUNIKASI DENGAN LCD
C. CARA BERKOMUNIKASI DENGAN LCD
Untuk mengatur cara berkomunikasi dengan LCD maka ada 3 pin penting yang dipakai yaitu RS, R/W, dan EN. Pin RS dipakai untuk menentukan apakah perintah yang datang bertipe seting atau menampilkan data ke display. Pin R/W menentukan apakah kita membaca atau menulis kepada LCD. Dan pin E (enable) dipakai untuk mengeksukusi perintah. Dalam mengeksekusi perintah maka perintah dieksekusi saat dari high ke low (edge). Karena bertujuan hanya untuk dapat menampilkan data ke display maka pin R/W (pin no 5) di hubungkan ke ground. Berikut perintah dasar dalam penulisan data ke LCD
- berikan data ke Data Bus
- berikan signal (0 = Intruksi Input, 1 = Data Input) ke RS
- buat E bernilai high kemudian buat E bernilai low
D. Sistem 8 bit vs 4 bit
dalam tutorial ini akan memakai sistem 8 bit sebagai dasar. Delapan bit maksudnya adalah dalam memberi perintah akan memakai akses secara 8 bit, artinya data akan dikiri secara 8 bit. sedangkan sistem 4 bit dimaksudkan untuk menghemat pin dari microcontroller yang dipakai. Dimana data 8 bit akan dikirim secara 4 bit secara 2 kali jalan. Sistem 4 bit akan diterangkan lain kali (males kalo kepanjangan).
- berikan data ke Data Bus
- berikan signal (0 = Intruksi Input, 1 = Data Input) ke RS
- buat E bernilai high kemudian buat E bernilai low
D. Sistem 8 bit vs 4 bit
dalam tutorial ini akan memakai sistem 8 bit sebagai dasar. Delapan bit maksudnya adalah dalam memberi perintah akan memakai akses secara 8 bit, artinya data akan dikiri secara 8 bit. sedangkan sistem 4 bit dimaksudkan untuk menghemat pin dari microcontroller yang dipakai. Dimana data 8 bit akan dikirim secara 4 bit secara 2 kali jalan. Sistem 4 bit akan diterangkan lain kali (males kalo kepanjangan).
E. PERINTAH-PERINTAH YANG PERLU DIKUASAI
Pada dasarnya pemrograman LCD seri ini, mempunyai dua perintah.
1. Perintah Seting LCD (RS bernilai 0)
Perintah Seting LCD, dipakai untuk menentukan cara LCD bekerja. Beberapa perintah yang sering dipakai
dalam tutorial ini
- 38H - 8 bit, 2 line, 5x7
- 06H - Entry mode Increment, maksudnya data yang dimaksukan kedalam DDRAM akan terisi dari 00H kemudian 01H, 02H, dst.
- 01H - Clear data dalam DDRAM dan Display dan posisi penulisan akan dimulai dari 00H (DDRAM).
- 38H - 8 bit, 2 line, 5x7
- 06H - Entry mode Increment, maksudnya data yang dimaksukan kedalam DDRAM akan terisi dari 00H kemudian 01H, 02H, dst.
- 01H - Clear data dalam DDRAM dan Display dan posisi penulisan akan dimulai dari 00H (DDRAM).
2. Perintah untuk mengisi RAM display (RS bernilai 1)
Perintah ini dipakai untuk menampilkan data pada Display LCD. Untuk keterangan lebih lanjut dapat dilihat di Google. Coba search pakai kode HD44780. Cari tabel tentang CGROM. Salah satunya adalah jika kita memberi kode 0100 0001 biner, akan tertampil huruf "A".
F. Inisialisasi
Berikut merupakan sample program inisialisasi yang dapat dipakai. Saya memakai micro seri Atmel 89s51, dengan bahasa Assembler. Yang perlu diperhatikan adalah waktu mengeksekusi program, D7 akan menampilkan signal sibuk (busy). Selama waktu sibuk tersebut kita tidak dapat menuliskan perintah. Solusi yang dapat dipakai adalah menunggu waktu sibuk itu dengan delay atau perintah menunggu di D7 (pin 14). Saat sibuk D7 akan bernilai high. Saya akan memakai delay selama 20milidetik sebagai penunggu eksekusi selesai.
;---------------------------------------;
; P0 LCD Out ;
; p2.6 -> 4 -> RS, register Selection ;
; p2.7 -> 6 -> E, H read, H->L Write ;
;---------------------------------------;
org 100h ; program mulai ditulis di memory 100h
t_20 CLR TF0 ; NOLKAN TIMER 0 OVERFLOW
MOV TH0,#B1H ; TUNDA 20 MILIDETIK
MOV TL0,#E0H ; TUNDA 20 MILIDETIK
SETB TR0 ; MULAI MENGHITUNG 20 MILIDETIK
JNB TF0,$ ; TUNGGU DISINI SAMPAI TIMER 0 OVERFLOW
CLR TR0 ; HENTIKAN TIMER
RET
;--------------INISIALISASI TIMER------------------------
mulai MOV TMOD,#01H ; GUNAKAN TIMER 0 MODE 16
;--------------INISIALISASI LCD------------------------
; disini diinginkan setingan :
; - 8 bit data / 2 line / 5x7
; - entry mode increment
; - ---------------------------------------------------
mov p0,#038h ;2 line
clr p2.6
setb p2.7
clr p2.7
acall t_20
mov a,#0fh
clr p2.6
setb p2.7
clr p2.7
acall t_20
mov a,#01h
clr p2.6
setb p2.7
clr p2.7
mov a,#06h
clr p2.6
setb p2.7
clr p2.7
end.
F. Inisialisasi
Berikut merupakan sample program inisialisasi yang dapat dipakai. Saya memakai micro seri Atmel 89s51, dengan bahasa Assembler. Yang perlu diperhatikan adalah waktu mengeksekusi program, D7 akan menampilkan signal sibuk (busy). Selama waktu sibuk tersebut kita tidak dapat menuliskan perintah. Solusi yang dapat dipakai adalah menunggu waktu sibuk itu dengan delay atau perintah menunggu di D7 (pin 14). Saat sibuk D7 akan bernilai high. Saya akan memakai delay selama 20milidetik sebagai penunggu eksekusi selesai.
;---------------------------------------;
; P0 LCD Out ;
; p2.6 -> 4 -> RS, register Selection ;
; p2.7 -> 6 -> E, H read, H->L Write ;
;---------------------------------------;
org 0h ; program mulai ditulis di memory 00h
ajmp mulai ; loncat ke label cekorg 100h ; program mulai ditulis di memory 100h
MOV TH0,#B1H ; TUNDA 20 MILIDETIK
MOV TL0,#E0H ; TUNDA 20 MILIDETIK
SETB TR0 ; MULAI MENGHITUNG 20 MILIDETIK
JNB TF0,$ ; TUNGGU DISINI SAMPAI TIMER 0 OVERFLOW
CLR TR0 ; HENTIKAN TIMER
RET
;--------------INISIALISASI TIMER------------------------
mulai MOV TMOD,#01H ; GUNAKAN TIMER 0 MODE 16
;--------------INISIALISASI LCD------------------------
; disini diinginkan setingan :
; - 8 bit data / 2 line / 5x7
; - entry mode increment
; - ---------------------------------------------------
mov p0,#038h ;2 line
clr p2.6
setb p2.7
clr p2.7
acall t_20
mov a,#0fh
clr p2.6
setb p2.7
clr p2.7
acall t_20
mov a,#01h
clr p2.6
setb p2.7
clr p2.7
acall t_20
clr p2.6
setb p2.7
clr p2.7
acall t_20
; menulis ke DDRAM
tt mov p0,#01000001B ; menulis angka A ke DDRAM
clr p2.6
setb p2.7
clr p2.7
clr p2.6
setb p2.7
clr p2.7
acall t_20
sjmp tt ; kembali ke "tt", sehingga akan menulis huruf "A", secara terus
; menerus
Tidak ada komentar:
Posting Komentar