📄 key扫描 线反转法.asm
字号:
ORG 0000H
;******P1.7~P1.4为列线的4~1
;******P1.3~P1.0为行线的4~1
MOV SCON,#50H;串口工作在1方式可以接收
MOV PCON,#00H
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
S: ACALL KEYSCAN
MOV SBUF,R3
JBC TI,$
SJMP S
KEY EQU 50H
KEYSCAN:MOV P1,#0FH
MOV A,P1
ANL A,#0FH
MOV B,A
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
ORL A,B
CJNE A,#0FFH,KEYREAD
AJMP KEYSCAN
;-------键盘数据读取---
KEYREAD:MOV KEY,A
MOV DPTR,#KEYDB
MOV R3,#0FFH
REW: INC R3
MOV A,R3
MOVC A,@A+DPTR
CJNE A,KEY,REW
MOV 30H,R3
RET
KEYDB:
DB 0E7H,0D7H,0B7H,77H,0EBH,0DBH,0BBH,7BH,0EDH,0DDH,0BDH,7DH,0EEH,0DEH,0BEH,7EH,0FFH
;**********************10MS
DEL10MS:MOV R7,#50
DEL11: MOV R6,#100
DEL10: DJNZ R6,DEL10
DJNZ R7,DEL11
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -