允许按钮触点抖动的场合
按钮在数字电路的清零、置数、复位、单稳态触发等场合使用,不会导致电路异常,例如在图1和图2中的应用。图1中,按下按钮SB就可对CD4017清零,不会出现异常结果。图2中,用按钮SB1~SB4向四锁存D型触发器CD4042置数,也会有相应的发光管被点亮:如果按下按钮SB3,则IC的13脚数据D3端和5脚CP端均出现高电平,这时数据端D3的状态传输给输出端11脚Q3,发光管LED3点亮;松开SB3后,IC的5脚CP端变为低电平,11脚Q3的状态被锁存,LED3继续发光,指示置数成功。图2电路中操作按钮SB3时触点的抖动没有影响置数结果的正确出现。有关CD4042的更详细资料,包括管脚排列、真值表等信息可参阅本刊2004年第11期《D型触发器及其应用》一文。


不允许按钮触点抖动的场合
在CMOS 4000系列数字集成电路中,有一类器件是计数器,常用的有十进制计数/分配器CD4017、可预置数可逆计数器CD4029、可预置数4位二进制加/减计数器CD4516等,这些计数器的计数输入端是CP,每当CP端接收到一个脉冲上升沿(或下降沿,因器件型号或电路设置不同而异),其计数结果即加1。显然,在计数器电路中按压一次用于计数的按钮,因为触点抖动,可能会出现不确定的计数结果。例如,在图3电路中,假定初始状态时Q1为高电平,发光管LED1亮,而按一次按钮SB后,我们希望LED2亮,但实际结果却可能是LED5亮。大量电路实验和产品开发的实践证明了这一事实的存在。那么有没有办法解决这一问题呢?答案是肯定的。

按钮触点防抖动电路
所谓按钮触点的防抖动,实际上是将操作按钮时由于抖动而产生的多个窄脉冲转化成一个宽脉冲,这个脉冲的宽度应大于操作按钮的持续时间。这里的所谓“防”,并没有也不可能消除按钮触点的抖动,而是防止了它对后续计数电路的误触发。这种脉冲展宽电路可由或非门电路、与非门电路、555时基电路、D触发器或施密特触发器等电路来实现。图4~图7给出了四种实用的脉冲展宽电路,这些电路都具有单稳态的特性,将这些电路的Vo端与图3电路的CP端连接(图7的Vo端须与图3的EN端连接,并将CD4017的CP端连接到+12V上),删除图3中的按钮SB和电阻R1,即可实现正常的计数功能。图4~图7中脉冲输出的宽度tw可在100ms~500ms之间选择确定,下面简要介绍各电路的工作过程。图4电路在静态时输出端Vo为低电平,放电端7脚也是低电平,电容器C两端无电压,触发按钮SB后,Vo变高,出现上升沿,同时,放电端7脚关闭,电容C经电阻R充电,当充至2/3VDD时,输出端Vo变低,电容C经7脚放电,等待下次触发。图5电路中的按钮SB被触发后,Vo变高,电容C经电阻R充电,当充至CD4013的清零阈值电平时,Vo恢复低电平。图6是由施密特触发器CD40106为主控元件的脉冲展宽电路,静态时IC的2脚为高,4脚为低,触发按钮SB后,IC的2脚变低,电容C经2脚快速放电,4脚Vo出现脉冲上升沿。松开按钮SB后,IC的2脚变高,电容C经电阻R充电,当电容C上电压达到施密特电路的正向触发阈值VT+时,输出端Vo变低。图7中的集成电路是四2输入与非门CD4011,静态时3脚低,4脚高,触发按钮SB后,4脚Vo变低,之后随着电容C的充电,Vo又恢复为高电平。




文/杨德印