一种抖动开关信号的处理方法技术

技术编号:15546114 阅读:296 留言:0更新日期:2017-06-05 18:49
本发明专利技术公开了一种抖动开关信号的处理方法,处理步骤如下:将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)清零,并输出干净开关信号OUT[i](i=1,2,...,n)。本发明专利技术提供的一种抖动开关信号的处理方法,能够广泛应用于计算机控制系统。

Method for processing jitter switch signal

The invention discloses a method for processing a jitter signal, processing steps are as follows: n jitter switch signal IN[i] (i=1,2,..., n) is connected with the input end of the microcontroller, the microcontroller read once every 100 microsecond jitter signal IN[i] (i=1,2,..., n), when the signal is read by the state change set 5 ms markers MS[i] (i=1,2,..., n) and US[i] (i=1,2, 100 microseconds, n...) and start time; 5 millisecond time rule is: read the cumulative IN[i] (i=1,2,..., n) 50 times, the 5 ms mark MS[i] (i=1,2,..., n) cleared; 100 microsecond timing rules are: continuous reading of IN[i] (i=1,2,..., n) 30 times and no change, 100 microseconds mark US[i] (i=1,2,..., n) cleared, and clean output switching signals OUT[i] (i=1,2,..., n). The invention provides a method for processing dithering switch signals, and can be widely applied to computer control systems.

【技术实现步骤摘要】
一种抖动开关信号的处理方法
本专利技术涉及计算机应用
,特别是对抖动开关信号的处理方法。
技术介绍
在按钮按下和放开或者开关闭合和打开的瞬间,由于电触点机械弹性的原因,会产生抖动信号,即开关信号中包含抖动成分。随着微控制器成本的降低,本专利技术以微控制器为平台对含有抖动的开关信号进行预处理,使其变成干净的开关信号,再供计算机使用,本专利技术提出基于微控制器的一种抖动开关信号的处理方法。
技术实现思路
本专利技术针对计算机输入的抖动开关信号的处理方法提供一种基于微控制器的抖动信号处理方法,为了实现本目的,本专利技术一种抖动开关信号的处理方法,包括以下步骤:步骤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。以上所述,仅为本专利技术的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本专利技术的保护范围之内。本文档来自技高网
...
一种抖动开关信号的处理方法

【技术保护点】
一种抖动开关信号的处理方法,其特征在于,包括步骤:步骤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.一种抖动开关信号的处理方法,其特征在于,包括步骤:步骤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:重复步骤S...

【专利技术属性】
技术研发人员:李泉溪赵帅鹏苏百顺张保定
申请(专利权)人:河南理工大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1