按一定的时隙间隔(比如20ms)读按键,不需要软件延时(现在的MCU延时20ms则超过40万条指令时间被耗掉),比较前后两次读键状态相等则有效,强干扰场合还可以回溯前几次的值。 |
按下的时候消抖, 松开的抖动不会触发按键按下, 没有必要重复检测 |
lkc8210 发表于 2022-12-28 09:41 大佬,我能再问几个51单片机的问题嘛 |
名字不是重点 发表于 2022-12-28 11:38 谢谢 |
univers 发表于 2022-12-28 10:16 谢谢 |
lkc8210 发表于 2022-12-28 09:41 谢谢!我下次注意! |
TTQ001 发表于 2022-12-28 01:43 谢谢! |
定时器最好了 |
delay(20); 再判断 按键是否按下 这种就是 传统的软件消抖。 如果是硬件消抖的话,直接在按键两端并联一个100pf的电容即可。 |
延时消抖是最简单的课本实例,实际用状态机等方式,不占用运行时间。 |
参考地板的图,很清楚地说明了一件事,放开按键时的抖动会被按键按下时的去抖动代码捕捉,被判为无效按键,所以放开按键时,只要放开了,就是确认放开了,不必再去抖了。如要你要计算按键时长则另说。 |
上面不是逍抖了一次么。。。。。。。。!!! |
这应该由程序员完成,键盘输入去抖动应该一直实施。 |