PERAGA LCD
A. Umum
LCD atau Liquid Crystal Display adalah merupakan wadah untuk menampilkan
sesuatu bentuk dari tulisan yang dapat berupa huruf, angka, dan tanda baca yang
merupakan satu modul. Tampilan dapat berupa 2 baris 16 kolom (2x16) atau berupa
4 baris 20 kolom (4x20) seperti ditunjukkan pada gambar 1.
HD44870 mempunyai dua register 8-bit yaitu Register Instruksi (IR) dan
Register Data (DR). Register IR berfungsi untuk menyimpan kode perintah seperti
Clear Display, Geser Cursor dan menyimpan alamat informasi untuk Display Data
RAM (DDRAM) dan karakter generator (CGRAM). Register IR dapat ditulisi
mikroprosesor tetapi tidak dapat dibaca. Register Data (DR) berfungsi menyimpan
sementara data yang dituliskan ke DDRAM atau CGRAM dan juga menyimpan
sementara data yang dibaca dari DDRAM atau CGRAM. Data dari mikroprosesor
yang dituliskan ke DR dengan operasi internal secara otomatis dituliskan ke DDRAM
atau CGRAM. Register DR juga digunakan untuk menyimpan data yang dibaca dari
DDRAM dan CGRAM. Saat alamat dituliskan pada register IR dengan operasi
internal, data dari DDRAM atau CGRAM dibaca ke register DR. Pentransferan data
ke mikroprosesor selesai setelah mikroprosesor membaca DR. Setelah
mikroprosesor membaca DR, data di dalam DDRAM dan CGRAM pada alamat
berikutnya dikirim ke DR untuk pembacaan mikroprosesor berikutnya.
Hubungan antara alamat DDRAM dengan posisi pada LCD dengan 4x20
karakter ditunjukkan pada gambar 2. Sesuai dengan kode instruksi, untuk menset
alamat DDRAM bit b7 harus logika 1.
Tabel 3. Instruksi Set HD44780
INSTRUCTION RS R/W D7 D6 D5 D4 D3 D2 D1 D0
Clear Display 0 0 0 0 0 0 0 0 0 1
Return Home 0 0 0 0 0 0 0 0 1 *
Entry Mode Set 0 0 0 0 0 0 0 1 I/D S
Display ON/OFF 0 0 0 0 0 0 1 D C B
Cursor and Display Shift 0 0 0 0 0 1 S/C R/L * *
Function Set 0 0 0 0 1 DL N F * *
Set CG RAM address 0 0 0 1 A A A A A A
Set DD RAM 0 0 1 A A A A A A A
Read busy Flag and Address 0 1 BF A A A A A A A
Write data to CG or DD RAM 1 0 D D D D D D D D
Read data Form CG or DD RAM 1 1 D D D D D D D D
Keterangan:
I/D 0= Decrement Cursor Position 1=Increment Cursor Position
S 0= No Display shift 1=Display shift
D 0= Display off 1= Display on
C 0= Cursor off 1= Cursor on
B 0= Cursor blink off 1= Cursor blink on
S/C 0=Move cursor 1= Shift display
R/L 0= Shift left 1= Shift Right
DL 0= 4-bit interface 1= 8-bit interface
N 0= 1/8 or 1/11 duty (1 line) 1= 1/16 Duty (2lines)
F 0= 5x7 dots 1= 5 x 10 dots
BF 0= Can accept instruction 1= Internal operation in progress
ROM Generator Karakter (CGROM) menghasilkan pola dot 5x7 atau 5x10
dari kode karakter 8-bit. CGROM mempunyai 192 pola dot karakter 5x7 dan 192
pola karakter 5x10. RAM generator karakter (CGRAM) adalah RAM yang
digunakan pemakai untuk menghasilkan pola-pola karakter secara software. Dengan
pola 5x7 dot delapan pola karakter yang dibentuk sendiri dapat disimpan, dan
dengan ukuran 5x10 dot, 4 pola karakter yang dibentuk sendiri dapat disimpan.
Instruksi HD44780 ditunjukkan pada tabel 3.
Sebelum menampilkan karakter pada LCD, maka harus mengikuti prosedur
sebagai berikut:
Inisialisasi
Pemesanan tempat
Penulisan data
Inisialisasi terdiri dari
Display Clear
0 0 0 0 0 0 0 0 0 1
RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini akan menghapus semua display dan mengembalikan kursor ke posisi
awal (alamat 0)
Cursor Home
0 0 0 0 0 0 0 0 1 X
RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini mengembalikan kursor ke posisi awal (alamat 0)
Cursor/Display Shift
0 0 0 0 0 1 S/C R/L * *
RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini akan menggerakkan kursor dan menggeser display tanpa mengubah
RAM.
Function Set
0 0 0 0 1 DL 1 * * *
RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
DL = 1, panjang data diatur 8 bit DL= 0, panjang data 4 bit (D7 – D4)
Org 01F8H
clear_lcd: call lcd_ready
mvi a,1 ;Display clear
out command_write
exit_clear: ret
Org 0200H
init_lcd: call lcd_ready
mvi a,38h ;panjang karakter 8-bit
out command_write
call lcd_ready
mvi a, 0ch; kursor tdk tampil dan tdk berkedip
out command_write
call clear_lcd
ret
Org 0219H
put_str_lcd1: call lcd_ready
out data_write
inx h
jmp put_str_lcd
Org 023CH
goto_xy2: cpi 2
jnz goto_xy3
mov a,h
adi 094h
out command_write
ret
Org 0247H
goto_xy3: cpi 3
jnz goto_xy4
mov a,h
adi 0d4h
out command_write
ret
goto_xy4: ret
Org 0253H
put_ch_lcd: call lcd_ready
out data_write
ret
PERCOBAAN
A. Percobaan 1
B. Percobaan 2.
1. Masukkan program 3 dan Kode ASCII pada memori 8410H s.d 841BH
Catatan: Subrutine INIT_LCD, GOTOXY, StrLCD terdapat pada program
monitor .
Program 3. Menampilkan isi memori mulai 8410 sampai datanya 00
Address Op-code Label Mnemonic
8400 CD-00-02 MAIN: CALL INT_LCD
8403 21-00-00 LXI H,0000
8406 CD-22-02 CALL GOTO_XY
8409 21-10-84 LXI H,8410 Awal memori data
840C CD-12-02 CALL StrLCD
840F FF RST 7
Routine Delay2
Address Op-Code Label Mnemonic Komentar
8D70 E5 DELAY2: PUSH H
8D71 F5 PUSH PSW
8D72 21-FF-08 UDEL1: LXI H,08FF
8D75 00 UDEL2; NOP
8D76 00 NOP
8D77 00 NOP
8D78 00 NOP
8D79 2B DCX H
8D7A 7D MOV A,L
8D7B B4 ORA H
8D7C C2-75-8D JNZ UDEL2
8D7F 0D DCR C
8D80 C2-72-8D JNZ UDEL1
8D83 F1 POP PSW
8D84 E1 POP H
8D85 C9 RET
Tugas
1. Buat Program untuk menghitung banyak tombol MOD ditekan dimana hitungan
tampil pada LCD baris 1 kolom 15.
2. Buat Program untuk menampilkan karakter bergerak pada baris 1 dari LCD dimana
karakternya adalah” SELAMAT DATANG DI POLITEKNIK NEGERI MEDAN”
Tabel Kode ASCII