CN105071816B - 一种高效率快速按键扫描方法 - Google Patents
一种高效率快速按键扫描方法 Download PDFInfo
- Publication number
- CN105071816B CN105071816B CN201510491218.6A CN201510491218A CN105071816B CN 105071816 B CN105071816 B CN 105071816B CN 201510491218 A CN201510491218 A CN 201510491218A CN 105071816 B CN105071816 B CN 105071816B
- Authority
- CN
- China
- Prior art keywords
- module
- key
- debounce
- key assignments
- read
- 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
Links
Landscapes
- Input From Keyboards Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公布了一种高效率快速按键扫描方法,它包括MCU主控模块及与之连接的按键矩阵,MCU主控模块里设置有键值更新读取模块,其输入端与按键矩阵、存储模块相连,输出端与按键处理模块、缓存模块、去抖读取模块、去抖处理模块连接;缓存模块与键值分析模块连接;去抖读取模块输出端与键值分析模块输入端相连;去抖读取模块与按键矩阵相连;键值分析模块连接有按键处理模块及去抖处理模块;去抖处理模块输出端与存储模块,去抖读取模块连接;存储模块连接有按键处理模块;按键处理模块连接有执行模块。它既能快速提高按键扫描速度,又降低了MCU处理时间,既降低了功耗,又提高了按键反应速度,提高了工作效率及按键扫描设备的使用寿命。
Description
技术领域
本发明涉及到按键扫描技术领域,尤其涉及到一种高效率快速按键扫描方法。
背景技术
当一个按键被按下时,它会反馈一个低电平给MCU,MCU只要读取一次电平的高低就能判断IO口状态,但由于人手刚按住按键时,实际上并不是一个持续的低电平,因为手会产生轻微抖动,导致刚开始按住按键时会产生多个高低变换的电平,如果不消抖就会响应多次按键操作,致使MCU判断错误。
现有的按键扫描方法大致有两种:第一种是按键扫描模块经过多次扫描按键状态,直接得出按键扫描结果,MCU每调用一次按键扫描模块便能得出按键扫描结果,这种按键扫描方法对按键响应比较快,但占用MCU程序运行时间比较长,影响了MCU对其他子程序的响应速度,导致其他输入控制变慢,且功耗较大;第二种是MCU每调用一次按键扫描模块,按键扫描模块则检测一次按键状态,按键扫描模块检测一次后便退出,直到MCU再次调用,经过多次调用后才能得到按键扫描结果;这种方法由于按键扫描占用MCU运行时间少,由此可以提高MCU对其他控制的反应速度,但会导致按键响应变慢,影响输入效率。
通过专利检索,存在以下已知的现有技术方案:
专利1:
申请号:201110317376.1,申请日:2011.10.18,申请公布日:2012.02.29,该发明揭示一种电子设备的按键扫描方法,通过先将电子设备控制芯片的行扫描端口设置成输出端口并输出第一电平信号,将电子设备的列扫描端口设置成输入端口并且配置为内部拉高;读取列扫描端口的值,判断哪一列上有按键按下;将所述行扫描端口设置成输入端口并配置为内部下拉,将所述列扫描端口设置成输出端口并且输出第二电平信号;读取行扫描端口的值,判断哪一行上有按键按下;依据上述读取的列扫描端口的值与行扫描端口的值确定被按下的键,与传统按键扫描方法相比,本方法可以显著的减少了按键扫描的时间并且易于实现且效率非常高,从而极大地降低地按键扫描电路的功耗。
专利2:
申请号:201010515487.9,申请日:2010.10.22,申请公布日:2011.01.19,该发明涉及按键扫描系统,包括:按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口,任意两个所述扫描端口之间连接一个按键,其中,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接。本发明的有益效果是,通过使用较少的端口,扫描更多的按键,在按键较多而系统可用端口较少的情况下可有效节约开发成本。
通过以上的检索发现,以上技术方案不能影响本发明的新颖性;并且以上专利文件的相互组合不能破坏本发明的创造性。
发明内容
针对以上问题,本发明提供了一种高效快速按键扫描方法,它既能快速提高按键扫描速度,又降低了MCU处理时间,既降低了功耗,又提高了按键反应速度,提高了工作效率及按键扫描设备的使用寿命。
为实现以上目的,本发明采用的技术方案是:一种高效率快速按键扫描方法,它包括MCU主控模块及与之连接的按键矩阵,所述MCU主控模块里设置有键值更新读取模块,其输入端与按键矩阵、存储模块相连,输出端与按键处理模块、缓存模块、去抖读取模块、去抖处理模块连接;所述缓存模块与键值分析模块连接;所述去抖读取模块输出端与键值分析模块输入端相连;所述去抖读取模块还与按键矩阵相连;所述键值分析模块输出端连接有按键处理模块及去抖处理模块输入端;所述去抖处理模块输出端与存储模块及去抖读取模块输入端连接;所述存储模块连接有按键处理模块;所述按键处理模块连接有执行模块;所述去抖处理模块内设置有计数器;所述计数器设置有计数大小限定为n,n大于等于1,且为整数;
所述按键矩阵输入值与存储模块内存储值不相等时,键值更新读取模块传递新键值给缓存模块,反馈启动信号给去抖读取模块、反馈复位信号给去抖处理模块;
所述去抖读取模块接收到启动信号后,读取并反馈按键矩阵输入值给键值分析模块;
所述去抖读取模块反馈按键矩阵输入值与缓存模块内存储键值相等时,键值分析模块将键值反馈给去抖处理模块;
所述去抖处理模块接收到复位信号后,计数器计数复位为0;
所述去抖处理模块每接收到一次键值,计数器计数加1;所述计数器计数大于等于n时,去抖处理模块反馈键值信号给存储模块。
进一步的,所述按键矩阵输入值与存储模块内存储值相等时,键值更新读取模块反馈信号给按键处理模块。
进一步的,所述去抖读取模块反馈键值与缓存模块内存储键值不相等时,键值分析模块发送去抖读取模块反馈键值给按键处理模块。
进一步的,所述计数器计数小于n时,去抖处理模块反馈计数次数未满信号给去抖读取模块。
进一步的,所述按键处理模块接受信号优先级顺序为:键值更新读取模块大于键值分析模块大于存储模块。
进一步的,所述按键处理模块接受到键值更新读取模块信号反馈后,不发送信号给执行模块。
进一步的,所述按键处理模块接受到键值分析模块信号反馈后,不发送信号给执行模块。
进一步的,所述按键处理模块接受到存储模块信号反馈后,发送键值信号给执行模块。
本发明的有益效果:
本发明采用选择性扫描方式,在按键状态未发生改变时,按键扫描模块只读取一次键值就退出,MCU主控模块在按键扫描时运行的时间非常短,大大提高其他执行设备的响应速度;在按键状态发生改变时,采用持续抖动检测直到确认新键值;这样能更快速响应按键变化,提高对按键扫描的响应速度的同时大大降低功耗,提高了整体的运行速度。
附图说明
图1为本发明的整体结构示意图。
图2为本发明的电路连接框架示意图。
图3为本发明的运行模块连接示意图。
图4为本发明的运行流程图。
具体实施方式
为了使本领域技术人员更好地理解本发明的技术方案,下面结合附图对本发明进行详细描述,本部分的描述仅是示范性和解释性,不应对本发明的保护范围有任何的限制作用。
如图1-4所示,本发明的结构连接关系为:一种高效率快速按键扫描方法,它包括MCU主控模块及与之连接的按键矩阵,所述MCU主控模块里设置有键值更新读取模块,其输入端与按键矩阵、存储模块相连,输出端与按键处理模块、缓存模块、去抖读取模块、去抖处理模块连接;所述缓存模块与键值分析模块连接;所述去抖读取模块输出端与键值分析模块输入端相连;所述去抖读取模块还与按键矩阵相连;所述键值分析模块输出端连接有按键处理模块及去抖处理模块输入端;所述去抖处理模块输出端与存储模块及去抖读取模块输入端连接;所述存储模块连接有按键处理模块;所述按键处理模块连接有执行模块;所述去抖处理模块内设置有计数器;所述计数器设置有计数大小限定为n,n大于等于1,且为整数;
所述按键矩阵输入值与存储模块内存储值不相等时,键值更新读取模块传递新键值给缓存模块,反馈启动信号给去抖读取模块、反馈复位信号给去抖处理模块;
所述去抖读取模块接收到启动信号后,读取并反馈按键矩阵输入值给键值分析模块;
所述去抖读取模块反馈按键矩阵输入值与缓存模块内存储键值相等时,键值分析模块将键值反馈给去抖处理模块;
所述去抖处理模块接收到复位信号后,计数器计数复位为0;
所述去抖处理模块每接收到一次键值,计数器计数加1;所述计数器计数大于等于n时,去抖处理模块反馈键值信号给存储模块。
优选的,所述按键矩阵输入值与存储模块内存储值相等时,键值更新读取模块反馈信号给按键处理模块。
优选的,所述去抖读取模块反馈键值与缓存模块内存储键值不相等时,键值分析模块发送去抖读取模块反馈键值给按键处理模块。
优选的,所述计数器计数小于n时,去抖处理模块反馈计数次数未满信号给去抖读取模块。
优选的,所述按键处理模块接受信号优先级顺序为:键值更新读取模块大于键值分析模块大于存储模块。
优选的,所述按键处理模块接受到键值更新读取模块信号反馈后,不发送信号给执行模块。
优选的,所述按键处理模块接受到键值分析模块信号反馈后,不发送信号给执行模块。
优选的,所述按键处理模块接受到存储模块信号反馈后,发送键值信号给执行模块。
本按键扫描方法运行流程图如图4所示,每次程序主循环中调用一次按键扫描子程序,当按键扫描子程序被主程序调用后,先读取一次键值,若读取到的键值与之前确认的键值相同(按键状态无变化),则立即退出本次按键扫描子程序;当按键扫描子程序被主程序调用后,先读取一次键值,若读取到的键值与之前确认的键值不同(按键状态可能有变化),则重复多次读取键值(去抖)直到确认为有新键值或者有只是干扰抖动信号才退出按键扫描程序。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括哪些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实例的说明只是用于帮助理解本发明的方法及其核心思想。以上所述仅是本发明的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其它场合的,均应视为本发明的保护范围。
Claims (8)
1.一种高效率快速按键扫描方法,它包括MCU主控模块及与之连接的按键矩阵,其特征在于,所述MCU主控模块里设置有键值更新读取模块,其输入端与按键矩阵、存储模块相连,输出端与按键处理模块、缓存模块、去抖读取模块、去抖处理模块连接;所述缓存模块与键值分析模块连接;所述去抖读取模块输出端与键值分析模块输入端相连;所述去抖读取模块还与按键矩阵相连;所述键值分析模块输出端连接有按键处理模块及去抖处理模块输入端;所述去抖处理模块输出端与存储模块及去抖读取模块输入端连接;所述存储模块连接有按键处理模块;所述按键处理模块连接有执行模块;所述去抖处理模块内设置有计数器;所述计数器设置有计数大小限定为n,n大于等于1,且为整数;
所述按键矩阵输入值与存储模块内存储值不相等时,键值更新读取模块传递新键值给缓存模块,反馈启动信号给去抖读取模块、反馈复位信号给去抖处理模块;
所述去抖读取模块接收到启动信号后,读取并反馈按键矩阵输入值给键值分析模块;
所述去抖读取模块反馈按键矩阵输入值与缓存模块内存储键值相等时,键值分析模块将键值反馈给去抖处理模块;
所述去抖处理模块接收到复位信号后,计数器计数复位为0;
所述去抖处理模块每接收到一次键值,计数器计数加1;所述计数器计数大于等于n时,去抖处理模块反馈键值信号给存储模块;
所述按键矩阵输入值与存储模块内存储值相等时,按键扫描模块只读取一次键值就退出本次按键扫描子程序。
2.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述按键矩阵输入值与存储模块内存储值相等时,键值更新读取模块反馈信号给按键处理模块。
3.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述去抖读取模块反馈键值与缓存模块内存储键值不相等时,键值分析模块发送去抖读取模块反馈键值给按键处理模块。
4.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述计数器计数小于n时,去抖处理模块反馈计数次数未满信号给去抖读取模块。
5.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述按键处理模块接受信号优先级顺序为:键值更新读取模块大于键值分析模块大于存储模块。
6.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述按键处理模块接受到键值更新读取模块信号反馈后,不发送信号给执行模块。
7.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述按键处理模块接受到键值分析模块信号反馈后,不发送信号给执行模块。
8.根据权利要求1所述的一种高效率快速按键扫描方法,其特征在于,所述按键处理模块接受到存储模块信号反馈后,发送键值信号给执行模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510491218.6A CN105071816B (zh) | 2015-08-12 | 2015-08-12 | 一种高效率快速按键扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510491218.6A CN105071816B (zh) | 2015-08-12 | 2015-08-12 | 一种高效率快速按键扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105071816A CN105071816A (zh) | 2015-11-18 |
CN105071816B true CN105071816B (zh) | 2018-04-20 |
Family
ID=54501120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510491218.6A Active CN105071816B (zh) | 2015-08-12 | 2015-08-12 | 一种高效率快速按键扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105071816B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897276A (zh) * | 2016-03-31 | 2016-08-24 | 上海林果实业股份有限公司 | 一种低功耗按键检测方法及电路 |
CN106549676B (zh) * | 2016-10-28 | 2019-09-17 | 青岛海信电器股份有限公司 | 低功耗矩阵键盘及应用该矩阵键盘的电源开关电路 |
CN106972863A (zh) * | 2016-10-31 | 2017-07-21 | 成都乐创自动化技术股份有限公司 | 一种按键驱动方法及装置 |
CN108270447B (zh) * | 2016-12-30 | 2024-05-24 | 北京普源精电科技有限公司 | 键盘消抖方法、扫描控制器、主控制器及测量仪器 |
CN112713902B (zh) * | 2020-12-07 | 2024-06-21 | 珠海格力电器股份有限公司 | 确定按键扫描键值的方法、系统、遥控器、介质及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953334A (zh) * | 2006-11-17 | 2007-04-25 | 北京中星微电子有限公司 | 一种扫描键盘的方法和系统 |
CN102523002A (zh) * | 2011-11-22 | 2012-06-27 | 北京遥测技术研究所 | 高可靠性键盘扫描方法 |
CN103576863A (zh) * | 2012-06-21 | 2014-02-12 | 深圳市金正方科技有限公司 | 一种键盘输入的方法及装置 |
CN104124977A (zh) * | 2013-04-28 | 2014-10-29 | 西安辉炜信息科技有限公司 | 一种信号处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242946A (ja) * | 2007-03-28 | 2008-10-09 | Toshiba Corp | 電子機器およびキー押下判定方法 |
-
2015
- 2015-08-12 CN CN201510491218.6A patent/CN105071816B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953334A (zh) * | 2006-11-17 | 2007-04-25 | 北京中星微电子有限公司 | 一种扫描键盘的方法和系统 |
CN102523002A (zh) * | 2011-11-22 | 2012-06-27 | 北京遥测技术研究所 | 高可靠性键盘扫描方法 |
CN103576863A (zh) * | 2012-06-21 | 2014-02-12 | 深圳市金正方科技有限公司 | 一种键盘输入的方法及装置 |
CN104124977A (zh) * | 2013-04-28 | 2014-10-29 | 西安辉炜信息科技有限公司 | 一种信号处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105071816A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105071816B (zh) | 一种高效率快速按键扫描方法 | |
US8065249B1 (en) | GPSTP with enhanced aggregation functionality | |
CN101071156B (zh) | 多联板的次品检测装置及方法 | |
CN1960297A (zh) | 监控网络上设备组的系统与方法 | |
CN102075194B (zh) | 键盘扫描电路和方法及电子设备 | |
CN102970244B (zh) | 一种多cpu核间负载均衡的网络报文处理方法 | |
CN107743138A (zh) | 推送服务器分配方法、装置、计算机设备和存储介质 | |
CN102300117A (zh) | 机顶盒自动测试系统及测试方法 | |
CN101860369A (zh) | 矩阵键盘及其扫描方法 | |
CN106411655A (zh) | 基于串行通讯设备状态诊断的通讯处理方法 | |
CN109034345B (zh) | 基于光电检测的芯片条带计数装置及方法 | |
CN105048629B (zh) | 继电保护硬压板防误操作告警系统 | |
CN100562862C (zh) | 输入系统 | |
CN102857232B (zh) | 一种按键检测电路及检测方法 | |
CN202472565U (zh) | 一种键盘电路、键盘及输入装置 | |
CN103576863B (zh) | 一种键盘输入的方法及装置 | |
CN108828442B (zh) | 延时继电器检测装置 | |
CN104933385A (zh) | 一种基于光电传感器的smt传输设备监控系统 | |
CN2804938Y (zh) | 键盘测试电路 | |
CN109342574A (zh) | 一种声发射多通道快速切换系统及切换方法 | |
CN202841104U (zh) | 一种按键检测电路 | |
CN201203651Y (zh) | 按键状态侦测电路 | |
CN109918179A (zh) | 一种按键处理方法、设备及系统 | |
CN204143541U (zh) | Atm机维护键盘 | |
CN107231157A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180613 Address after: 410000 west room F201, 2 floor, pilot building, No. 2, Lu Jing Road, Changsha hi tech Development Zone, Changsha, Hunan Patentee after: Changsha Bo core Microelectronic Technology Co., Ltd. Address before: 410000 room 801, building B, new Changhai center, 627 Lugu Road, Changsha high tech Development Zone, Hunan, China Patentee before: Changsha B.J.X Electronic Technology Co., Ltd. |