CN106773974A - 一种抖动开关信号的处理方法 - Google Patents
一种抖动开关信号的处理方法 Download PDFInfo
- Publication number
- CN106773974A CN106773974A CN201611226291.1A CN201611226291A CN106773974A CN 106773974 A CN106773974 A CN 106773974A CN 201611226291 A CN201611226291 A CN 201611226291A CN 106773974 A CN106773974 A CN 106773974A
- Authority
- CN
- China
- Prior art keywords
- switching signal
- read
- during
- shake
- state
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Measuring Volume Flow (AREA)
Abstract
本发明公开了一种抖动开关信号的处理方法,处理步骤如下:将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)。本发明提供的一种抖动开关信号的处理方法,能够广泛应用于计算机控制系统。
Description
技术领域
本发明涉及计算机应用技术领域,特别是对抖动开关信号的处理方法。
背景技术
在按钮按下和放开或者开关闭合和打开的瞬间,由于电触点机械弹性的原因,会产生抖动信号,即开关信号中包含抖动成分。随着微控制器成本的降低,本发明以微控制器为平台对含有抖动的开关信号进行预处理,使其变成干净的开关信号,再供计算机使用,本发明提出基于微控制器的一种抖动开关信号的处理方法。
发明内容
本发明针对计算机输入的抖动开关信号的处理方法提供一种基于微控制器的抖动信号处理方法,为了实现本目的,本发明一种抖动开关信号的处理方法,包括以下步骤:
步骤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。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (3)
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:重复步骤S2、步骤S3、步骤S4、步骤S5。
2.根据权利要求1所述的一种抖动开关信号的处理方法,其特征在于,所述步骤S2包括:微控制器每隔100微秒读一次抖动开关信号IN[i](i=1,2...,n),当所读的信号状态发生变化时设置5毫秒标志MS[i](i=1,2...,n)和100微秒标志US[i](i=1,2...,n)并开始计时,且5毫秒计时在先,100微妙计时在后。
3.根据权利要求1所述的一种抖动开关信号的处理方法,其特征在于,所述步骤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)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611226291.1A CN106773974B (zh) | 2016-12-27 | 2016-12-27 | 一种抖动开关信号的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611226291.1A CN106773974B (zh) | 2016-12-27 | 2016-12-27 | 一种抖动开关信号的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106773974A true CN106773974A (zh) | 2017-05-31 |
CN106773974B CN106773974B (zh) | 2019-03-26 |
Family
ID=58921335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611226291.1A Expired - Fee Related CN106773974B (zh) | 2016-12-27 | 2016-12-27 | 一种抖动开关信号的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106773974B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201774635U (zh) * | 2010-01-26 | 2011-03-23 | 深圳市同洲电子股份有限公司 | 消除按键开关抖动的电路及其装置 |
CN102508552A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市大富科技股份有限公司 | 一种消除按键抖动的方法、装置及键盘 |
CN102540940A (zh) * | 2011-12-23 | 2012-07-04 | 四川泛华电器有限责任公司 | 开关消抖系统及其方法 |
CN103677282A (zh) * | 2012-09-24 | 2014-03-26 | 中国航天科工集团第二研究院二O七所 | 一种基于堆栈的去除键抖动的软件实现方法 |
CN104901656A (zh) * | 2015-06-19 | 2015-09-09 | 中国电子科技集团公司第二十四研究所 | 数字滤波去抖动的方法及其装置 |
CN105223880A (zh) * | 2015-09-18 | 2016-01-06 | 航宇救生装备有限公司 | 一种程序控制盒同步性能检测方法及装置 |
-
2016
- 2016-12-27 CN CN201611226291.1A patent/CN106773974B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201774635U (zh) * | 2010-01-26 | 2011-03-23 | 深圳市同洲电子股份有限公司 | 消除按键开关抖动的电路及其装置 |
CN102508552A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市大富科技股份有限公司 | 一种消除按键抖动的方法、装置及键盘 |
CN102540940A (zh) * | 2011-12-23 | 2012-07-04 | 四川泛华电器有限责任公司 | 开关消抖系统及其方法 |
CN103677282A (zh) * | 2012-09-24 | 2014-03-26 | 中国航天科工集团第二研究院二O七所 | 一种基于堆栈的去除键抖动的软件实现方法 |
CN104901656A (zh) * | 2015-06-19 | 2015-09-09 | 中国电子科技集团公司第二十四研究所 | 数字滤波去抖动的方法及其装置 |
CN105223880A (zh) * | 2015-09-18 | 2016-01-06 | 航宇救生装备有限公司 | 一种程序控制盒同步性能检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106773974B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS55153054A (en) | Logic circuit simulation system | |
EP0332361A3 (en) | Method and apparatus for logic simulation | |
WO2002027928A3 (en) | Method and apparatus for tolerating defects in a programmable logic device using runtime parameterizable cores | |
CN106773974A (zh) | 一种抖动开关信号的处理方法 | |
CN106130516A (zh) | 机械开关消抖电路 | |
CN105978532B (zh) | 一种数字滤波器 | |
CN209170335U (zh) | 一种带硬件消抖与中断信号的矩阵键盘电路 | |
JPS56109076A (en) | Solid-state image sensor | |
JPS5588148A (en) | Test system of input-output control system | |
CN106816153B (zh) | 一种数据处理方法及其终端 | |
JPS573080A (en) | Timer | |
Marasse | Isolation | |
JPS5445550A (en) | Digital protection control unit | |
Nemolochnov et al. | Recurrence-Retrospective Model for Analysis of Asynchronous Sequential Devices. | |
JPH11316694A (ja) | テストモード設定回路 | |
JPS5472643A (en) | Processing system for different speed multi-input operation | |
JPS5685128A (en) | Processor with clock controlling function | |
KR0155199B1 (ko) | 슬립 모드 2진 카운터 | |
CN203643768U (zh) | 一种控制电路以及一种电子设备 | |
JPS5482132A (en) | Memory unit | |
Abrams | In the making: how to make tea | |
JPS5657327A (en) | Chattering eliminating circuit | |
JPH01154194A (ja) | Vramインターフェイス回路 | |
JPS5574621A (en) | Graph processor | |
JPS5439531A (en) | Input and output port circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190326 Termination date: 20211227 |
|
CF01 | Termination of patent right due to non-payment of annual fee |