51单片机矩阵键盘

文章介绍了单片机中按键检测的原理,按键通过连接到P1端口并由电阻拉高至VCC,常态为高电平。当按键按下时,检测低电平进行判断。由于按键按下时可能出现抖动,需通过软件消抖,如使用Delay函数或定时器结合标志位来避免多次计数。推荐使用模块化编程以保持代码清晰。在扫描方法上,选择逐列扫描以避免引脚冲突。
摘要由CSDN通过智能技术生成

此模块功能较为简单,查阅原理图后引脚标识如下:

相关引脚接在了单片机的P1端口并由电阻接在高电平VCC,则其IO口默认为高电平,按键检测判断需要判断其为是否为低电平判断按下。

由于按键在人手按下后会出现毛刺,也就是抖动误差,电平来回跳动不稳定,在后续实现计数功能时会出现多次计数,所以要进行软件消抖,最方便的是进行Delay函数的直接延时。也可以利用定时器和标志位的结合形成延时效果,如后续代码所示。

 由于逐行扫描会产生引脚冲突,具体情况不在此讲述,我们只需记住采用逐列扫描即可。(下图注释有一些错误)

键按下时返回的就是我们需要的相应键码。

此函数我们推荐模块化编程,放在主函数中不利用功能函数的编写,也会显得杂乱,逻辑不清晰。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值