📄 lcd8bit2.asm
字号:
;-----------------------LCD 8-bit--------------------------
;LCD Connections to microcontroller
E EQU P2.0 ; PIN 6 enable
RS EQU P2.1 ; /register select
DATANE EQU P0 ; data lines
;----------------------------------------------------------
ORG 0000H
JMP on_reset
;----------------------------------------------------------
ORG 00FFH
on_reset:
MOV DPTR,#init_data
CALL disp_init
MOV DPTR,#message1
CALL disp_string
CALL disp_line2
MOV DPTR,#message2
CALL disp_string
ENDLESS:
JMP ENDLESS
;----------------------------------------------------------
; display char in A
disp_char:
SETB RS ; desable register select
MOV DATANE,A
SETB E ; give E pulse
ACALL delay_data
CLR E
ACALL delay_data
RET
;----------------------------------------------------------
; used registers A,R1,R7
disp_string:
MOV A,#00H
MOV R1,#00h
next_char:
INC R1
MOVC A,@A+DPTR
MOV DATANE,A
ACALL disp_char
MOV A,R0
CJNE R1,#0Fh,next_char
RET
;----------------------------------------------------------
; used registers A,R1,R7
disp_init:
CLR RS ; enable /register select
MOV A,#00H
MOV R1,#00h
next_chari:
INC R1
MOVC A,@A+DPTR
MOV DATANE,A
SETB E ; give E pulse
ACALL delay_init
CLR E
ACALL delay_init
MOV A,R0
CJNE R1,#02h,next_chari
RET
;----------------------------------------------------------
disp_line1:
CLR RS ; register select
MOV DATANE,#80H ; first line address
SETB E ; give E pulse
ACALL delay_init
CLR E
ACALL delay_init
RET
;----------------------------------------------------------
disp_line2:
CLR RS ; register select
MOV DATANE,#0A8H ; next line address
SETB E ; give E pulse
ACALL delay_init
CLR E
ACALL delay_init
RET
;----------------------------------------------------------
;2 msec delay
delay_data:
MOV R7,#0FFH
del: NOP
NOP
DJNZ R7, del
RET
;----------------------------------------------------------
;20 msec delay
delay_init:
MOV R7,#0FFH
del1: NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7, del1
RET
;----------------------------------------------------------
message1:
DB "Testing 123.... "
message2:
DB "It's working "
init_data:
DB 0FH ; Display On, Cursor On,Cursor Blink On(1)/Off(0)
DB 01H ; Clear Display
DB 38H ; Set Interface Length
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -