消抖动电路(一)
消除抖动电路
图中的做法是,先将按键的信号,引致Key脚,其中CP是电路的时钟脉冲信号(应视为取样信号,约为8ms左右)。Key信号经过两级的D触发器延迟后,然后用RS触发器处理。
此处RS触发器前端连接与非门的处理原则是:
1、因为一般人的按键速度至多是10次/秒,即一次按键时间是100ms,所以按下的时间可估算为50ms。以取样信号CP频率为8ms,则可取样到6次。
2、对于不稳定的噪声在4ms以下,则之多之抽样一次。
3、上述RS触发器之前接上AND-NOT之后,则SR的组态仅有:
S |
R |
DLY_OUT |
0 |
0 |
不变 |
1 |
0 |
1 |
0 |
1 |
0 |
即D0为1,且D0也为1时,结果S=1,R=0,DLY_OUT才会输出1.这代表被取样的Key信号,能被连续取样两次1,所以认定他已是稳定的按下按钮。
同理D0为0,且D0也为0时,结果S=0,R=1,DLY_OUT才会输出0.这代表被取样的Key信号,能被连续取样两次0,所以认定他已是稳定的放掉按钮。
同理若是D0为1,且D1为0,结果S=0,R=0;DLY_OUT将维持先前的输出不变。
D0=0,D1=1也是如此。
总之,必须取样到两次1才会输出1,两次0才会输出0.
不过由于电子时钟的消除抖动,是为了作时间计数,所以纵使消除之后的图中的DLY_OUT信号输出可能时间宽度过长,而导致计数1次以上的错误发生,所以加一级微分电路。
注意:1、抖动消除电路所使用的脉冲信号的频率必须比其它电路使用的脉冲信号的频率高;通常将扫描电路或LED显示电路的工作频率定在24Hz左右,将抖动消除电路的工作频率定在128Hz左右,两者的工作频率是通常的4倍或更高。
2、要求信号的稳定时间可以由D触发器的个数和CLK时钟来决定。
消抖动电路(二)
其实和上面的原理是一样的,都是通过每个脉冲上升沿取样,连续几次取到‘1’才输出‘1’,连续几次取到‘0’,才输出0.
详细代码下载: VHDL 4*4键盘扫描 http://download.csdn.net/source/935493
VHDL键盘消抖动电路原理图 http://download.csdn.net/source/888299