📄 dpdj.asm
字号:
RS BIT P2.0
RW BIT P2.1
E BIT P2.2
ORG 00H
START:MOV P0,#01H
ACALL ENABLE
MOV P0,#01H
ACALL ENABLE
MOV P0,#38H
ACALL ENABLE
MOV P0,#0cH
ACALL ENABLE
MOV P0,#07H
ACALL ENABLE
MOV P0,#0CAH
CALL ENABLE
MOV R7,#0
MOV R3,#0
MOV 50H,#0
WAIT: LCALL TESTKEY
JZ WAIT
CALL GETKEY
CALL show
AJMP WAIT
TESTKEY:
MOV P1,#0FH
MOV A,P1
CPL A
ANL A,#0FH
RET
KEYTABLE:
DB 0D7H,0EBH,0DBH,0BBH ;0,1,2,3
DB 0EDH,0DDH,0BDH,0EEH ;4,5,6,7
DB 0DEH,0BEH,077H,07BH ;8,9,+,-
DB 07DH,07EH,0B7H,0E7H ;*,/,=,ON/C
GETKEY:
MOV R6,#10
LCALL DELAY
MOV P1,#0FH
MOV A,P1
CJNE A,0FH,K12
LJMP WAIT
K12: MOV B,A
MOV P1,#0EFH
MOV A,P1
CJNE A,#0EFH,K13
MOV P1,#0DFH
MOV A,P1
CJNE A,#0DFH,K13
MOV P1,#0BFH
MOV A,P1
CJNE A,#0BFH,K13
MOV P1,#07FH
MOV A,P1
CJNE A,#07FH,K13
LJMP WAIT
K13: ANL A,#0F0H
ORL A,B
MOV B,A
MOV R1,#16
MOV R2,#0
MOV DPTR,#KEYTABLE
K14: MOV A,R2
MOVC A,@A+DPTR
CJNE A,B,K16
MOV P1,#0FH
K15: MOV A,P1
CJNE A,#0FH,K15
MOV R6,#10
LCALL DELAY1
MOV A,R2
RET
K16: INC R2
DJNZ R1,K14
LJMP WAIT
delay1:mov r7,#80
dloop: djnz r7,dloop
djnz r6,dloop
ret
LESS: RET
CLEAR:
MOV P0,#01H
ACALL ENABLE
MOV P0,#01H
ACALL ENABLE
RET
show: push acc
clr e
acall enable
add a,#30h
mov p0,a
setb rs
clr rw
clr e
pop acc
ret
ENABLE:CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
DELAY:
MOV P0,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P0.7,DELAY
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -