$mod51
ORG 000H
CLR P3.5
call init_LCD
start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
call write_inst
mov R1,#'J'
call write_data
mov R1,#'E'
call write_data
mov R1,#'F'
call write_data
mov R1,#'R'
call write_data
mov R1,#'I'
call write_data
mov R1,#' '
call write_data
mov R1,#'S'
call write_data
mov R1,#'E'
call write_data
mov R1,#'T'
call write_data
mov R1,#'I'
call write_data
mov R1,#'A'
call write_data
mov R1,#'J'
call write_data
mov R1,#'I'
call write_data
mov R1,#0c0h ; Lokasi Display RAM, Row=1 Col=1
call write_inst
mov R1,#'1'
call write_data
mov R1,#'1'
call write_data
mov R1,#'.'
call write_data
mov R1,#'1'
call write_data
mov R1,#'1'
call write_data
mov R1,#'.'
call write_data
mov R1,#'2'
call write_data
mov R1,#'3'
call write_data
mov R1,#'5'
call write_data
mov R1,#'0'
call write_data
stop: sjmp stop
Init_lcd:
mov r1,#00000001b
call write_inst
mov r1,#00111000b
call write_inst
mov r1,#00001100b
call write_inst
mov r1,#00000110b
call write_inst
ret
;
Write_inst:
clr P3.6
mov P0,R1
setb P3.7
call delay
clr P3.7
ret
;
Write_data:
setb P3.6
mov P0,R1
setb P3.7
call delay
clr p3.7
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
end