📄 1602yejing(2).asm
字号:
本程序为1602液晶显示程序
RS BIT P3.5
RW BIT P3.6
E BIT P3.7
ORG 00H
MOV SP,#70H
MOV P1,#01H
CALL ENABLE
MOV P1,#38H
CALL ENABLE
MOV P1,#0FH
CALL ENABLE
MOV P1,#06H
CALL ENABLE
MOV P1,#80H
CALL ENABLE
MOV DPTR,#TABLE1
CALL WRITE1
MOV P1,#0C0H
CALL ENABLE
MOV DPTR,#TABLE2
CALL WRITE1
MOV P1,#0C4H
CALL ENABLE
J1:MOV R3,#0F7H
MOV R1,#00H
J2:MOV A,R3
MOV P2,A
MOV A,P2
MOV R4,A
SETB C
MOV R5,#04H
J3:RLC A
JNC KEY
INC R1
DJNZ R5,J3
MOV A,R3
SETB C
RRC A
MOV R3,A
JC J2
JMP J1
KEY: MOV R7,#100
D1:MOV R6,#248
DJNZ R6,$
DJNZ R7,D1
D2:MOV A,P2
XRL A,R4
JZ D2
MOV A,R1
MOV DPTR,#TABLE3
MOVC A,@A+DPTR
MOV R0,A
XRL A,#41H
JZ SHUAI
MOV A,R0
XRL A,#42H
JZ SHUAI2
MOV A,R0
XRL A,#43H
JZ SHUAI3
MOV A,R0
CALL WRITE2
CALL CHECK
JMP J1
SHUAI2: ;光标左移
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,SHUAI2
MOV A,P1
ADDC A,#80H
DEC A
CJNE A,#0C3H,K1
JMP J1
K1: MOV P1,A
CALL ENABLE
JMP J1
SHUAI3: ;光标右移
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,SHUAI3
MOV A,P1
ADDC A,#80H
INC A
CJNE A,#0CAH,K2
JMP J1
K2: MOV P1,A
CALL ENABLE
JMP J1
CHECK:MOV P1,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P1.7,CHECK
MOV A,P1
ANL A,#7FH
CJNE A,#4AH,H1
MOV P1,#0C9H
CALL ENABLE
H1:RET
SHUAI:MOV P1,#0C4H
CALL ENABLE
MOV R1,#06H
A1: MOV A,#30H
CALL WRITE2
DJNZ R1,A1
MOV P1,#0C4H
CALL ENABLE
MOV R6,#00H
JMP J1
ENABLE: clr rs
clr rw
clr E
CALL DELAY
SETB E
RET
WRITE1:MOV R1,#00H
D3: MOV A,R1
MOVC A,@A+DPTR
CALL WRITE2
INC R1
CJNE A,#00H,D3
RET
WRITE2:MOV P1,A
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
DELAY:MOV R4,#05
M1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,M1
RET
TABLE1:DB 'ENTER THE KEY',00H
TABLE2:DB 'KEY:000000',00H
TABLE3:DB '0123456789',41H,42H,43H,44H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -