CN110957997A - 一种消除按键抖动的处理方法和电路 - Google Patents
一种消除按键抖动的处理方法和电路 Download PDFInfo
- Publication number
- CN110957997A CN110957997A CN201911243215.5A CN201911243215A CN110957997A CN 110957997 A CN110957997 A CN 110957997A CN 201911243215 A CN201911243215 A CN 201911243215A CN 110957997 A CN110957997 A CN 110957997A
- Authority
- CN
- China
- Prior art keywords
- key
- register
- timer
- value
- timing
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000001681 protective effect Effects 0.000 claims 1
- 239000003990 capacitor Substances 0.000 description 6
- 238000005070 sampling Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/125—Discriminating pulses
- H03K5/1252—Suppression or limitation of noise or interference
Landscapes
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Electronic Switches (AREA)
Abstract
本发明公开了一种消除按键抖动的处理方法,包括定时器和寄存器一、寄存器二,还包括以下步骤:步骤一:设定定时器计时最大值;步骤二:定时器清零后开始计时,同时系统周期性对比寄存器一和寄存器二内的数值,判断按键状态,若定时器计时期间未有按键触发信号,则执行步骤三;若定时器计时期间有按键触发信号,则执行步骤四;步骤三:当定时器计时到达最大值时,将寄存器一数值存入寄存器二,并重新采集按键值存入寄存器一,随后执行步骤二;步骤四:定时器计时中断,执行步骤二。采用上述方法无需增加硬件成本,即可以较小的延时来避开在按键抖动期采集按键值,在保证采集按键值的准确性的基础上提高采集效率。
Description
技术领域
本发明涉及一种按键信息的处理方法,特别涉及一种消除按键抖动的处理方法和电路。
背景技术
在数字电路设计中,经常遇到抖动信号的处理问题。抖动信号可以分为两种:一种是时间很短的干扰信号,如高频毛刺;另一种是时间很长的干扰信号,如按键抖动。通过按键实现控制功能是很常见的,但由于按键是机械触点,当机械触点断开、闭合时会有抖动,为使每一次按键只做一次响应,就必须考虑去除抖动,包括去除按下和抬起瞬间的抖动。
去抖动的方法有很多种,如使用R-S触发器的硬件方法、运用不同算法的各种软件方法等。对于按键较多的矩阵式按键,会用硬件方法,但采用硬件方法会增加成本和体积;而常见软件方法多采用加固定延时的方式来去除抖动,这种方法以无谓地耗费机时来实现去抖动,效率较低。
发明内容
本发明的目的是提供一种在不增加硬件成本的基础上,能自动调整延时从而实现快速获取按键状态的按键抖动处理方法和电路。
本发明一种按键抖动处理方法采用的如下技术方案:
一种按键抖动处理方法,包括定时器和寄存器一、寄存器二,还包括以下步骤:
步骤一:设定定时器计时最大值;
步骤二:定时器清零后开始计时,同时系统周期性对比寄存器一和寄存器二内的数值,判断按键是被按下或抬起状态,若定时器计时期间未有按键触发信号(按下或抬起信号),则执行步骤三;若定时器计时期间有按键触发信号,则执行步骤四;
步骤三:当定时器计时到达最大值时,将寄存器一数值存入寄存器二,并重新采集按键值存入寄存器一,随后执行步骤二;
步骤四:定时器计时中断,执行步骤二。
上述方法有益效果在于:寄存器一内存有当前采集的按键值,寄存器二内存有上一次采集的按键值,通过对比寄存器一和寄存器二内的数值来判断当前键值是否有跳变,从而判断按键是否被按下或抬起,其中,系统工作周期性地扫描判断是否有按下或抬起按键触发信号,定时器计时期间若有按键触发信号则定时器计时清零并重新计时,通过上述方法可以以定时器最大值为基础采样周期,自适应增加采集按键值的延时,从而可以以较小的延时来避开在按键抖动期采集按键值,在保证采集按键值的准确性的基础上提高效率。
进一步地,所述步骤一中,定时器计时最大值设为40ms。按键按下或抬起时存在抖动,根据大数据显示正常人的按键速度小于12Hz(每秒小于12次),即按键时间大于80ms,按占空比50%计算,按下的时间大于40ms,因此判定按下的时间小于40ms的为抖动信号,按下的时间大于40ms的是按键信号,因此,定时器计时最大值设为40ms为保证采样准确性和效率的较优选择。
进一步地,所述步骤二开始前,采集初始按键值并将该值存入寄存器一和寄存器二。初始采集按键值,避免系统开始比对时,寄存器一和寄存器二为默认空值。
本发明还提供一种消除按键抖动的FPGA电路,包括电源、电阻、电容和按键开关,所述电阻一端与所述电源连接,另一端分别与按键开关的一端和电容的一端连接,所述按键开关的另一端和所述电容的另一端分别接地,所述按键开关与电阻连接的一端设置有采集端,所述采集端采用上述按键抖动处理方法来采集电平高低状态。当采集端采集到高电平时表面按键抬起状态,按键取值为1,当采集端采集到低电平时,表明按键被按下状态,取值为0,通过前后取值对比判断该按键有无被按下或抬起。
进一步地,所述采集端设置有保护电阻。
与现有技术相比,本发明的有益效果在于:无需增加硬件成本,即可以较小的延时来避开在按键抖动期采集按键值,在保证采集按键值的准确性的基础上提高采集效率。
附图说明
图1为本发明的方法流程图;
图2为按键抖动消除后的按键取值示意图;
图3为消除按键抖动的FPGA电路结构示意图。
具体实施方式
下面结合具体实施方式,进一步阐明本发明,应理解这些实施方式仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本发明描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
实施例1:如图1所示,一种按键抖动处理方法,包括定时器和寄存器一、寄存器二,还包括以下步骤:
S0.定时器最大值设为40ms;
S1.系统上电初始化,采集按键值An并将该值存入寄存器一、寄存器二,定时器清零后开始计时,执行S2;
S2.定时器正常计时,系统周期性对比寄存器一和寄存器二内的数值,判断按键是否被按下或抬起,若定时器计时期间未有按键触发信号(按下或抬起信号),则执行S3,若定时器计时期间有按键触发信号,则执行S4;
S3.当定时器到达40ms时,将寄存器一数值存入寄存器二,并重新采集按键值An+1存入寄存器一,定时器清零后重新计时,执行S2;
S4.定时器计时中断并清零后重新计时,执行S5;
S5.定时器正常计时,系统周期性对比寄存器一和寄存器二内的数值,判断按键是否被按下或抬起,若定时器计时期间未有按键触发信号(包括按下或抬起信号),则执行S6,若定时器计时期间有按键触发信号,则执行S4;
S6.当定时器到达40ms时,将寄存器一数值存入寄存器二,并重新采集按键值An+2存入寄存器一,执行S7;
S7.定时器清零后重新开始计时,执行S2。
其中,按键触发信号(按下或抬起信号)可由系统工作周期性地扫描按键电平高低状态判断是否有按下或抬起从而发出相应信号。
通过上述方法可得按键采样键值示意图如图2所示。
实施例2:如图3所示,一种消除按键抖动的FPGA电路,包括五组按键开关采集电路,每组采集电路分别包括电源、电阻R、保护电阻R’、电容C和按键开关K;单组采集电路中电阻R一端与电源连接,另一端分别与按键开关K的一端和电容C的一端连接,按键开关K的另一端和电容C的另一端分别接地,按键开关K与电阻R连接的一端设置有采集端KEY;五个采集端(KEY1、KEY2、KEY3、KEY4、KEY5)均采用实施例1所述方法来采集电平高低状态从而判断五个按键开关(K1、K2、K3、K4、K5)的按键状态。其中,默认任一按键被按下和释放期间,不会有其他按键也被按下或释放。
操作过程如下:首先将所有按键输入信号(K1、K2、K3、K4、K5)做“逻辑与”操作,得到信号key。信号key的值锁存4份分别存储到寄存器keyr[0]、keyr[1]、keyr[2]和keyr[3]中,此时的采样频率和基准时钟保持一致,为25MHz,通过keyr[2]和keyr[3]这两个寄存器获得key信号的上升沿标志位key_pos和下降沿标志位key_neg,运用典型“脉冲边沿检测法”。
定时器定义为变量值cnt,cnt在key_pos和key_neg有效拉高时,都会清零重新开始计时,定时器cnt的最大计时值为40ms,若在某个计时期间内按键有抖动,则定时器cnt会频繁的清零,cnt的值就不会计时到最大值,一旦cnt计时到最大值,则会对当前所有的按键值做一次锁存,当前按键值锁存到5位寄存器key_value[0]中,即这个锁存操作的采样率是40ms为周期的,若按键的抖动小于40ms,那么采样的按键值不会发生变化,因此就达到了消除小于40ms抖动的目的。随后,定时器清零后重新计时,在下一次cnt计时到最大值时,key_value[1]会锁存之前key_value[0]的值,同时会对当前所有的按键值做一次锁存,当前按键值锁存到5位寄存器key_value[0]中。
如表1所示,通过对比key_value[0]和key_value[1]的值判断哪一个按键被按下或抬起。
表1:按键值与按键状态示意表
K1 | K2 | K3 | K4 | K5 | 按键状态 | |
key_value[1] | 1 | 1 | 1 | 1 | 1 | |
key_value[0] | 1 | 1 | 0 | 1 | 1 | 按键K3被按下 |
key_value[1] | 1 | 1 | 0 | 1 | 1 | |
key_value[0] | 1 | 1 | 1 | 1 | 1 | 按键K3抬起 |
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (5)
1.一种按键抖动处理方法,其特征在于:包括定时器和寄存器一、寄存器二,还包括以下步骤:
步骤一:设定定时器计时最大值;
步骤二:定时器清零后开始计时,同时系统周期性对比寄存器一和寄存器二内的数值,判断按键是被按下或抬起状态,若定时器计时期间未有按键触发信号,则执行步骤三;若定时器计时期间有按键触发信号,则执行步骤四;
步骤三:当定时器计时到达最大值时,将寄存器一数值存入寄存器二,并重新采集按键值存入寄存器一,随后执行步骤二;
步骤四:定时器计时中断,执行步骤二。
2.根据权利要求1所述的按键抖动处理方法,其特征在于:所述步骤一中,定时器计时最大值设为40ms。
3.根据权利要求1所述的按键抖动处理方法,其特征在于:所述步骤二开始前,采集初始按键值并将该值存入寄存器一和寄存器二。
4.一种消除按键抖动的FPGA电路,包括电源、电阻、电容和按键开关,所述电阻一端与所述电源连接,另一端分别与按键开关的一端和电容的一端连接,所述按键开关的另一端和所述电容的另一端分别接地,所述按键开关与电阻连接的一端设置有采集端,其特征在于:所述采集端采用权利要求1-3任一所述方法来采集电平高低状态。
5.根据权利要求4所述的消除按键抖动的FPGA电路,其特征在于:所述采集端设置有保护电阻。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243215.5A CN110957997A (zh) | 2019-12-06 | 2019-12-06 | 一种消除按键抖动的处理方法和电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243215.5A CN110957997A (zh) | 2019-12-06 | 2019-12-06 | 一种消除按键抖动的处理方法和电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110957997A true CN110957997A (zh) | 2020-04-03 |
Family
ID=69980197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911243215.5A Pending CN110957997A (zh) | 2019-12-06 | 2019-12-06 | 一种消除按键抖动的处理方法和电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110957997A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840268A (zh) * | 2010-04-23 | 2010-09-22 | 中国电子科技集团公司第五十四研究所 | 一种矩阵键盘的快速扫描定位方法 |
CN202210787U (zh) * | 2011-07-06 | 2012-05-02 | 广东万和新电气股份有限公司 | 可移植性按键电路 |
CN104579317A (zh) * | 2013-10-17 | 2015-04-29 | 西安光向信息科技有限公司 | 一种信号处理方法及装置 |
CN208112600U (zh) * | 2018-04-28 | 2018-11-16 | 厦门芯阳科技股份有限公司 | 一种数显和按键扫描复用电路 |
CN109189232A (zh) * | 2018-11-13 | 2019-01-11 | 杭州师范大学钱江学院 | 一种用于手势识别的电容数据采集装置及其手势识别方法 |
CN109217859A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 按键消抖方法、设备及存储介质 |
CN110048697A (zh) * | 2019-03-28 | 2019-07-23 | 深圳市创维群欣安防科技股份有限公司 | 一种滤除按键抖动的方法和相关设备 |
-
2019
- 2019-12-06 CN CN201911243215.5A patent/CN110957997A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840268A (zh) * | 2010-04-23 | 2010-09-22 | 中国电子科技集团公司第五十四研究所 | 一种矩阵键盘的快速扫描定位方法 |
CN202210787U (zh) * | 2011-07-06 | 2012-05-02 | 广东万和新电气股份有限公司 | 可移植性按键电路 |
CN104579317A (zh) * | 2013-10-17 | 2015-04-29 | 西安光向信息科技有限公司 | 一种信号处理方法及装置 |
CN109217859A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | 按键消抖方法、设备及存储介质 |
CN208112600U (zh) * | 2018-04-28 | 2018-11-16 | 厦门芯阳科技股份有限公司 | 一种数显和按键扫描复用电路 |
CN109189232A (zh) * | 2018-11-13 | 2019-01-11 | 杭州师范大学钱江学院 | 一种用于手势识别的电容数据采集装置及其手势识别方法 |
CN110048697A (zh) * | 2019-03-28 | 2019-07-23 | 深圳市创维群欣安防科技股份有限公司 | 一种滤除按键抖动的方法和相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103178847B (zh) | 连续近似寄存式模拟数字转换器及其方法 | |
US8502593B2 (en) | Balanced debounce circuit with noise filter for digital system | |
EP2151053B1 (en) | Switch de-bouncing device and method | |
CN104794433A (zh) | 指纹识别系统和方法 | |
CN100492918C (zh) | 一种扫描键盘的方法和系统 | |
CN108918932B (zh) | 负荷分解中功率信号自适应滤波方法 | |
CN110310391A (zh) | 触摸唤醒方法、装置、电子设备及存储介质 | |
CN107872230A (zh) | 一种可检测多个任意组合按键的扫描检测电路及方法 | |
CN101394185A (zh) | 一种按键检测电路及其方法 | |
JP4349866B2 (ja) | Fsk信号復調回路 | |
CN110957997A (zh) | 一种消除按键抖动的处理方法和电路 | |
CN114095009A (zh) | 一种高效率触摸检测电路 | |
KR100531800B1 (ko) | 터치 스크린의 노이즈 필터링 방법 | |
CN216649668U (zh) | 一种基于gpio和adc的多按键控制电路 | |
CN113495299B (zh) | 近接感测方法及其应用的电子装置 | |
CN212872665U (zh) | 电容变化检测电路 | |
CN209787134U (zh) | 一种低延时脉冲消抖电路 | |
US7260164B2 (en) | Efficient filtering of RxLOS signal in SerDes applications | |
CN218587159U (zh) | 一种可编程延迟的防抖动电路 | |
CN113282194A (zh) | 低功耗触摸检测唤醒方法及装置 | |
CN116232339A (zh) | 一种按键采集消抖系统与方法 | |
CN219552548U (zh) | 一种窄脉冲功率检测电路 | |
TWI779967B (zh) | 具有適應性比較機制的比較電路及其運作方法 | |
CN218217338U (zh) | 一种按键开关去抖动电路 | |
CN104935920A (zh) | 按键板功能校正方法和系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200403 |
|
RJ01 | Rejection of invention patent application after publication |