本发明专利技术公开了一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,首先对上升沿的时间段设一个预定值;开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令;综上所述,本发明专利技术的技术方案可保证系统程序流畅的运行,实时性好,快速高效的处理并发事件,在实时多任务的嵌入系统中能发挥很好的作用,达到既延时又不误时的效果,保证准确有效的辨认开关信号。
【技术实现步骤摘要】
本专利技术涉及各类控制系统中开关控制领域,具体涉及一种。
技术介绍
在各类控制系统中,多数开关使用机械弹性开关,当机械触点断开、闭合时,电信号波形是抖动的。开关按下、释放时在上升沿及下降沿都有电信号抖动,抖动期间电平状态是不确定的。在各类控制系统中,若输入开关量较多常采用软件延时消抖的办法,即查询到有开关量变化时执行一段延时20ms的子程序。此类传统的方法弊端较多,一是单片机在运行这 20ms的延时子程序时,不再执行其它任何指令,浪费掉CPU大量时间,若系统需查询的开关数量多,从十几个到几十个不等,则查询开关时需耗时0. 2S以上,效率大大降低,系统的实时性差;二是在一些时序控制复杂、并发事件多、动作条件多的情况下,有可能造成漏检开关信号,导致系统不能正常工作,从而降低系统的可靠性。
技术实现思路
本专利技术克服了现有技术的不足,提供一种,使得单片机在运行20ms的延时子程序时,可再执行其它任何指令,不会浪费掉CPU的时间;在一些时序控制复杂、并发事件多、动作条件多的情况下,也不会造成漏检开关信号、导致系统不能正常工作的情况,从而提高系统的可靠性。为解决上述的技术问题,本专利技术采用以下技术方案第一种,开关触点断开或闭合时只有上升沿的情况下一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿,通过对上升沿的判定,来确定是否执行开关触点断开或闭合的命令;首先对上升沿的时间段设一个预定值;对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定; 在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。第二种,开关触点断开或闭合时只有下降沿的情况下一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括下降沿,通过对下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;首先对下降升沿的时间段设一个预定值;对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定; 在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下, 判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。第三种,开关触点断开或闭合时包括下降沿和上升沿的情况下一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿和下降沿,其特征在于通过分别对上升沿和或者下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;首先对上升沿的时间段和下降沿的时间段都设一个预定值;对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定; 在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下, 判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。为了更好的实现上述消抖的方法,下面作出进一步的技术改进作为优选上述计时器的计时方式是通过单片机内的定时器和计数器进行的,先设定定时器的时钟时基,单片机运行时,定时器每定时一个时钟时基就产生一次中断,中断服务程序中计数器就加1,计时时间等于计数器的累加数乘以时钟时基。作为优选上述时钟时基为10ms。作为优选上述上升沿/下降沿时间段的预先设定值为20ms。作为上述方法的实现手段之一,下面公布一种开关消抖系统一种开关消抖系统,包括定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,计时器的计时时间大于或者等于预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号是否为高电平,在为高电平的情况下进入上升沿判断模块;上升沿沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由低电平到高电平,确认是由低电平到高电平的情况下则执行开关的通断命令。作为上述方法的实现手段之二,下面本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:李国军,
申请(专利权)人:四川泛华电器有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。