要搞明白消抖,就得先知道按键的性质:假设未按键时输入电平为1,按键输入电平为0.那么一次按键的输入电平为1——0——1的顺序,其中电平突变的地方存在抖动,手动按键时间一般在100ms以上。所谓消抖,就是为了消除这部分抖动造成的影响。
消抖方法分为两种:硬件消抖和软件消抖。硬件消抖就是做一个积分滤波器(简单的做个RC电路就行),滤除剧烈的抖动;软件消抖的话,原理就是不断检测,如果检测到按键信号输入,延时一段时间(如20ms),这段时间就避过了抖动期,然后再进行检测,如果还有按键信号,那就是有按键;如果没有按键信号,那就判断无按键输入。
分别在前沿和后沿检测,建议以8次为基准,去比较,如果检测后相等,那么送出数据,如果不相等,让他在检测一次