矩阵式键盘的工作原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。

扫描法

按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行平电的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下同样使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。

线反转法

• 第1步:将列线P1.4~P1.7 作为输入线,行线P1.3~P1.0 作为输出线,并将输出线输出全为低电平,读列线状态,则列线中电平为低的是按键所在的列。

• 第2步:将行线作为输入线,列线作为输出线,并将输出线输出为低电平,读行线状态,则行线中电平为低的是按键所在的行。

• 综合第1、2两步结果,可确定按键所在的行和列,从而识别出所按下的键。

键盘的编码

1.独立式键盘按键数量少,可根据实际需要灵活编码。

2.矩阵式键盘按键的位置由行号和列号唯一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。

编程扫描方式

编程扫描方式是利用CPU完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU重新扫描键盘为止。

键盘扫描程序一般应包括以下内容:

(1)判别有无键按下。

(2)键盘扫描取得闭合键的行、列值。

(3)用计算法或查表法得到键值。

(4)判断闭合键是否释放,如没释放则继续等待。

(5)将闭合键键号保存,同时转去执行该闭合键的功能。

定时扫描方式

定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。

中断扫描方式

当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。中断扫描方式可以提高CPU工作效率。

相关文档
最新文档