矩阵键盘介绍
在键盘按键中,如果键盘按键过多,为减少I/O口的占用,通常将按键排列成矩阵形。
采用逐行或逐列扫描就可以判断出任意位置按键状态。
矩阵扫描
数码管扫描(输出扫描)
原理:显示第一位→显示第二位→显示第三位.........然后快速不断循环这个过程,最终实现所有数码管同时点亮。
矩阵键盘扫描(输入扫描)
原理:读取第一行(列)→读取第二行(列)→读取第三行(列).........然后快速不断循环这个过程,最终实现同时可以读取所有按键。
矩阵键盘原理解析
矩阵按键和独立按键的相同点:
独立按键是将所以按键的一端连接在GND,另一端连接在I/O口端。
矩阵按键如果说我们拿出一行来,S1,S2,S3,S4按键的一端都连接在GND,另一端都连接在相应的I/O口端,我们就可以看出矩阵键盘跟独立按键是一摸一样。
矩阵键盘扫描:
1.如果我们扫描第一行,我们就将P17接GND,然后判断另一端的状态,如果P1_3==0,那么证明S1按下,同理如果P1_2==0,那么证明S2按下。如此我们就可以实现第一行得到判断。
2.如果我们要扫描第二行,我们只需P1_7=1,P1_6=0,P1_5=1,P1_4=1。我们就可以扫描第二行,然后我们判断另一端的状态,同上面一样,如果P1_3==0,那么证明S5按下,同理如果P1_2==0,那么证明S6按下。如此我们就可以实现第二行得到判断。
3.剩余两行也是按照上述所进行,也就不多称述。
以上是逐行扫描的方式,但由于开发板内部电路的连接问题,逐行扫描会出现问题,P15会出现一会高电平一会低电平。
所以我们一般采用逐列扫描的方式,给P10,P11,P12,P13赋值,然后读取P17,P16,P15,P14.