为什么我用郭天祥的单片机按键程序,按一下会加两次,吴鉴鹰老师的就很稳定啊,我是学生。

为什么我用郭天祥的单片机按键程序,按一下会加两次,吴鉴鹰老师的就很稳定啊,我是学生。,第1张

程序问题,把按键消抖的延时时间加大即可,并且要检测按键是否抬起

if(key==0)

{

 delay_ms(20)//延时,可加长至40ms

 if(key==0)

 {

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

a++

 }

}

while(m != 0xf0) //注意这里没有分号

{ // while(P0 != f7) 不就可以了么?

m = P0 //这不就表示已经回到初始值,按键已经起来了么?

m = m &0xf0

}

----

while(P0 != f7)//这仅仅是检测一个按键。

如果还有其它按键按下,还是应该等待一下。

最好是:

while(P0 &0xf0 != 0xf0)//这就可以代替上面的四行,还能节省一个变量。

----

原来的程序,共有四个部分,连续的、依次执行。

其实,如果在第一个部分,就检测到了按键,后面的三个部分,就不应该再执行了。

判断按键释放的程序段,在每个部分都有。

其实,在最后,用上一个,即可。

他的这个程序,在逻辑上,是有错的,不用细看了。


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

原文地址: http://outofmemory.cn/yw/8064714.html

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

发表评论

登录后才能评论

评论列表(0条)

保存