矩阵式键盘的连接方法和工作原理

矩阵式键盘的连接方法和工作原理

什么是矩阵式键盘?当键盘中按键数量较多时,为了减少I/O 口线的占用,通常将按键排列成矩
阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键
加以连接。这样做有什么好处呢?大家看下面的电路图,一个并行口可以构成4*4=16 个按键,比之直
接将端口线用于键盘多出了一倍,而且线数越多,区别就越明显。比如再多加一条线就可以构成20 键
的键盘,而直接用端口线则只能多出一个键(9 键)。由此可见,在需要的按键数量比较多时,采用矩
阵法来连接键盘是非常合理的。
矩阵式结构的键盘显然比独立式键盘复杂一些,识别也要复杂一些,在上图中,列线通过电阻接
电源,并将行线所接的 单片机4 个I/O 口作为输出端,而列线所接的I/O 口则作为输入端。这样,当按
键没有被按下时,所有的输出端都是高电平,代表无键按下,行线输出是低电平;一旦有键按下,则输
入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了,具体的识别及 编程方法如下
所述:
二. 矩阵式键盘的按键识别方法
确定矩阵式键盘上任何一个键被按下通常采用“行扫描法”或者“行反转法”。行扫描法又称为
逐行(或列)扫描查询法,它是一种最常用的多按键识别方法。因此我们就以“行扫描法”为例介绍矩
阵式键盘的工作原理:

1. 判断键盘中有无键按下
将全部行线X0-X3 置低电平,然后检测列线的状态,只要有一列的电平为低,则表示键盘中有键
被按下,而且闭合的键位于低电平线与4 根行线相交叉的4 个按键之中;若所有列线均为高电平,则表
示键盘中无键按下。
2. 判断闭合键所在的位置
在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平(即在
置某根行线为低电平时,其它线为高电平),当确定某根行线为低电平后,再逐行检测各列线的电平状
态,若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
下面给出一个具体的例子:
单片机的P1 口用作键盘I/O 口,键盘的列线接到P1 口的低4 位,键盘的行线接到P1 口的高4
位,也就是把列线P1.0-P1.3 分别接4 个上拉电阻到电源,把列线P1.0-P1.3 设置为输入线,行线
P1.4-P1.7 设置为输出线,4 根行线和4 根列线形成16 个相交点,如上图所示。
检测当前是否有键被按下:检测的方法是P1.4-P1.7 输出全“0”,读取P1.0-P1.3 的状态,若
P1.0-P1.3 为全“1”,则说明无键闭合;否则有键闭合。
去除键抖动:当检测到有键按下后,延时一段时间再做下一次的检测判断,若仍有键按下,应识
别出是哪一个键闭合,方法是对键盘的行线进行扫描,P1.4-P1.7 按下述4 种组合依次输出:P1.7 1110;
P1.6 1101;P1.5 1011;P1.4 0111;在每组行输出时读取P1.0-P1.3;若全为“1”,则表示为“0”这
一行没有键闭合;否则就是有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭
合键的行值和列值转换成所定义的键值。为了保证按键每闭合一次CPU 仅作一次处理,必须去除键释放
时的抖动。举个实例:
三. 矩阵式键盘的实验程序
ORG 0030H ;
SCAN:MOV P1,#0FH ;
MOV A,P1 ;
ANL A,#0FH ;
CJNE A,#0FH,NEXT1 ;
SJMP NEXT3 ;
NEXT1:ACALL D20Ms ;
MOV A,#0EFH ;
NEXT2:MOV R1,A ;
MOV P1,A ;
MOV A,P1 ;
ANL A,#0FH ;
CJNE A,#0FH,KCODE ;
MOV A,R1 ;
SETB C ;
RLC A ;
JC NEXT2 ;
NEXT3:MOV R0,#00H ;
RET ;
KCODE:MOV B,#0FBH ;
NEXT4:RRC A ;
INC B ;
JC NEXT4 ;
MOV A,R1 ;
SWAP A ;
NEXT5:RRC A ;
INC B ;
JC NEXT5 ;
NEXT6:MOV A,P1 ;
ANL A,#0FH ;
CJNE A,#0FH,NEXT6;
MOV R0,#0FFH ;
RET ;
END。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值