标题:
单片机汇编矩阵键盘代码
[打印本页]
作者:
rxts11562486
时间:
2019-3-12 17:59
标题:
单片机汇编矩阵键盘代码
单片机源程序如下:
ORG 00H
LJMP INIT
ORG 30H
DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H
;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
;*************;
; 主程序 ;
;*************;
INIT:
CLR P2.2
CLR P2.3
CLR P2.4
MOV R1,#00H
START:
MOV A,R1
MOV DPTR,#30H
MOVC A,@A+DPTR
MAIN:
MOV P0,A
;**********************;
; 矩阵键盘扫描程序 ;
;**********************;
KEY_SCAN:
MOV P1,#00FH
NOP
MOV R2,P1
CJNE R2,#00FH,KEY_DOWN ;没有按键按下就返回主函数
SJMP MAIN
KEY_DOWN:
ACALL DELAY10MS ;消抖
MOV R2,P1
CJNE R2,#00FH,NEXT0
SJMP MAIN ;没有按键按下就返回主函数
NEXT0:
CJNE R2,#007H,NEXT1 ;如果不等于007H就跳去检测下一个键值
MOV R1,#00H ;如果是的话
SJMP NEXT_SCAN
NEXT1:
CJNE R2,#00BH,NEXT2
MOV R1,#01H
SJMP NEXT_SCAN
NEXT2:
CJNE R2,#00DH,NEXT3
MOV R1,#02H
SJMP NEXT_SCAN
NEXT3:
CJNE R2,#00EH,MAIN
MOV R1,#03H
NEXT_SCAN:
MOV P1,#0F0H
MOV R2,P1
CJNE R2,#070H,NEXT4
MOV A,#00H
ADD A,R1
MOV R1,A
LJMP START
NEXT4:
CJNE R2,#0B0H,NEXT5
MOV A,#04H
ADD A,R1
MOV R1,A
LJMP START
NEXT5:
CJNE R2,#0D0H,NEXT6
MOV A,#08H
ADD A,R1
MOV R1,A
LJMP START
NEXT6:
CJNE R2,#0E0H,MAIN
MOV A,#0CH
ADD A,R1
MOV R1,A
MOV R3,#030H
KEY_UP:
ACALL DELAY10MS
DJNZ R3,KEY_UP
LJMP START
;*************;
; 延时程序 ;
;*************;
DELAY10MS:
MOV R6,#015H
DE1:
MOV R7,#0F8H
DE2:
DJNZ R7,DE2
DJNZ R6,DE1
RET
END
复制代码
所有资料51hei提供下载:
矩阵键盘.rar
(18.73 KB, 下载次数: 12)
2019-3-12 17:58 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1