接下来到了第四部分:矩阵键盘。我们在前面的学习中可能会发现一些问题,单片机中能够显示信息的部分似乎只有数码管,但是数码管只能够显示很少的一部分信息。所以我们进一步将液晶显示屏连接在单片机上,以扩大信息量的输出。
其实从本质上来说,矩阵键盘与独立按键极其类似。不管从电路连接,还是从工作原理来说,矩阵键盘都可以简化为独立按键来使用,而按键信息的读取也是通过扫描的方式来进行的。下面是矩阵键盘的电路图:
经过独立按键的学习,我们已经大致知道了如何扫描每一个按键,根据上面的电路图我们有按行扫描和按列扫描两种方式。但是由于开发板的电路连接问题,我们采用按列扫描。
在编写代码时,笔者用到了模块化编程,以及LDC1602代码库(以重置液晶显示屏以及显示相应数字)。
为了使代码不那么冗长,我们可以先建立关于扫描独立键盘的.c与.h两个文件:
在完成以上操作后,我们就可以进行具体操作代码的实现了:
我们需要注意的是,在LCD_ShowNum外层需要嵌套一层if函数,如果不套用,KeyNum的值会快速刷新为0,就会导致液晶显示屏上的数字不会发生变化。
下面是实验现象:
矩阵键盘
以上就是第四章有关矩阵键盘的内容了,本文中的部分代码来自于:B站江协。
希望可以帮助到大家!