单片机51,出现按一次按键,得到多次按键的情况,怎么解决

 我来答
zhxiufan
推荐于2018-03-21 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38375
国家科技进步奖

向TA提问 私信TA
展开全部

单片机51,出现按一次按键,得到多次按键的情况,是由于没有做“消抖”处理的结果,在软件上做一些延时消抖处理后,一般就可以解决这个问题。比如:

keyscan()
{
if(key==0)// 当按键按下
    {
    delay(10);//延时消抖
    if(key==0)//如果按键任然按下
        {
        while(key==0);//等待按键抬起
        .......
        }
    }
}
Mr_wjc
2012-05-20 · TA获得超过109个赞
知道答主
回答量:65
采纳率:0%
帮助的人:75.3万
展开全部
在检测到按键时,延时10ms,再次检测,如果仍然检测到按键按下,才能说明有按键按下;
在按键检测函数结束时,添加等待按键释放程序,如while(key_valve!=0);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Smart_wolf
2012-05-19 · TA获得超过1696个赞
知道小有建树答主
回答量:1468
采纳率:50%
帮助的人:629万
展开全部
if(key==0)
{
delayxms(15);//消除抖动
if(key==0)//再次判断
{
while(key==0);//等待按键释放
//这里添加按键按下释放后的执行代码。
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式