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次按键动作,结束按键检测
这个一般是经验值,可这样判断:连续两次击键间隔时间超过500ms,则视为单击,否则视为双击按键。去抖动时间一般使用30ms。如果按键质量不太好,时间可以加倍。可以选择几组参数然后实践一下看看手感。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)