51单片机4*4矩阵键盘如何同时实现单击+双击的功能?

51单片机4*4矩阵键盘如何同时实现单击+双击的功能?,第1张

一般地,我们的键盘检测都有一个按键码存储字节,一般情况下,只要检测到有效按键,那么这个存储字节的按键码就有效,也就是单击。何为双击呢?双击就是在监测到该按键后在该按键要有作用(这个作用就是单击)之前又检测到该按键,然后就当作了双击。那怎么实现这一判断呢?我们只要加一个软计数器,当检测到有效按键后,该计数器开始向下计数,如果计数器自然减到了0那么就是单击生效;如果在该计数器值没有减到0之前又检测到该按键,那么就是双击立马有效同时计数器归零。这个计数器肯定是ms级的,也就是要在定时器里工作,只要它不为0,那么定时器中断服务就对它减1 *** 作,因此计数器本身同时就是一个开关量,而触发它的是检测到有效按键。

unsigned char i

while(!P3.2)//按键名堂自己定义,高/低电平有效你没说,权当低电平有效

delay(50)//按键去抖动50毫秒

if(!P3.2)while(!P3.2)//等待按键释放

else return//按键抖动返回

for(i = 20i>0i--)//等待按键再次按下,最多等待200毫秒

{

delay(10)//延时10毫秒

if(!P3.2)

{

delay(50)//按键去抖动50毫秒

if(!p3.2)......//去处理按键双击事件

}

}

//等待超时,判定仅有1次按键动作,结束按键检测


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8087917.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存