原创 矩阵键盘的扫描4*4显示0~f(行值加列值)

2009-5-6 09:12 2783 4 4 分类: MCU/ 嵌入式

;===================================
;实现矩阵键盘的扫描4*4显示0~f
;使用行值加列值的方法
; QQ 529404547
;2008.12.10
;===================================
 ORG 00H
 AJMP MAIN
 ORG 0030H
MAIN: MOV P1, #01H
 MOV R0, #00H   ;程序开始 初始化
 MOV R1, #00H   ;R0为行值,r1为列值
FEN: MOV 30H, #0EFH   ;30h存扫描初值
FF: MOV P0, 30H
 MOV A, P0
 MOV R0, #0
ZY: RRC A    ;把p0口 状态读回来后右移
 JNC DISPLAY    ;进位为0显示
 INC R0    ;不为0行值加1
 CJNE R0, #4, ZY  ;扫描4次否,否的话 继续


 MOV A, 30H   ;扫描完四次扫描码左移,扫描下一列
 RL A
 MOV 30H, A
 MOV A, R1   ;列值加4
 ADD A, #4
 MOV R1, A
 CJNE R1, #16, FF  ;列值等于四否,否从新扫描
 MOV R1, #0H   ;等于16,赋初值0
 AJMP MAIN    ;从新开始



DISPLAY:MOV DPTR, #LAB   ;显示
 MOV A, R1   ;行值加列值
 ADD A, R0
 MOVC A, @A+DPTR
 MOV P2, A
 MOV P1, #01H   
 AJMP MAIN    ;从新开始扫描    
LAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H     ;共阴数码管代码



 END
 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条