CN102540940B - 开关消抖系统及其方法 - Google Patents

开关消抖系统及其方法 Download PDF

Info

Publication number
CN102540940B
CN102540940B CN2011104389570A CN201110438957A CN102540940B CN 102540940 B CN102540940 B CN 102540940B CN 2011104389570 A CN2011104389570 A CN 2011104389570A CN 201110438957 A CN201110438957 A CN 201110438957A CN 102540940 B CN102540940 B CN 102540940B
Authority
CN
China
Prior art keywords
situation
low level
high level
judgement
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2011104389570A
Other languages
English (en)
Other versions
CN102540940A (zh
Inventor
李国军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SICHUAN FANHUA ELECTRICAL CO Ltd
Original Assignee
SICHUAN FANHUA ELECTRICAL CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SICHUAN FANHUA ELECTRICAL CO Ltd filed Critical SICHUAN FANHUA ELECTRICAL CO Ltd
Priority to CN2011104389570A priority Critical patent/CN102540940B/zh
Publication of CN102540940A publication Critical patent/CN102540940A/zh
Application granted granted Critical
Publication of CN102540940B publication Critical patent/CN102540940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electronic Switches (AREA)

Abstract

本发明公开了一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,首先对上升沿的时间段设一个预定值;开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令;综上所述,本发明的技术方案可保证系统程序流畅的运行,实时性好,快速高效的处理并发事件,在实时多任务的嵌入系统中能发挥很好的作用,达到既延时又不误时的效果,保证准确有效的辨认开关信号。

Description

开关消抖系统及其方法
技术领域
本发明涉及各类控制系统中开关控制领域,具体涉及一种开关消抖系统及其方法。
背景技术
在各类控制系统中,多数开关使用机械弹性开关,当机械触点断开、闭合时,电信号波形是抖动的。
开关按下、释放时在上升沿及下降沿都有电信号抖动,抖动期间电平状态是不确定的。在各类控制系统中,若输入开关量较多常采用软件延时消抖的办法,即查询到有开关量变化时执行一段延时20ms的子程序。此类传统的方法弊端较多,一是单片机在运行这20ms的延时子程序时,不再执行其它任何指令,浪费掉CPU大量时间,若系统需查询的开关数量多,从十几个到几十个不等,则查询开关时需耗时0.2S以上,效率大大降低,系统的实时性差;二是在一些时序控制复杂、并发事件多、动作条件多的情况下,有可能造成漏检开关信号,导致系统不能正常工作,从而降低系统的可靠性。
发明内容
本发明克服了现有技术的不足,提供一种开关消抖系统及其方法,使得单片机在运行20ms的延时子程序时,可再执行其它任何指令,不会浪费掉CPU的时间;在一些时序控制复杂、并发事件多、动作条件多的情况下,也不会造成漏检开关信号、导致系统不能正常工作的情况,从而提高系统的可靠性。
为解决上述的技术问题,本发明采用以下技术方案:
第一种,开关触点断开或闭合时只有上升沿的情况下:
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿,通过对上升沿的判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段设一个预定值;
对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。
第二种,开关触点断开或闭合时只有下降沿的情况下:
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括下降沿,通过对下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;首先对下降升沿的时间段设一个预定值;
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
第三种,开关触点断开或闭合时包括下降沿和上升沿的情况下:
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿和下降沿,其特征在于:通过分别对上升沿和或者下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段和下降沿的时间段都设一个预定值;
对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
为了更好的实现上述消抖的方法,下面作出进一步的技术改进:
作为优选:上述计时器的计时方式是通过单片机内的定时器和计数器进行的,先设定定时器的时钟时基,单片机运行时,定时器每定时一个时钟时基就产生一次中断,中断服务程序中计数器就加1,计时时间等于计数器的累加数乘以时钟时基。
作为优选:上述时钟时基为10ms。
作为优选:上述上升沿/下降沿时间段的预先设定值为20ms。
作为上述方法的实现手段之一,下面公布一种开关消抖系统:
一种开关消抖系统,包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,计时器的计时时间大于或者等于预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号是否为高电平,在为高电平的情况下进入上升沿判断模块;上升沿沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由低电平到高电平,确认是由低电平到高电平的情况下则执行开关的通断命令。
作为上述方法的实现手段之二,下面公布一种开关消抖系统:
一种开关消抖系统,包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,在计时器的计时时间大于或者等于预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号为低电平,在为低电平的情况下进入下降沿判断模块;下降沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由高电平到低电平,确认是由高电平到低电平的情况下则执行开关的通断命令。
与现有技术相比,本发明的有益效果是:
本发明的一种开关消抖系统及其方法,该技术方案的基本思路是利用单片机的定时器产生10ms的时钟时基,在开关处理程序中嵌入20ms的延时判定,时间没到,继续执行系统的其它指令,时间到,则做相应开关处理;
单片机在运行这20ms的延时子程序时,可再执行其它任何指令,不浪费CPU大量时间,系统可查询的开关数量多,从十几个到几十个不等,效率大大提高,系统的实时性好;在一些时序控制复杂、并发事件多、动作条件多的情况下,也不会造成漏检开关信号,导致系统不能正常工作的情况发生,从而大大提高了系统的可靠性;
综上所述,本发明的技术方案可保证系统程序流畅的运行,实时性好,快速高效的处理并发事件,在实时多任务的嵌入系统中能发挥很好的作用,达到既延时又不误时的效果,保证准确有效的辨认开关信号。
附图说明
图1为本发明实施例1的流程图;
图2为本发明实施例2的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿,通过对上升沿的判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段设一个预定值;
对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。
上述计时器的计时方式是通过单片机内的定时器和计数器进行的,先设定定时器的时钟时基,单片机运行时,定时器每定时一个时钟时基就产生一次中断,中断服务程序中计数器就加1,计时时间等于计数器的累加数乘以时钟时基。
基于上述思想,下面通过列举具体参数对以上工作原理,做进一步的说明:
对于不同类型的开关触点断开或闭合时产生抖动电信号的时间段不一样,本实施例假设上述的开关触点断开或闭合时产生的抖动电信号的时间段为20ms,由于此处的开关没有下降沿,所以上升沿时间段的预定值即为20ms。
上述时钟时基设为10ms,那么单片机运行时,设定定时器每定时10ms就产生一次中断,在中断服务程序中计数器就加1,这样,时间=计数器的累加数×10ms,系统就知道具体时间段。
在判定开关电压信号是否由低电平向高电平变化的情况,可设定上升沿标志位。
上升沿标志位:1个内存单元变量为8位,标志位占其中的1位,标志位用于表示某一事件的状态是否出现,用1或0表示,在这里表示开关信号的状态,是低电平还是高电平,1表示低电平,0表示高电平。
在判定是否定时的情况下,可设20ms标志位。
20ms标志位,和上升沿标志位一样,在这里表示是否在定时20ms这一事件,为1表示在定时,为0表示没有定时。
对于是否执行开关触点断开或闭合的命令,可设定运行标志位。
运行标志位,和上升沿标志位一样,在这里表示开关的信号是否有上升沿这一事件,为1表示有上升沿,为0表示没有上升沿。
系统根据其状态来决定是否执行某一特定的功能。
参见附图1,首先判断20ms标志位是否等于1,在等于1的情况下,判断计数器是否大于2,即是否到20ms,在没有到20ms的情况下,退出上升沿的判定,在达到20ms的情况下,使20ms标志位等于0;再判断开关电压信号是否为高电平,在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次确认上升沿标志位是否等于1,在等于1的情况下,使运行标志位等于1,即执行开关触点断开或闭合的命令,在不等于1的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在20ms标志位不等于1的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,上升沿标志位等于1,并退出上升沿的判定;在为高电平的情况下,判断上升沿标志位是否等于1,判定为不等于1的情况下,退出上升沿的判定;在等于1的情况下,使计时器由零开始计时,20ms标志位等于1,并进入下一次对上升沿的判定。
在开关处理系统中,开关处理程序会对上述每个标志位的1或者0零进行引用,从而进行相应的开关处理。
实施例2
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括下降沿,通过对下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;首先对下降升沿的时间段设一个预定值;
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
上述计时器的计时方式是通过单片机内的定时器和计数器进行的,先设定定时器的时钟时基,单片机运行时,定时器每定时一个时钟时基就产生一次中断,中断服务程序中计数器就加1,计时时间等于计数器的累加数乘以时钟时基。
基于上述思想,下面通过列举具体参数对以上工作原理,做进一步的说明:
对于不同类型的开关触点断开或闭合时产生抖动电信号的时间段不一样,本实施例假设上述的开关触点断开或闭合时产生的抖动电信号的时间段为20ms,由于此处的开关没有上升沿,所以下降沿时间段的预定值即为20ms。
上述时钟时基设为10ms,那么单片机运行时,设定定时器每定时10ms就产生一次中断,在中断服务程序中计数器就加1,这样,时间=计数器的累加数×10ms,系统就知道具体时间段。
在判定开关电压信号是否由高电平向低电平变化的情况,可设定下降沿标志位。
下降沿标志位:1个内存单元变量为8位,标志位占其中的1位,标志位用于表示某一事件的状态是否出现,用1或0表示,在这里表示开关信号的状态,是低电平还是高电平,1表示低电平,0表示高电平。
在判定是否定时的情况下,可设20ms标志位。
20ms标志位,和下降沿标志位一样,在这里表示是否在定时20ms这一事件,为1表示在定时,为0表示没有定时。
对于是否执行开关触点断开或闭合的命令,可设定运行标志位。
运行标志位,和上升沿标志位一样,在这里表示开关的信号是否有下降沿这一事件,为1表示有下降沿,为0表示没有下降沿。
系统根据其状态来决定是否执行某一特定的功能。
参见附图2,首先判断20ms标志位是否等于1,在等于1的情况下,判断计数器是否大于2,即是否到20ms,在没有到20ms的情况下,退出下降沿的判定,在达到20ms的情况下,使20ms标志位等于0;再判断开关电压信号是否为低电平,在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次确认下降沿标志位是否等于1,在等于1的情况下,使运行标志位等于1,即执行开关触点断开或闭合的命令,在不等于1的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在20ms标志位不等于1的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,下降沿标志位等于1,并退出下降沿的判定;在为低电平的情况下,判断下降沿标志位是否等于1,判定为不等于1的情况下,退出下降沿的判定;在等于1的情况下,使计时器由零开始计时,20ms标志位等于1,并进入下一次对下降沿的判定。
在开关处理系统中,开关处理程序会对上述每个标志位的1或者0零进行引用,从而进行相应的开关处理。
实施例3
一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿和下降沿,其特征在于:通过分别对上升沿和或者下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段和下降沿的时间段都设一个预定值;
对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
本实施例的开关包含了实施1中的上升沿判断和实施例2下降沿的判断,只要出现上升沿和下降沿的一种情况,开关处理系统就进行相应开关处理。
实施例4
一种开关消抖系统,包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,在计时器的计时时间大于或者预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号是否为高电平,在为高电平的情况下进入上升沿判断模块;上升沿沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由低电平到高电平,确认是由低电平到高电平则执行开关的通断命令。
实施例5
根据权利要求1所述的开关消抖系统,包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,在计时器的计时时间大于或者预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号为低电平,在为低电平的情况下进入下降沿判断模块;下降沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由高电平到低电平,确认是由由高电平到低电平则执行开关的通断命令。
以上实施方式的描述中,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

Claims (8)

1.一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿,其特征在于:通过对上升沿的判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段设一个预定值;
对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定。
2.一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括下降沿,其特征在于:通过对下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;首先对下降升沿的时间段设一个预定值;
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
3.一种开关消抖的方法,开关触点断开或闭合时在一个时间段内会产生抖动电信号,所述抖动电信号包括上升沿和下降沿,其特征在于:通过分别对上升沿和或者下降沿进行判定,来确定是否执行开关触点断开或闭合的命令;
首先对上升沿的时间段和下降沿的时间段都设一个预定值;对上升沿的判定,开关线路中出现由低电平向高电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于上升沿的预定值时,退出上升沿的判定,所述计时器的计时时间大于或者等于上升沿的预定值时,再判断开关电压信号是否为高电平,此时计时器的定时重新置零;在不为高电平的情况下,退出上升沿的判定;在为高电平的情况下,再次判定是否由低电平向高电平变化,确认是由低电平向高电平变化的情况下,执行开关触点断开或闭合的命令,判定是由高电平向低电平变化的情况下,退出上升沿的判定;
开关线路中出现由低电平向高电平变化,在未定时的情况下,判断开关电压信号是否为高电平,在不为高电平的情况下,记录下不为高电平的情况后退出上升沿的判定,在为高电平的情况下,判断是否由低电平向高电平变化,判定不是由低电平向高电平变化的情况下,退出上升沿的判定;判定是低电平向高电平变化的情况下,使计时器由零开始计时,并进入下一次对上升沿的判定;
对下降沿的判定,开关线路中出现由高电平向低电平变化,在定时的情况下,通过计时器对定时后的时间段计时,所述计时器的计时时间小于下降沿的预定值时,退出下降沿的判定,所述计时器的计时时间大于或者等于下降沿的预定值时,再判断开关电压信号是否为低电平,此时计时器的定时重新置零;在不为低电平的情况下,退出下降沿的判定;在为低电平的情况下,再次判定是否由高电平向低电平变化,确认是由高电平向低电平变化的情况下,执行开关触点断开或闭合的命令,判定是由低电平向高电平变化的情况下,退出下降沿的判定;
开关线路中出现由高电平向低电平变化,在未定时的情况下,判断开关电压信号是否为低电平,在不为低电平的情况下,记录下不为低电平的情况,在为低电平的情况下,判断是否由高电平向低电平变化,判定不是高电平向低电平变化的情况下,退出下降沿的判定;判定是高电平向低电平变化的情况下,使计时器由零开始计时,进入下一次对下降沿的判定。
4.根据权利要求1至3任意一项权利要求所述的开关消抖的方法,其特征在于:所述计时器的计时方式是通过单片机内的定时器和计数器进行的,先设定定时器的时钟时基,单片机运行时,定时器每定时一个时钟时基就产生一次中断,中断服务程序中计数器就加1,计时时间等于计数器的累加数乘以时钟时基。
5.根据权利要求4所述的开关消抖的方法,其特征在于:所述时钟时基为10ms。
6.根据权利要求5所述的开关消抖的方法,其特征在于:所述上升沿/下降沿时间段的预先设定值为20ms。
7.一种开关消抖系统,其特征在于,包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,计时器的计时时间大于或者等于预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号是否为高电平,在为高电平的情况下进入上升沿判断模块;上升沿沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由低电平到高电平,确认是由低电平到高电平的情况下则执行开关的通断命令。
8.一种开关消抖系统,其特征在于:包括:定时判断模块,开关触点断开或闭合时产生的抖动电信号通过定时判断模块判断是否定时,并将判断为定时的结果传递给计时器模块;计时器模块,用于监控计时器的计时时间,并对抖动电信号设一个预定值,将计时器的计时时间与预定值进行比较,在计时器的计时时间大于或者等于预定值的情况下进入开关高压信号判断模块;开关高压信号判断模块,用于判断开关高压信号为低电平,在为低电平的情况下进入下降沿判断模块;下降沿判断模块,用于判断开关触点断开或闭合时产生的抖动电信号是否由高电平到低电平,确认是由高电平到低电平的情况下则执行开关的通断命令。
CN2011104389570A 2011-12-23 2011-12-23 开关消抖系统及其方法 Active CN102540940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104389570A CN102540940B (zh) 2011-12-23 2011-12-23 开关消抖系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104389570A CN102540940B (zh) 2011-12-23 2011-12-23 开关消抖系统及其方法

Publications (2)

Publication Number Publication Date
CN102540940A CN102540940A (zh) 2012-07-04
CN102540940B true CN102540940B (zh) 2013-12-04

Family

ID=46348035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104389570A Active CN102540940B (zh) 2011-12-23 2011-12-23 开关消抖系统及其方法

Country Status (1)

Country Link
CN (1) CN102540940B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106773974B (zh) * 2016-12-27 2019-03-26 河南理工大学 一种抖动开关信号的处理方法
CN111263927B (zh) * 2017-10-20 2024-01-23 雷蛇(亚太)私人有限公司 用户输入设备及用于在用户输入设备中识别用户输入的方法
CN109235994A (zh) * 2018-09-04 2019-01-18 武汉汉阳钢厂顺时停车设备有限责任公司 一种防止电感式接近开关检测误判的装置及方法
CN109258113B (zh) * 2018-11-16 2022-03-01 格力博(江苏)股份有限公司 割草机
CN111427301A (zh) * 2020-03-04 2020-07-17 西安工程大学 一种开关量信号采集递进式去抖动方法
CN112073046A (zh) * 2020-07-22 2020-12-11 深圳市优必选科技股份有限公司 一种按键触发事件的检测方法、检测装置、终端

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021458A (en) * 1998-01-21 2000-02-01 Intel Corporation Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
CN1395350A (zh) * 2002-08-06 2003-02-05 国电南瑞科技股份有限公司 快速消隐抖动识别开关量变位的方法
CN201114192Y (zh) * 2007-10-12 2008-09-10 浪潮电子信息产业股份有限公司 一种消除零售终端话筒按键抖动的电路装置
CN101520648A (zh) * 2009-04-03 2009-09-02 四川长虹电器股份有限公司 一种去除按键抖动的方法和系统
CN101741394A (zh) * 2009-11-03 2010-06-16 北京中星微电子有限公司 检测按键输入的方法和装置
CN101807849A (zh) * 2010-02-08 2010-08-18 海洋王照明科技股份有限公司 一种开关电路及其滤波方法、系统
CN201774635U (zh) * 2010-01-26 2011-03-23 深圳市同洲电子股份有限公司 消除按键开关抖动的电路及其装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021458A (en) * 1998-01-21 2000-02-01 Intel Corporation Method and apparatus for handling multiple level-triggered and edge-triggered interrupts
CN1294707A (zh) * 1998-01-21 2001-05-09 英特尔公司 处理多个电平触发和边沿触发中断的方法和装置
CN1395350A (zh) * 2002-08-06 2003-02-05 国电南瑞科技股份有限公司 快速消隐抖动识别开关量变位的方法
CN201114192Y (zh) * 2007-10-12 2008-09-10 浪潮电子信息产业股份有限公司 一种消除零售终端话筒按键抖动的电路装置
CN101520648A (zh) * 2009-04-03 2009-09-02 四川长虹电器股份有限公司 一种去除按键抖动的方法和系统
CN101741394A (zh) * 2009-11-03 2010-06-16 北京中星微电子有限公司 检测按键输入的方法和装置
CN201774635U (zh) * 2010-01-26 2011-03-23 深圳市同洲电子股份有限公司 消除按键开关抖动的电路及其装置
CN101807849A (zh) * 2010-02-08 2010-08-18 海洋王照明科技股份有限公司 一种开关电路及其滤波方法、系统

Non-Patent Citations (14)

* Cited by examiner, † Cited by third party
Title
于晶,杨晓慧,黄勇.基于FPGA的按键消抖电路设计方法的研究.《电子设计工程》.2011,第19卷(第22期), *
侯继红.基于VHDL语言的按键消抖电路设计及仿真.《现代电子技术》.2009,(第310期),201-202,205.
唐光明.基于中断技术的开关软件消抖算法.《现代机械》.2006,107-108.
基于FPGA的按键弹跳消除电路的研究与应用;李婷;《科技创新导报》;20080229;82-83 *
基于VHDL语言的按键消抖电路设计及仿真;侯继红;《现代电子技术》;20091230(第310期);201-202,205 *
基于中断技术的开关软件消抖算法;唐光明;《现代机械》;20060330;107-108 *
微控制器中按键处理技巧及应用;李运兵;《计算机系统应用》;20100228;第19卷(第2期);195-197 *
曾旖,奚大顺,李向阳.按键开关的抖动与消除方法.《电子世界》.2005,55-56. *
李婷.基于FPGA的按键弹跳消除电路的研究与应用.《科技创新导报》.2008,82-83.
李运兵.微控制器中按键处理技巧及应用.《计算机系统应用》.2010,第19卷(第2期),195-197.
王彩君,周开邻,黄智进.基于VHDL的开关消抖电路的研究.《实验科学与技术》.2010,第8卷(第2期),1-2,11. *
邢远秀,陈姚节.键盘消抖电路的研究与分析.《中国科技信息》.2008,67-68. *
郑来波,李泰强.多路高速开关信号采集中的一种软件消抖方法.《山东工业大学学报》.2002,第32卷(第1期),48-51. *
黄秋萍,王汉祥,李富华.无抖开关的研究与设计.《电子与封装》.2010,第10卷(第11期),26-28,43. *

Also Published As

Publication number Publication date
CN102540940A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102540940B (zh) 开关消抖系统及其方法
WO2004114128A3 (en) Instruction controlled data processing device
CN104026744A (zh) 电子烟微控制器的多任务执行方法及装置
CN105049008A (zh) 信号调制方法及信号整流及调制装置
CN104753415B (zh) 步进电机的启停控制方法、系统和步进电机
CN105677482A (zh) 一种频率调节方法及电子设备
CN101510165A (zh) 看门狗电路的喂狗方法、装置和单板
CN107856538A (zh) 一种电动汽车电驱动系统工作模式切换控制方法
CN106095055B (zh) 一种应用程序的关闭方法和装置
CN107643907A (zh) 基于定时器计数模式的计时、延时和定时循环方法以及系统
CN102298095A (zh) 多任务单片机系统中保证脉冲宽度正确测量的方法和装置
CN108292236B (zh) 一种信息处理方法及装置
CN104679583A (zh) 一种动态调整时钟中断的方法及装置
RU2432604C2 (ru) Способ выполнения изменения программы в режиме онлайн в системе автоматизации
CN103838701A (zh) Plc系统中的数据处理装置和方法
CN102522969A (zh) 一种igbt抗干扰的方法
CN103970571A (zh) 航空发动机的控制软件运行出错的恢复方法及系统
CN202351658U (zh) 基于图编程的轴承切削自动生产线专用控制电路
CN111416505B (zh) 一种开关电源转换器
CN113058393A (zh) 一种脱硫系统中浆液pH值的控制方法以及装置
CN115986672A (zh) 固态断路器及用于固态断路器的控制方法
JP2013084169A (ja) コントローラ、およびタスクとラダーの処理方法
CN103019302A (zh) 基于温度变化动态调整时序的方法、装置及网络设备
CN105827327A (zh) 一种高效实现qsfp模块低功耗模式的切换控制方法
CN103116301B (zh) 一种消除机电系统火花干扰的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Switch dither eliminating system and switch dither eliminating method

Effective date of registration: 20141106

Granted publication date: 20131204

Pledgee: Ya'an Yucheng Huimin village bank limited liability company

Pledgor: Sichuan Fanhua Electrical Co., Ltd.

Registration number: 2014510000030

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20201102

Granted publication date: 20131204

Pledgee: Ya'an Yucheng Huimin village bank LLC

Pledgor: SICHUAN FANHUA ELECTRICAL Co.,Ltd.

Registration number: 2014510000030

PC01 Cancellation of the registration of the contract for pledge of patent right