📄 键盘扫描.asm
字号:
$MOD841
CLK81 BIT 0B5H
DAT81 BIT 0B3H
KEY BIT 0B2H
KEYVAL EQU 30H
ORG 0000H
LJMP CHUSHI
CHUSHI:MOV R0,#7FH
CLR A
QRAM: MOV @R0,A
DJNZ R0,QRAM
LCALL YS
INI8281:SETB CLK81
SETB DAT81
MOV A,#12H
ACALL WTO81
MOV A,#80H
LCALL WTO81
MAIN: JB KEY,MAIN
MOV A,#93H
LCALL WTO81
LCALL RDKVAL
MOV A,#15H
LCALL WTO81
MOV A,KEYVAL
ANL A,#0F0H
SWAP A
ORL A,#10H
LCALL WTO81
MOV A,#15H
LCALL WTO81
MOV A,KEYVAL
ANL A,#0FH
ORL A,#20H
LCALL WTO81
LJMP MAIN
;*******************************
;*********************************
RDKVAL:CLR CLK81
LCALL WAIT
SETB CLK81
JB DAT81,$
CLR CLK81
LCALL WAIT
SETB CLK81
MOV R6,#08H
RD1:
LCALL WAIT
LCALL WAIT
LCALL WAIT
MOV C,DAT81
LCALL WAIT
RLC A
CLR CLK81
LCALL WAIT
SETB CLK81
DJNZ R6,RD1
MOV KEYVAL,A
RET
;*********************************
WTO81: MOV R6,#08H
WAT: CLR CLK81
LCALL WAIT
SETB CLK81
JB DAT81,WAT
CLR CLK81
LCALL WAIT
SETB CLK81
JNB DAT81,$
WTB81: RLC A
MOV DAT81,C
CLR CLK81
LCALL WAIT
SETB CLK81
LCALL WAIT
LCALL WAIT
DJNZ R6,WTB81
SETB DAT81
RET
;*****************************
;*****************************
WAIT: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
YS: MOV R5,#00H
MOV R4,#50H
YS1: DJNZ R5,$
DJNZ R4,YS1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -