大略先容一下矩阵键盘,实际运用中,正常一个按键须要占用一个IO,我们为了节省IO资源,于是把多个按键做成矩阵键盘的形式。如一个4x4的矩阵键盘,只须要8个IO口就可以了,每个按键有它的行值和列值,行值和列值的组合便是识别这个按键的编码。
单片机通过不断扫描IO口的办法,反馈回来8个IO的实时状态,当有按键按下时,IO口的状态改变,通过比拟就能识别是哪个按键按下了。
下面通过Arduino连接矩阵键盘和1602液晶,把键盘按下键值在液晶上显示出来,事理图的连接如下图.

硬件事理图
2.程序解读算法描述:
Arduino的矩阵键盘的驱动的是库函数的形式,直接调用库的键盘配置函数和扫描函数,对键盘识别,以是Arduino的库函数利用起来还是挺方便的。
矩阵键盘的扫描实在跟按键掌握的算法有点类似,首先是读取按键扫描回来的按键,当返回来键值之后再在LCD1602上显示,并不难哦。由于1602一行只能显示16个字符,以是当显示满了之后要做换行处理,同样,液晶两行都显示满了之后,须要清屏刷新再连续显示键值。
实在这种按键扫描是基于循环查询的方法的,扫描的过程比较占用CPU韶光,比较好点的处理方法是用状态机的方法实现。只管即便减少键盘查询过程对 cpu 的占用韶光
LCD1602的显示以前文章有先容过了,这里就不多先容。
代码解读:
详细的代码解读请看注释
3.实物效果
实物连接图如下,当按键按下时候,对应的键值会在LCD1602上显示出来。
实验动态效果图如下:
欢迎点赞和转发,关注头条号:奔跑的晶体管 可以学到更多的电子知识哦。