单片机51,出现按一次按键,得到多次按键的情况,怎么解决
答案:3 悬赏:40 手机版
解决时间 2021-01-09 05:12
- 提问者网友:暗中人
- 2021-01-09 00:58
单片机51,出现按一次按键,得到多次按键的情况,怎么解决
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-01-09 01:14
单片机51,出现按一次按键,得到多次按键的情况,是由于没有做“消抖”处理的结果,在软件上做一些延时消抖处理后,一般就可以解决这个问题。比如:
keyscan()
{
if(key==0)// 当按键按下
{
delay(10);//延时消抖
if(key==0)//如果按键任然按下
{
while(key==0);//等待按键抬起
.......
}
}
}
keyscan()
{
if(key==0)// 当按键按下
{
delay(10);//延时消抖
if(key==0)//如果按键任然按下
{
while(key==0);//等待按键抬起
.......
}
}
}
全部回答
- 1楼网友:野味小生
- 2021-01-09 03:26
if(key==0)
{
delayxms(15);//消除抖动
if(key==0)//再次判断
{
while(key==0);//等待按键释放
//这里添加按键按下释放后的执行代码。
}
}
{
delayxms(15);//消除抖动
if(key==0)//再次判断
{
while(key==0);//等待按键释放
//这里添加按键按下释放后的执行代码。
}
}
- 2楼网友:你可爱的野爹
- 2021-01-09 02:46
在检测到按键时,延时10ms,再次检测,如果仍然检测到按键按下,才能说明有按键按下;
在按键检测函数结束时,添加等待按键释放程序,如while(key_valve!=0);
在按键检测函数结束时,添加等待按键释放程序,如while(key_valve!=0);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯