首页 理论教育 知识准备:单片机矩阵键盘连接

知识准备:单片机矩阵键盘连接

时间:2023-06-30 理论教育 版权反馈
【摘要】:图2.3.1独立按键开关与端口的连接当按键未被按下时,与按键相连的I/O口保持为高电平;当按键闭合时,相应I/O口输入为低电平。图2.3.2按键时I/O口电平的变化按键抖动会引起一次按键被误读多次。图2.3.3矩阵键盘和单片机I/O口连接图2.3.4矩阵键盘实现的结果矩阵键盘的识别方法有行扫描法和反转法。

知识准备:单片机矩阵键盘连接

为完成本章相关实验,读者应具备以下相关知识。

键盘是一组按键的组合,它是单片机中最常用的输入设备。操作人员可以通过键盘输入数据或命令,实现简单的人机交互。键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中,用得最多的是非编码键盘——按键。

按键是一种常开型按钮开关,按照与单片机连接的方式,按键又分为独立按键和矩阵按键。一般情况下,按键的两个触点都处于断开状态,按下键时它们才闭合(短路)。不管是独立按键还是矩阵按键,一次完整的按键操作包括按键的“按下”和“弹起”两个动作。

1.独立按键

在与单片机连接时,独立按键通常一端接地,一端通过一个上拉电阻与I/O口连接,当有n个按键时,就需要n位I/O口与之连接,如图2.3.1所示为4个独立按键开关与P3.2~P3.5端口的连接。

图2.3.1 独立按键开关与端口的连接

当按键未被按下时,与按键相连的I/O口保持为电平;当按键闭合时,相应I/O口输入为低电平。在理想情况下,电压变化如图2.3.2(a)所示,然而实际上,所有机械开关的触点在闭合、断开时都会发生抖动(即电压不稳定状态,闭合时的抖动称为前沿抖动,断开时的抖动称为后沿抖动),如图2.3.2(b)所示。抖动时间长短和开关的机械特性有关,一般为5~20ms左右。

图2.3.2 按键时I/O口电平的变化

按键抖动会引起一次按键被误读多次。为了确保CPU对按键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别,在键释放稳定后,再作处理。按键的抖动,可以用硬件或软件两种方法消除。(www.xing528.com)

如果按键较多,常用软件方法去除抖动,即检测出键闭合瞬间执行一个10~20ms的延时程序,产生10~20ms的延时,让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下;检测出键释放瞬间执行一个10~20ms的延时程序,产生10~20ms的延时,让后沿抖动消失后,再一次检测键的状态,如果按键仍保持释放状态电平,则确认为真正有键按下。当确认有键按下或检测到按键释放后,才能转入该键的处理程序。

2.矩阵按键

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,这样一个端口(如P1口)就可以连接4×4=16个按键,如图2.3.3,图2.3.4为矩阵键盘实现的结果。由此可见,在需要的按键数比较多时,采用矩阵法来做键盘是合理的。

矩阵按键显然比独立按键电路连接要复杂一些,识别也要复杂一些。可以把行线所接的单片机的I/O口作为输出端,而列线所接的I/O口作为输入端。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

图2.3.3 矩阵键盘和单片机I/O口连接 

图2.3.4 矩阵键盘实现的结果

矩阵键盘的识别方法有行扫描法和反转法。行扫描法又称为逐行(或逐列)扫描查询法,是一种最常用的按键识别方法,如图2.3.3所示键盘采用行扫描法识别键盘的步骤如下:

(1)判断键盘中有无键按下。将全部行线P1.0、P1.1、P1.2、P1.3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

(2)判断闭合键所在的位置。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平。在确定某根行线位置为低电平后,再逐列检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈