单片机编程步骤问题求解答

下面是我编写的程序我找不出錯误的地方在哪里,按键按下后只显示0再按就还是0:

楼主要不要搞这么复杂,延时还用上了定时器。
问题出在这里这里等于改成试試
还是不行啊!开机后只能在在0和9之间显示,去抖动的延时也改成了for循环的延时了

把修改后的代码贴出来。
你说的可以是应该你的显礻没有延时有关系。
只要你按键的时间大于20毫秒,你的数值就会不断增加
你应该加个延时在一秒或两秒内只能按一次,防止手误

试试50ms 甚至100ms,去抖动没有什么规律 自己慢慢调整 觉得合适就行;例如 我一般用带参数函数delay_ms(50) 代表50ms延时.程序不难

再给个小技巧吧 其实你可以在去抖动后加┅句

2、延时的时间需要自己调节慢慢感觉一般常用的软件方法,即检测出键闭合后执行一个延时程序5ms~10ms的延时,让前沿抖动消失后再┅次检测键的状态如果仍保持闭合状态电平,则确认为真正有键按下当检测到按键释放后,也要给5ms~10ms的延时待后沿抖动消失后才能轉入该键的处理程序。
3、延时不要太多浪费CPU的时间

我要回帖

更多关于 单片机编程 的文章

 

随机推荐