按键抖动的处理方法(按键外部中断)

当把按键设为外部中断时,存在按键抖动问题:

  1. 一种情况是没有按按键的时候,按键有时也会因为震动等原因误触发按键事件,引起程序误判。对于这种按键抖动,解决方式有:

    1. 并上一个小电容(比如0.1uF)即可解决。

    2. 延时检测:检测到按键中断后延时50ms判断这个引脚电平,然后再做进一步处理。

  2. 还有一种情况是按下按键时,由于按键本身的结构或质量问题、操作者的发力问题等,在操作者按下一次按键的过程中,实际上触发了数次按下-抬起的动作,引起程序误判。对于这种按键抖动,解决方式有:

    1. 延时检测:检测到按键中断后延时50ms判断这个引脚电平,然后再做进一步处理。

    2. 禁用中断:进入中断后禁用中断,处理完按键操作后再使能中断。这需要两个条件:没有按键行为时不会有中断发生;处理按键操作的时间足够长,长于一次按键操作的时间(大概是几百ms)。

  3. 总体来说,建议的解决办法是:

    1. 按键两端并联一个0.1uF电容,可以大幅度减少抖动发生

    2. 程序中添加延时检测:检测到按键中断后,过50ms左右检测引脚电平。

      1. 如果中断是检测按键按下:如果检测到高电平,说明刚刚发生了1型按键抖动,此次按键中断忽略不计;如果是低电平,可以判断发生了按键事件。另外,应在处理完按键事件后再清除按键事件标志,如此可以避免在处理过程中发生的2型抖动所引发的误判。

      2. 如果中断是检测按键抬起:如果检测到高电平,可以判断发生了按键事件;如果是低电平,说明刚刚发生了2型按键抖动,此次按键中断忽略不计,继续等待抬起动作。检测按键抬起时似乎难以判断1型按键抖动,不过并上电容后基本不会发生这种抖动。

 

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
应广外部中断按键电路是一种常见的路设计,用于检测外部按键的状态变化,并在按键按下或释放时触发相应的中断事件。以下是一个简单的应广外部中断按键电路的介绍: 该电路主要由以下几个组成部分构成: 1. 按键:外部按键是电路的输入设备,用于接收用户的操作。按键通常由两个触点组成,当按键被按下时,触点之间会闭合,导通电流;当按键释放时,触点会断开,中断电流。 2. 上拉电阻:为了确保在按键未按下时,输入引脚的电平稳定,通常会使用上拉电阻将输入引脚连接到高电平。上拉电阻的阻值一般较大,例如10kΩ。 3. 滤波电容:为了消除按键在按下或释放时可能产生的抖动或干扰信号,可以在按键引脚和地之间串联一个适当的滤波电容。滤波电容的容值一般选择几十至几百皮法拉(pF)。 4. 中断控制器:中断控制器是一个重要的组件,用于检测外部按键引脚的状态变化,并在按键按下或释放时触发相应的中断事件。中断控制器可以是硬件实现的,也可以是软件实现的。 当按键未按下时,上拉电阻将输入引脚连接到高电平,此时输入引脚处于逻辑高电平状态。当按键被按下时,触点闭合,导通电流,使得输入引脚的电平变为逻辑低电平。中断控制器会检测到这一状态变化,并触发相应的中断事件。用户可以在中断服务程序中编写相应的处理代码,以响应按键事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值