本发明涉及计算机应用技术领域,特别是对抖动开关信号的处理方法。
背景技术:
在按钮按下和放开或者开关闭合和打开的瞬间,由于电触点机械弹性的原因,会产生抖动信号,即开关信号中包含抖动成分。随着微控制器成本的降低,本发明以微控制器为平台对含有抖动的开关信号进行预处理,使其变成干净的开关信号,再供计算机使用,本发明提出基于微控制器的一种抖动开关信号的处理方法。
技术实现要素:
本发明针对计算机输入的抖动开关信号的处理方法提供一种基于微控制器的抖动信号处理方法,为了实现本目的,本发明一种抖动开关信号的处理方法,包括以下步骤:
步骤S1:将n路抖动开关信号IN[i](i=1,2...,n)连接微控制器的输入端;
步骤S2:微控制器每隔100微秒读一次抖动开关信号IN[i](i=1,2...,n),当所读信号状态发生变化时,设置5毫秒标志MS[i](i=1,2...,n)和100微秒标志US[i](i=1,2...,n)并开始计时;
步骤S3:对步骤S2所述的5毫秒计时,其计时规则是:累计读IN[i](i=1,2...,n)50次时,将5毫秒标志MS[i](i=1,2...,n)清零;
步骤S4:对步骤S2所述的100微秒计时,其计时规则是:连续读IN[i](i=1,2...,n)30次且状态无变化时,将100微秒标志US[i](i=1,2...,n)清零;
步骤5:对步骤S4所述的连续读IN[i](i=1,2...,n)30次且状态无变化时,此时IN[i](i=1,2...,n)的状态与步骤S2所读的IN[i](i=1,2...,n)的状态一致时,输出干净开关信号OUT[i](i=1,2...,n),不一致时放弃OUT[i](i=1,2...,n);
步骤S6:重复步骤S2、步骤S3、步骤S4、步骤S5。
本发明的有益效果:与现有的抖动开关信号的处理方法相比,本发明提出的抖动开关信号的处理方法,降低了处理开关信号引入的延迟,提高了计算机控制的实时性。
附图说明
图1所示为本发明一种抖动开关信号的处理方法的流程图。
具体实施方式
如图1所示为本发明一种抖动开关信号的处理方法的流程图,包括:将n路抖动开关信号IN[i](i=1,2,...,n)连接微控制器的输入端,微控制器每隔100微秒读一次抖动开关信号IN[i](i=1,2,...,n),当所读的信号状态发生变化时,设置5毫秒标志MS[i](i=1,2,...,n)和100微秒标志US[i](i=1,2,...,n)并开始计时;5毫秒计时规则是:累计读IN[i](i=1,2,...,n)50次时,将5毫秒标志MS[i](i=1,2,...,n)清零;100微秒计时规则是:连续读IN[i](i=1,2,...,n)30次且状态无变化时,将100微秒标志US[i](i=1,2,...,n)清零;前一步骤所读的IN[i](i=1,2,...,n)的状态与第二步骤所读的IN[i](i=1,2,...,n)的状态一致时输出干净开关信号OUT[i](i=1,2,...,n),不一致时放弃OUT[i](i=1,2,...,n),重复第一步骤到第五步骤执行。
各步骤的具体实施细节如下:
步骤S1:将n路抖动开关信号IN[i](i=1,2,...,n)连接微控制器的输入端;
步骤S2:微控制器每隔100微秒读一次抖动开关信号IN[i](i=1,2,...,n),当所读的信号状态发生变化时,设置5毫秒标志MS[i](i=1,2,...,n)和100微秒标志US[i](i=1,2,...,n)并开始计时;5毫秒计时在先,100微妙计时在后;
步骤S3:对步骤S2所述的5毫秒计时,其计时规则是:累计读IN[i](i=1,2,...,n)50次时,将5毫秒标志MS[i](i=1,2,...,n)清零;
步骤S4:对步骤S2所述的100微秒计时,其计时规则是:连续读IN[i](i=1,2,...,n)30次且状态无变化时,将100微秒标志US[i](i=1,2,...,n)清零;
步骤S5:对步骤S4所述的连续读IN[i](i=1,2,...,n)30次且状态无变化时,此时IN[i](i=1,2,...,n)的状态与步骤S2所读的IN[i](i=1,2,...,n)的状态一致时输出干净开关信号OUT[i](i=1,2,...,n),不一致时放弃OUT[i](i=1,2...,n),此干净开关信号OUT[i](i=1,2,...,n),其编号i与步骤S1所述的抖动开关信号IN[i](i=1,2,...,n)的编号i相同,抖动开关信号IN[i](i=1,2,...,n)经过步骤S2、S3、S4、S5后变成了干净开关信号OUT[i](i=1,2,...,n);
步骤S6:重复步骤S2、步骤S3、步骤S4、步骤S5。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。