07/08/10

Display LCD Karakter

org 0h
call Init_lcd
start: mov R1,#0C0h ; Lokasi Display RAM, Row=1 Col=1
call write_inst
mov R1,#'A' ; Cetak Karakter A
call write_data
stop: sjmp stop
Init_lcd:
mov r1,#00000001b ;Display clear
call Write_inst
mov r1,#00111100b ;Function set,Data 8 bit,2 line font 5x7
call Write_inst
mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call Write_inst
mov r1,#00000110b ;Entry mode, Set increment
call Write_inst
ret
;
Write_inst:
clr P2.0 ; P2.0 = RS =0
mov P3,R1 ; P0 = D7 s/d D0 = R1
setb P2.1 ; P2.1 =E = 1
call delay ; call delay time
clr P2.1 ; P2.1 =E = 0
ret
;
Write_data:
setb P2.0 ; P2.0 = RS =1
mov P3,R1 ; P0 = D7 s/d D0 = R1
setb P2.1 ; P2.1 =E = 1
call delay ; call delay time
clr p2.1 ; P2.1 =E = 0
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
End