51单片机教程:矩阵式键盘bob综合体育官方入口接

2022-05-14 07:19 胡八一

当单片机系统中键盘上有大量按钮时,为了减少对I/O口的占用,按钮往往以矩阵形式排列,如图1所示。在矩阵式键盘中,每条横线和竖线在交叉处不是直接相连的,而是通过一个按钮相连。这样一个端口(比如P1端口)可以形成4*4=16个按键,比直接用端口线做键盘多一倍。而且,线越多,差别越明显。比如多加一根线就能组成20键键盘,而直接用端口线只能多一个键(9键)。由此可见,当需要的键数较多时,采用矩阵法制作键盘是合理的。

本文引用地址:http://www.eepw.com.cn/article/171064.htm

点击浏览下一页单片机矩阵式键盘接口技术及编程接口图>矩阵键盘接口技术与单片机编程接口图& gt;

矩阵结构的键盘明显比直接法复杂,识别也更复杂。上图中,列线通过电阻连接到正电源,微控制器连接到行线的I/O口作为输出端,连接到列线的I/O口作为输入端。这样,当按钮没有被按下时,所有的输出端都是高电平,也就是说没有按键被按下。Line输出为低电平,一旦按下某个键,输入线就会被拉低,这样通过读取输入线的状态就可以知道某个键是否被按下。具体识别和编程方法如下。

矩阵键盘的按键识别方法

确定按下了矩阵键盘上的哪个键,并引入一个& ldquo扫描方式& rdquo。

行扫描法行扫描法又称逐行(或列)扫描查询法,是识别按钮最常用的方法之一。上图所示的键盘介绍如下。

确定是否按下键盘上的键以将所有行线Y0-Y3设置为低电平,然后检查列线的状态。只要一列的电平低,就说明键盘中按了一个键,关闭的键位于低电平线与四行线交叉的四个按钮中。如果所有列线都处于高电平,则键盘中没有按键。

判断关闭键的位置。确认一个键被按下后,就可以进入确定具体关闭键的过程。方法是依次将行线设置为低电平,即当一行线设置为低电平时,其他行设置为高电平。在行线的位置被确定为低电平之后,逐行检测每个列线的电平状态。如果列为低电平,列线和行线相交处设置为低电平的按钮为关闭按钮。

下面是具体的套路:

图片还是上图。831单片机的P1口作为键盘I/O口,键盘的列线接P1口的低4位,键盘的行线接P1口的高4位。列P1.0-P1.3分别通过四个上拉电阻连接到+5V的正电源,列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。四条行线和四条列线形成16个交点。

检测当前是否有按键被按下。检测方法是P1.4-P1.7全输出& ldquo0 & rdquo,读取P1.0-P1.3的状态,如果P1.0-P1.3都& ldquo1 & rdquo,则不关闭任何键,否则关闭一个键。