📄 jp02.asm
字号:
;文件名:JP02.ASM
;程序功能:用矩阵式键盘控制显示器
ORG 00H ;
START: MOV R4,#00H ;
L1: MOV R3,#0F7H ;扫描初值(P3.3=0)
MOV R1,#00H ;取码指针
L2: MOV A,R3 ;开始扫描
MOV P3,A ;将扫描值输出至P3
MOV A,P3 ;读入P3值,判断有无按下
MOV R4,A ;存入R4,以判断是否放开
SETB C ;C=1
MOV R5,#04H ;扫描P3.4~P3.7
L3: RLC A ;将按键值左移一位
JNC KEY ; 有键按下C=0,跳至KEY
INC R1 ;C=1没键按下,指针值加1
DJNZ R5,L3 ;4列扫描完毕了?
MOV A,R3 ;扫描值载入
SETB C ;C= RRC A
MOV R3,A ;存回扫描寄存器
JC L2 ;C=1,程序转到L2处
JMP L1 ;C=0则4行已扫描完毕
KEY: ACALL DELAY ;调延时子程序
D1: MOV A,P3 ;读入P3值
XRL A,R4 ;与上次读入值作比较
JZ D1 ;A=0,表示按键未放
MOV A,R1 ;按键已放开,指针载入A
ACALL DISP ;调用显示子程序
JMP L1 ;
DISP: MOV DPTR,#TABLE ;数据指针指到TABLE
MOVC A,@A+ DPTR ;恢罷ABLE取码
MOV P0,A ; 输出
RET ; 子程序返回
DELAY: MOV R7, #60 ;
MOV R6, #248 ;
DLY1: DJNZ R6, $ ;
DJNZ R7, DLY1 ;
RET ;
TABLE: DB 0C0H, 0F9H, 0A4H,0B0H ;
DB 99H, 92H, 82H, 0F8H ;
DB 80H, 90H, 88H, 83H ;
DB 0C6H, 0A1H, 86H, 8EH ;
END ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -