
一般地,我们的键盘检测都有一个
按键码存储字节,一般情况下,只要检测到有效按键,那么这个存储字节的按键码就有效,也就是单击。何为
双击呢?双击就是在监测到该按键后在该按键要有作用(这个作用就是单击)之前又检测到该按键,然后就当作了双击。那怎么实现这一判断呢?我们只要加一个软
计数器,当检测到有效按键后,该计数器开始向下计数,如果计数器自然减到了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次按键动作,结束按键检测
评论列表(0条)