打印

传说中的按键抖动真的存在吗

[复制链接]
14870|58
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我今天用示波器做了一下测试,把一个按键一端接地,一端接了5K的电阻,然后接了5V电源,测的图象是附件这般,一般单片机可能就10M级的主频,这里我们可以看到取的一格是100ns,而且没有明显的抖动,为了更进一步测试,我用51的单片机写了如下程序
main()
{
  bit t=0;   
  while(1)
  {      
   if(!KEY)
   {
       if(!t)
        {
         LED=~LED;
      t=1;
     }
   }
   else
   {
       t=0;
   }
   
  }
}
这个程序没有任何延时,只不过保证每次按键按下,必须再弹起时再按下才会有效果,
测试结果是,如果稳定按下按键,再松手,灯可以自锁,如果按得快,会发生有可能与预计不符的情况,我很怀疑大家常说的30us左右的抖动是否由于工艺的改进已经不存在了呢,下次换一个按键试一下

捕获.PNG (785 KB )

捕获.PNG

相关帖子

沙发
NE5532| | 2011-8-23 22:37 | 只看该作者
给楼主2个问题:

1.你示波器探头打的1x还是10x,有没有想过那个圆头钝脑的
波形是怎么来的?

2.你用的什么开关测的?开关资料给出的弹跳时间是多少?

可以明确答复楼主,弹跳是有的,你自己没测对而已。

使用特权

评论回复
板凳
wister0523|  楼主 | 2011-8-23 22:43 | 只看该作者
2# NE5532
从图上也可以看出来用的是X1,至于开关的标称,我自己也不知道,我而且还做了从10ns到1ms好几次实验,除了按键没换外,只不过没有传图,没有明显的抖动,虽然会有些波动,但是电平变化幅度极低,而且是负向的,不会影响单片机的判断

使用特权

评论回复
地板
zbb564833642| | 2011-8-23 22:59 | 只看该作者
路过

使用特权

评论回复
5
highgear| | 2011-8-23 23:02 | 只看该作者
确实存在。

早期的按键很多是机械弹簧式,开关行程较长,而且触点由于工艺原因平整光滑度不足,导致抖动甚至产生电弧。而今工艺和材料的进步,使得抖动极大的减少。

用不同类型的按键用示波器可以观察到。

使用特权

评论回复
6
wzt19910506| | 2011-8-23 23:15 | 只看该作者
绝对是有的…

使用特权

评论回复
7
Chaos_zc| | 2011-8-23 23:22 | 只看该作者
绝对有的。

使用特权

评论回复
8
hotpower| | 2011-8-23 23:25 | 只看该作者
打死都有,不怕死的不去抖~~~

使用特权

评论回复
9
程序匠人| | 2011-8-23 23:51 | 只看该作者
楼主的独立思考和探索精神值得鼓励。不过按键抖动这个事情,依我看,这个可以有,而且肯定有。

另外提醒楼主一点:新按键和旧按键的特性也是不一样。随着时间的推移,抖动会变得跟严重。所以我们在设计时,不但要去抖,而且要放出时间余量,以对抗岁月的侵蚀。这也就是为什么明明设计时1ms去抖时间足够而我们却要设置10ms去抖时间的原因。

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
effx + 1
highgear + 1
10
highgear| | 2011-8-24 00:00 | 只看该作者
顶程序匠人。

我吃过一个大亏,由于导电橡胶磨损,接触电阻大增而导致某产品按键开机电路不工作,损失惨重。

使用特权

评论回复
11
hys0401| | 2011-8-24 07:24 | 只看该作者
肯定有。个别没有不代表所有的都没有。

使用特权

评论回复
12
NE5532| | 2011-8-24 07:51 | 只看该作者
哈哈,这次连匠人都被忽悠进去了。楼主啊,我明知故问都没把你提醒到。示波器1x探头有12pF的电容,你波形边沿圆头顿脑的,一看就有电容充放电过程,开关种类和新旧影响跳动时间,比如新的cherry专用的键盘开关,可能在uS级才能看到跳动,烂开关可能就到mS级去了。

表扬一下楼主的探索精神,只是还要多对细节动脑筋。

使用特权

评论回复
13
redcar| | 2011-8-24 08:16 | 只看该作者
1个抖抖引出大仙无数

使用特权

评论回复
14
aihe| | 2011-8-24 08:27 | 只看该作者
楼主真的不信邪,我做的实验,用一电阻串入按键,连续按,得到的图你看看吧
原来是准备给某些人的,不愿意激化矛盾所以没发

使用特权

评论回复
15
ayb_ice| | 2011-8-24 08:28 | 只看该作者
那可不是传说

使用特权

评论回复
16
t.jm| | 2011-8-24 08:52 | 只看该作者
抖动已有只是LZ不知道解读而已!
1)"如果按得快,会发生有可能与预计不符的情况"-->这就是抖动的结果啊!
2)也不是示波器电容的问题,而是你看的是下降沿,这根边沿是不会抖动的,而且抖动的时间不可能达到nS级。一般的抖动不会是你没按它会抖为闭合,而是你明明按下了它会断开,结果就是0电平时间会出现1再又为0。
14L才是捕捉抖动的正确方法,不管示波器在哪一X都能捕捉到。

使用特权

评论回复
17
wister0523|  楼主 | 2011-8-24 09:09 | 只看该作者
12# NE5532 有电容,这个我真不了解,不过我又去做了实验,如果稳定按下按键而不急于弹起,那么按下时的可以接收,如果快速按下,那么有时候会有些抖动,大部分时间的抖动可以接收。真正的影响是快速按下弹起时,抖动会比较严重,去抖应在这里注意。但如果你按得稳一些,不加去抖也可用,我的程序证明了这一切,只不过用户体验会差一些

使用特权

评论回复
18
joblook| | 2011-8-24 09:14 | 只看该作者
刚出道时碰到按键抖动,相当厉害,找了很多方法都不是很好,之后加了多次判断才解决问题

使用特权

评论回复
19
aihe| | 2011-8-24 09:23 | 只看该作者
12# NE5532  有电容,这个我真不了解,不过我又去做了实验,如果稳定按下按键而不急于弹起,那么按下时的可以接收,如果快速按下,那么有时候会有些抖动,大部分时间的抖动可以接收。真正的影响是快速按下弹起时, ...
wister0523 发表于 2011-8-24 09:09

你不会去教每个用户按你的方式按按键吧
还有你去找个旧的按键试试

使用特权

评论回复
20
lh8008| | 2011-8-24 09:30 | 只看该作者
确实存在。

早期的按键很多是机械弹簧式,开关行程较长,而且触点由于工艺原因平整光滑度不足,导致抖动甚至产生电弧。而今工艺和材料的进步,使得抖动极大的减少。

用不同类型的按键用示波器可以观察到。 ...
highgear 发表于 2011-8-23 23:02
一语中的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝