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

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

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

keyscan()

{

if(key==0)// 当按键按下

    {

    delay(10)//延时消抖

    if(key==0)//如果按键任然按下

        {

        while(key==0)//等待按键抬起

        .......

        }

    }

}

例如A B C键,每个按键用一个数字代码表示,如51,52,53。每次有按键按下时,将按下键的代码存入数组变量,每次存在递增一位变量里。然后再比较数组里的每一个数和你想要的顺序是否一样 如果你想按下的顺序是BCA,那么最后的判断是否符合的语句就是if( (i[0]==52)&&(i[1]==53)&&(i[2]==51) )

{

//添加符合要求顺序时执行的代码

}

else

{

//添加不符合时执行的代码

}


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

原文地址: https://outofmemory.cn/yw/12021072.html

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

发表评论

登录后才能评论

评论列表(0条)

保存