📄 矩阵键盘程序.asm
字号:
ORG 0000H
JMP MAIN
MAIN:
MOV SP,#60H
MOV P3,#00001111B
MOV R0,P3
LCALL DELAY ;消抖
MOV R0,P3
CJNE R0,#00001111B,TP1
JMP MAIN
TP1: ;判断键盘所在行行号
JB P3.0,LINE1
MOV A,#00H
LINE1:JB P3.1,LINE2
MOV A,#04H
LINE2:JB P3.2,LINE3
MOV A,#08H
LINE3:JB P3.3,TP2
MOV A,#0CH
TP2:
MOV P3,#11110000B
JB P3.4,LE1
MOV R1,#00H
LE1:JB P3.5,LE2
MOV R1,#01H
LE2:JB P3.6,LE3
MOV R1,#02H
LE3:JB P3.7,TP3
MOV R1,#03H
TP3:ADD A,R1;获取键号
S1:MOV R0,P3
CJNE R0,#11110000B,S1;判断按键是否放开
DISPLAY:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,#0C0h
MOV P0,A
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
DELAY:MOV 71H,#100 ;(延时10ms子程序,晶振12m)
LOOP1:MOV 70H,#47
LOOP0:DJNZ 70H,LOOP0
NOP
DJNZ 71H,LOOP1
MOV 70H,#48
LOOP4:DJNZ 70H,LOOP4
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -