📄 keysend1.asm
字号:
;-----------------------常数
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TT0
ORG 0030H
MAIN: MOV SP,#60H
MOV A,#10H
LCALL DISP
MOV SCON,#40H
MOV TMOD,#21H
SETB TR1
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
MOV PCON,#00H
LOOP: LCALL KEYSCAN
JZ LOOP
LCALL DELAY
LCALL KEYSCAN
JZ LOOP
LCALL KEYGET
CJNE A,#0FFH,LOOP2
LJMP LOOP
LOOP2: MOV B,A
LCALL DISP
MOV A,B
CJNE A,#0CH,LOOP3 ;CLR
LOOP21: JNB P2.2,$
LCALL DELAY
JNB P2.2,LOOP21
LCALL SEND
LJMP LOOP
LOOP3: CJNE A,#0DH,LOOP4 ;RPLAY
LOOP31: JNB P2.3,$
LCALL DELAY
JNB P2.3,LOOP31
LCALL SEND
LJMP LOOP
LOOP4: SETB TR0
MOV 30H,#00H
; PUSH B
LCALL SEND
LOOP1: LCALL KEYSCAN
JNZ LOOP1
CLR TR0
MOV A,#0FH
LCALL DISP
MOV A,30H
MOV B,#05H
DIV AB
INC A
ANL A,#0FH
SWAP A
ORL A,#0FH
MOV B,A
LCALL SEND
LJMP LOOP
TT0: MOV TH0,#3CH
MOV TL0,#0B0H
INC 30H
MOV A,30H
CJNE A,#70,TT0_EXIT
MOV 30H,A
TT0_EXIT:RETI
SEND: CLR TI
MOV A,#0EBH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,B
MOV SBUF,A
JNB TI,$
CLR TI
RET
DISP: ADD A,#03H
MOVC A,@A+PC
MOV P0,A
RET
;DISTAB: DB 0C0H,0DBH,61H,49H,5AH,4CH,44H,0D9H
; DB 40H,48H,50H,46H,0E4H,43H,64H,74H,07FH
DISTAB: DB 09H,1AH,0CH,04H,99H,
DB 0DBH,61H,49H,5AH,4CH,44H,0D9H,0E4H,43H,64H,74H,07FH
KEYSCAN:MOV A,P1
CPL A
MOV B,A
MOV A,P3
CPL A
ANL A,#3CH
ORL B,A
MOV A,P2
CPL A
ANL A,#3FH
ORL A,B
RET
KEYGET: MOV A,P1
MOV B,#00H
JNB ACC.0,KG_EXIT
INC B
JNB ACC.1,KG_EXIT
INC B
JNB ACC.2,KG_EXIT
INC B
JNB ACC.3,KG_EXIT
INC B
JNB ACC.4,KG_EXIT
INC B
JNB ACC.5,KG_EXIT
INC B
JNB ACC.6,KG_EXIT
INC B
JNB ACC.7,KG_EXIT
INC B
MOV A,P2
JNB ACC.3,KG_EXIT
INC B
JNB ACC.2,KG_EXIT
INC B
JNB ACC.1,KG_EXIT
INC B
JNB ACC.0,KG_EXIT
INC B
JNB ACC.4,KG_EXIT
INC B
JNB ACC.5,KG_EXIT
MOV A,#0FFH
SJMP KG1
KG_EXIT:MOV A,B
KG1: RET
DELAY: MOV R7,#20
MOV R6,#0
DE1: DJNZ R6,$
DJNZ R7,DE1
RET
;-------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -