此模块功能较为简单,查阅原理图后引脚标识如下:
相关引脚接在了单片机的P1端口并由电阻接在高电平VCC,则其IO口默认为高电平,按键检测判断需要判断其为是否为低电平判断按下。
由于按键在人手按下后会出现毛刺,也就是抖动误差,电平来回跳动不稳定,在后续实现计数功能时会出现多次计数,所以要进行软件消抖,最方便的是进行Delay函数的直接延时。也可以利用定时器和标志位的结合形成延时效果,如后续代码所示。
由于逐行扫描会产生引脚冲突,具体情况不在此讲述,我们只需记住采用逐列扫描即可。(下图注释有一些错误)
键按下时返回的就是我们需要的相应键码。
此函数我们推荐模块化编程,放在主函数中不利用功能函数的编写,也会显得杂乱,逻辑不清晰。