📄 code.asm
字号:
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,#0C2H
CALL ENABLE
;***********************************************************
L1: MOV R3,#0F7H
MOV R1,#00H
L2: MOV A,R3
MOV P2,A
MOV A,P2
MOV R4,A
SETB C
MOV R5,#03H
L3: RLC A
JNC KEYIN
INC R1
DJNZ R5,L3
MOV A,R3
SETB C
RRC A
MOV R3,A
JC L2
JMP L1
KEYIN: MOV R7,#10
D2: MOV R6,#248
DJNZ R6,$
DJNZ R7,D2
D3: MOV A,P2
XRL A,R4
JZ D3
MOV A,R1
MOV DPTR,#TABLE3
MOVC A,@A+DPTR
MOV R0,A
XRL A,#41H
JZ L1
MOV A,R0
XRL A,#42H
JZ CLEAR
MOV A,R0
CALL WRITE2
CALL CHECK
JMP L1
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,#48H,A3
MOV P1,#0C2H
CALL ENABLE
A3: RET
CLEAR: MOV P1,#0C2H
CALL ENABLE
MOV R1,#06
A2: MOV A,#30H
CALL WRITE2
DJNZ R1,A2
MOV P1,#0C2H
CALL ENABLE
JMP L1
ENABLE : CLR RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
WRITE1: MOV R1,#00H
A1: MOV A,R1
MOVC A,@A+DPTR
CALL WRITE2
INC R1
CJNE A,#00H,A1
RET
WRITE2: MOV P1,A
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
DELAY: MOV R4,#05
D1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,D1
RET
TABLE1: DB 'HELLO! PUZZLE',00H
TABLE2: DB 'D:000000',00H
TABLE3: DB 31H,32H,33H
DB 34H,35H,36H
DB 37H,38H,39H
DB 41H,30H,42H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -