
Program Assembly Demo Menjalankan LCD 16x2
;-----------------------------------------
;Program Demo untuk menjalankan LCD 16 x 2
;Character FN : HL18.H51
;-----------------------------------------
;
org 0h
nop
ljmp mulai
;
write_inst:
mov P2,#0h ;untuk memuliskan
mov P0,R1 ;intruksi ke LCD
setb P2.6 ;module
clr P2.6
acall delay
ret
;
write_data:
mov P2,#80h ;untuk menuliskan
mov P0,R1 ;data ke LCD
setb P2.6 ;module
clr P2.6
acall delay
ret
;
delay: mov R0,#0
delay1: mov R5,#50h
djnz R5,$
djnz R0,delay1
ret
;
Ldelay: mov R2,#030h
Ld1: acall delay
djnz R2,Ld1
ret
;
tulis: mov R4,#3
mov DPTR,#Haline
barisa: mov R3,#16
mov R1,#80h
acall write_inst
tulis1: clr A
movc A,@A+DPTR
mov R1,A
Inc DPTR
acall write_data
djnz R3,Tulis1
;
barisb: mov R3,#16
mov R1,#0C0h
acall write_inst
tulis2: clr A
movc A,@A+DPTR
mov R1,A
Inc DPTR
acall write_data
djnz R3,Tulis2
acall Ldelay
djnz R4,barisa
ret
;
mulai:
mov R1,#03Fh
acall write_inst
acall write_inst
mov R1,#0Dh
acall write_inst
mov R1,#06h
acall write_inst
mov R1,#01h
acall write_inst
mov R1,#0Ch
acall write_inst
acall tulis
sjmp mulai
;
Haline: DB 'SELAMAT DATANNG '
DB 'Sdr. Teguh dkk. '
DB 'di. D . Maninjau'
DB 'No. 58 Sawojajar'
DB 'MALANG INDONESIA'
DB 'Phone/Fax 719418'
;
end
Semoga bermanfaat & selamat belajar!