由图可见最大的下冲幅度达到了-1.66 V,该电平远超出单片机的电压范围。根据式(9)可计算得到按键断开时充电时间常数为348.258 7 ns,信号上升时间为766.17 ns。图7为在示波器上观察到的按键断开瞬间时域响应。为消除按键抖动,滤波电容越大越好,但电容增大将增大信号的上升时间。为不影响按键电路的正常功能,需将上升时间控制。在0.5 ms以内。为此可得到当上拉电阻为10 kΩ时滤波电容的最大值为22.85 nF,上拉电阻为1 kΩ时滤波电容的最大值为227.38 nF。
当滤波电容为227.38 nF时,ξ值为0.275 9,ξ值小于1,当按键闭合时依然会有衰减振荡,此时的衰减振荡频率为1.849 8 MHz,下冲峰值约为-1.34 V,下冲持续时间约为271 ns,R=1 kΩ,Cf=227.38 nF。
由于下冲持续时间较长,危害性也将增大。图9为R=1 kΩ,滤波电容为227.38 nF时的按键闭合瞬间时域响应波形。图10为R=1 kΩ,滤波电容为220 nF时在示波器上观察到的按键闭合瞬间时域响应波形。
因此,单靠增加电容来进行滤波的方法是行不通的,由式(7)可知,增大R0可以显著增加ξ,为此可以在按键导线上串接电阻。在最终的按键消抖电路设计中,串接电阻选为100 Ω,滤波电容为8.2 nF。此时ξ为26.117 7,彻底消除了振荡,此时的充电时间常数T为81.94 μs,上升时间为180.268 μs。图11为整个按键消抖电路的按键闭合和按键断开瞬间的时域响应波形仿真。图12为整个按键消抖电路的按键闭合和按键断开瞬间的实测时域响应波形。图13为一次按键按下实测完整波形。图14为最终的按键消抖电路。由图12可见,按键闭合时没有过冲,按键断开时上升时间小于0.5 ms。由图13可见,在按键按下和松开之间的过程中,抖动已被消除,而且完全不影响按键电路的正常功能。
5 结 语
本文分析了软件消抖电路中存在的不足,指出了软件消抖存在输出信号下冲电平超出后续数字芯片输入电平范围容易危害数字芯片,提出了按键闭合时信号下降速度过快易引起容性串扰。针对软件消抖电路的不足,本文分析了硬件消抖电路,建立了数学模型,仿真并实测了按键消抖电路的时域响应。针对硬件消抖电路中仅使用滤波电容消除按键抖动的方法,通过仿真和实测阐述了该方法反而会导致下冲持续时间更长,对后续电路危害性大。
针对该问题,本文分析计算了在按键导线中串接电阻以消除下冲,仿真并实测了整个硬件消抖电路的瞬时响应,实测了硬件消抖电路按键按下和释放整个过程的时域波形,消除了按键抖动和下冲。
参考文献
[1] 王效东.按键消抖的软件处理新法[J].自动化与仪表,2000,15(2):68?69.
[2] 邢自茹,史明健.FPGA开发中按键消抖与单脉冲发生器电路[J].现代电子技术,2009,32(21):171?172.
[3] 谷长龙,李小英.基于 FPGA 器件的消除按键抖动方法研究[J].吉林化工学院学报,2006,23(3):53?55.
[4] 秦国栋.有限状态机的嵌入式Linux按键驱动设计[J].单片机与嵌入式系统应用,2010(4):3?5.
[5] 徐彩霞.新型非编码式键盘扫描方法研究[J].苏州市职业大学学报,2010,21(001):26?28.
[6] 晓峰.一种新颖的键盘消抖电路[J].微型机与应用,1987(2): 13?15.
[7] 李运兵.微控制器中按键处理技巧及应用[J].计算机系统应用,2010,19(2):195?197.
[8] 汤晓君,刘君华,梁鸿生.MCS系列单片机P1口键盘显示功能的实现[J].仪表技术与传感器,2002(11):27?29.
[9] 姚有峰.单键编码锁[J].电子技术,1991(4):40?42.
[10] 高培先.一种独立式键盘电路及其中断程序设计[J].计算机测量与控制,2008,16(3):373?375.
相关专题:天津市滨海新区政务网 企业财务管理问题