您的位置 首页 动态

51单片机简略易懂矩阵式键盘程序

;30H存列号31H存行号32H装键值,要改键盘的值排列可以通过改变后面TAB的值。;程序构思,先给键盘的接入口p1赋0F0H,通过检测p14-p17那个

;30H存列号31H存行号32H装键值,要改键盘的值摆放能够经过改动后边TAB的值。

;程序构思,先给键盘的接进口p1赋0F0H,经过检测p1.4-p1.7那个呈现低电平,举例假如是p1.4那列有键按

;下则p1.4呈现低电平,则跳到y0得到列号为0,接下来分别给p1.4-p1.7赋0,看什么时分p1.4在那呈现低电

;平,则能够得到行号,终究核算行号*4+列号就能够得到键盘的值,假如要修正矩阵键盘键值摆放,则能够

;经过查表,核算出的前期键值仅仅作为一个地址。不知表述是否清楚了

SCAN:MOV P1,#0F0H ;键盘扫描程序
JNB P1.4,Y0 ;判别列
JNB P1.5,Y1
JNB P1.6,Y2
JNB P1.7,Y3
SJMP SCAN

Y0:MOV 30H,#00H ;赋列号
MOV P1,#0FEH
JNB P1.4,X0
MOV P1,#0FDH
JNB P1.4,X1
MOV P1,#0FBH
JNB P1.4,X2
MOV P1,#0F7H
JNB P1.4,X3

Y1:MOV 30H,#01H
MOV P1,#0FEH
JNB P1.5,X0
MOV P1,#0FDH
JNB P1.5,X1
MOV P1,#0FBH
JNB P1.5,X2
MOV P1,#0F7H
JNB P1.5,X3

Y2:MOV 30H,#02H
MOV P1,#0FEH
JNB P1.6,X0
MOV P1,#0FDH
JNB P1.6,X1
MOV P1,#0FBH
JNB P1.6,X2
MOV P1,#0F7H
JNB P1.6,X3

Y3:MOV 30H,#03H
MOV P1,#0FEH
JNB P1.7,X0
MOV P1,#0FDH
JNB P1.7,X1
MOV P1,#0FBH
JNB P1.7,X2
MOV P1,#0F7H
JNB P1.7,X3

X0:MOV 31H,#00H ;赋行号
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X1:MOV 31H,#01H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X2:MOV 31H,#02H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

X3:MOV 31H,#03H
ACALL DELAY
MOV P1,#0F0H
LJMP JISUAN

JISUAN:MOV A,31H
MOV B,#04H
MUL AB
ADD A,30H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV 32H,A
RET

delay:MOV R4,#0C5H ;键扫延时
DEL1:MOV R5,#43H
DEL0:MOV R6,#10H
DJNZ R6,$
DJNZ R5,DEL0
DJNZ R4,DEL1
RET

TABLE:DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,00H,0AH,0BH,0CH,0DH,0EH,0FH ;键盘值

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/261312.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部