矩阵键盘硬件设计及软件流程

时间:2024-03-19 09:23:26

很多情况下我们芯片的IO口不够用,但是有需要很多按键的话,矩阵键盘是一个很好的选择,通过矩阵键盘的设计我们可以用很少的IO来实现多个按键的功能。下面我们来介绍一下矩阵键盘的相关设计,不多说直接上图

矩阵键盘硬件设计及软件流程

上面这个图就是标准的矩阵键盘的设计了,这是一个4*4的键盘,通过8个IO实现16个按键的功能

硬件设计方面我们最好是给每个IO 加上上拉电阻增加IO的驱动能力。

我们在设计的时候可以采用一组IO ,上图中P10---P13接在按键的一端,P14---P17接在按键的另一端。那么我们具体怎么判断到底是哪个按键按下的呢。下面我们来进行分析。

首先我们先把P14---P17设置为输出高电平,然后我们读取P10---P13的值,谁的值为高,那就表示谁所处的那一列有按键按下,例如如果P10为高,那么表示S1,S5,S9,S13这一列的某个按键按下了,这个就叫做列扫描。

第二步我们需要确定该列中具体是哪个按键按下了,这个时候反过来我们将P10---P13设置为输出高电平,然后我们读取的值P14---P17,谁的值为高,那就表示谁所处的那一行有按键按下,例如如果P14为高,那么表示S1,S2,S3,S14这一列的某个按键按下了,这个就叫做行扫描。

两次扫描之后我们就可以确定是S1按键按下了。

大致的流程就是需要将按键两端的IO分别拉高,读取对应IO的值,进行行扫描和列扫描判断哪个按键按下