CN101162906A - 按键扫描系统和方法 - Google Patents
按键扫描系统和方法 Download PDFInfo
- Publication number
- CN101162906A CN101162906A CNA2007101239289A CN200710123928A CN101162906A CN 101162906 A CN101162906 A CN 101162906A CN A2007101239289 A CNA2007101239289 A CN A2007101239289A CN 200710123928 A CN200710123928 A CN 200710123928A CN 101162906 A CN101162906 A CN 101162906A
- Authority
- CN
- China
- Prior art keywords
- port
- scanning
- button
- key
- keyboard
- 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
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
本发明涉及一种按键扫描系统和方法;按键扫描系统包括按键矩阵和用于检测按键是否按下的扫描控制器,扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口;每个扫描端口分别通过一个所述按键连接到地,任意两个所述扫描端口之间连接一个按键;按键扫描方法包括首先检测一端接地的按键,然后在通过扫描端口分为输入和输出两组的交替扫描检测连接在扫描端口之间的按键;通过本发明的按键扫描系统和方法可以实现较少的I/O端口实现较多按键的扫描。
Description
技术领域
本发明涉按键扫描,具体涉及一种按键扫描系统和方法。
背景技术
单片机控制电路在现在的电子产品中应用相当广泛,而作为人机接口的按键扫描的方法更是多种多样。通常一个按键需要有一个对应的I/O端口与之对应,在按键较多时,就需要较多的I/O端口,而通常单片机的I/O端口非常有限,因此需要增加硬件来扩展I/O端口,成本较高。
发明内容
本发明要解决的技术问题在于,针对现有技术需要较多I/O端口的缺陷,提供一种按键扫描系统和方法。
本发明解决其技术问题所采用的技术方案是:构造一种按键扫描系统,包括按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口;每个所述扫描端口分别通过一个所述按键连接到地,任意两个所述扫描端口之间连接一个按键。
在本发明所述的按键扫描系统中,当所述扫描控制器具有N个端口时,所述按键矩阵包括N*(N+1)/2个按键。
在本发明所述的按键扫描系统中,所述扫描控制器为单片机。
在本发明所述的按键扫描系统中,所述扫描端口内部上拉或外接上拉电阻。
在本发明所述的按键扫描系统中,所述按键只有在按下时被短接,松开后恢复为断开状态。
在本发明所述的按键扫描系统中,所述上拉电阻为10K。
本发明解决其技术问题所采用的技术方案是:构造一种按键扫描方法,使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,每个扫描端口分别通过一个按键连接到地,任意两个扫描端口之间连接一个按键,每个扫描端口具有内部上拉或外接上拉电阻,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
A1)设置所有扫描端口为输入端口,分别检测每个扫描端口的读取值,如果任一端口读取到低电平,则记录扫描结果,然后执行步骤A4;若所有端口读取都为高电平,则标记所有连接在扫描端口和地之间的按键已经被扫描,然后执行步骤A2;
A2)将所有扫描端口分成两组,一组设置为输出,一组设置为输入,设置为输出的扫描端口输出低电平;分别检测所有设置为输入的扫描端口的读取值,如果任一设置为输入的扫描端口读取到低电平,则记录扫描结果,然后执行步骤A4;若所有设置为输入的端口读取都为高电平,则标记所有一端连接到设置为输出的扫描端口,另一端连接到设置为输入的扫描端口之间的按键已经被扫描,然后执行步骤A3;
A3)如果所有扫描端口按键都已经被扫描,则完成扫描,否则改变端口的输入和输出分组,返回步骤A2;
A4)根据记录的扫描结果,确定哪个按键被按下。
在本发明所述的按键扫描方法中,所述步骤A3中还包括如下步骤:
A3.1)根据未被扫描的按键,确定新的扫描端口的输入输出分组,使得在新的分组下,可以覆盖最多的未扫描按键。
在本发明所述的按键扫描方法中,在所述步骤A1和A2中,读取扫描结果时采用延时检测消抖。
本发明的有益效果是,通过使用较少的端口,扫描更多的按键,在按键较多而系统可用端口较少的情况下可有效节约开发成本。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明按键扫描系统的原理框图;
图2是本发明按键扫描系统一种实施例的电路图;
图3是图2所示按键扫描系统的按键扫描方法步骤S2可检测按键连接关系示意图;
图4是图2所示按键扫描系统的按键扫描方法步骤S3可检测按键连接关系示意图;
图5是图2所示按键扫描系统的按键扫描方法步骤S4可检测按键连接关系示意图。
具体实施方式
以下结合图2~图5说明本发明按键扫描系统和方法的一个具体实施例,如图2所示按键扫描系统中,使用单片机作为扫描控制器,具有8个扫描端口P10~P17,按键总数为36个。按键KEY17~KEY24一端连接到地,另一端连接到扫描端口;具体为:KEY21连接到端口P10,KEY22连接到端口P11,KEY23连接到端口P13,KEY24连接到端口P13,KEY17连接到端口P14,KEY18连接到端口P15,KEY19连接到端口P16,KEY20连接到端口P17。其余按键KEY1~KEY16和KEY25~KEY36两端分别各连接到一个扫描端口。具体为:
按键KEY31,一端连接到端口P10,另一端连接到端口P11;
按键KEY32,一端连接到端口P10,另一端连接到端口P12;
按键KEY34,一端连接到端口P10,另一端连接到端口P13;
按键KEY4,一端连接到端口P10,另一端连接到端口P14;
按键KEY8,一端连接到端口P10,另一端连接到端口P15;
按键KEY12,一端连接到端口P10,另一端连接到端口P16;
按键KEY16,一端连接到端口P10,另一端连接到端口P17;
按键KEY33,一端连接到端口P11,另一端连接到端口P12;
按键KEY35,一端连接到端口P11,另一端连接到端口P13;
按键KEY3,一端连接到端口P11,另一端连接到端口P14;
按键KEY7,一端连接到端口P11,另一端连接到端口P15;
按键KEY11,一端连接到端口P11,另一端连接到端口P16;
按键KEY15,一端连接到端口P11,另一端连接到端口P17;
按键KEY36,一端连接到端口P12,另一端连接到端口P13;
按键KEY2,一端连接到端口P12,另一端连接到端口P14;
按键KEY6,一端连接到端口P12,另一端连接到端口P15;
按键KEY10,一端连接到端口P12,另一端连接到端口P16;
按键KEY14,一端连接到端口P12,另一端连接到端口P17;
按键KEY1,一端连接到端口P13,另一端连接到端口P14;
按键KEY5,一端连接到端口P13,另一端连接到端口P15;
按键KEY9,一端连接到端口P13,另一端连接到端口P16;
按键KEY13,一端连接到端口P13,另一端连接到端口P17;
按键KEY25,一端连接到端口P14,另一端连接到端口P15;
按键KEY26,一端连接到端口P14,另一端连接到端口P16;
按键KEY28,一端连接到端口P14,另一端连接到端口P17;
按键KEY27,一端连接到端口P15,另一端连接到端口P16;
按键KEY29,一端连接到端口P15,另一端连接到端口P17;
按键KEY30,一端连接到端口P16,另一端连接到端口P17。
针对图2的按键扫描系统具体执行按键扫描的详细流程图,包括如下具体步骤:
S1)设置端口P10~P17都为输入,检测是否有扫描端口读取值为低电平,如果有某端口读取为低电平,则结束扫描,根据扫描端口和按键之间的对应关系得到按下的按键,如P10读取到低电平,则表示KEY21按键被按下。该步骤可检测按键KEY17~KEY24是否按下。
S2)设置端口P10~P13为输入,设置端口P14~P17为输出,依次设置P14~P17中的一个端口为低电平,分别检测P10~P13是否读取到低电平,如果有读取到低电平,则根据P14~P17的输出状态和P10~P13的读取的低电平信号可以判断出哪个按键被按下。如P14输出低电平时,如果检测到P10为低电平,则说明连接在端口P14和P10之间的KEY4按键按下。本步骤可检测一端连接在P10~P13,另一端连接到P14~P17的按键KEY1~KEY16。可检测的按键和端口的连接关系如图3所示。
S3)设置端口P10、P11、P14、P15为输入,设置端口P12、P13、P16、P17为输出,端口P12、P13、P16、P17分别依次输出低电平,分别检测端口P10、P11、P14、P15是否读取到低电平,如果有读取到低电平,则根据P12、P13、P16、P17的输出状态和P10、P11、P14、P15的读取的低电平信号可以判断出哪个按键被按下。如P12输出低电平时,P10检测到低电平,则说明连接在端口P10和P12之间的按键KEY32被按下。本步骤可检测一端连接在P10~P11,另一端连接在P12~P13之间的按键KEY32~K35;和一端连接在P14~P15,另一端连接在P16~P17之间的按键KEY26~K29。
针对本步骤待检测的按键,端口P12、P13和端口P16、P17之间同时输出低电平不影响按键的判断,因此可以在端口P12输出为低电平时,P16或P17可同时输出为低电平;也可以在端口P13输出为低电平时,P16或P17可同时输出为低电平,从而提高搜索效率。
本步骤可检测的按键和端口的连接关系如图4所示。
S4)设置端口P10、P12、P14、P16为输入,设置端口P11、P13、P15、P17为输出,端口P11、P13、P15、P17依次输出低电平,检测设置端口P10、P12、P14、P16是否读取到低电平,根据端口P10、P12、P14、P16是否读取到低电平可判断P10和P11之间、P12和P13之间、P14和P15之间、P16和P17之间的按键是否有按下。如果P10读取到低电平,则说明连接在P10和P11之间的按键KEY31被按下。该步骤检测可检测连接在P10和P11之间、P12和P13之间、P14和P15之间、P16和P17之间的按键KEY31、KEY36、KEY25和KEY30。
针对本步骤待检测的按键,P11、P13、P15、P17同时输出为低电平时不影响按键的判断,因此可同时输出低电平以提高搜索效率。
本步骤可检测的按键和端口的连接关系如图5所示。
在所有的扫描步骤中,读取扫描结果时采用延时检测消抖,以降低偶然干扰造成的误判。
Claims (10)
1.一种按键扫描系统,包括按键矩阵和用于检测按键是否按下的扫描控制器,其特征在于,
所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口;
每个所述扫描端口分别通过一个按键连接到地,任意两个所述扫描端口之间连接一个按键。
2.根据权利要求1所述的按键扫描系统,其特征在于,当所述扫描控制器具有N个端口时,所述按键矩阵包括N*(N+1)/2个按键。
3.根据权利要求1所述的按键扫描系统,其特征在于,当所述扫描控制器为单片机。
4.根据权利要求1所述的按键扫描系统,其特征在于,所述扫描端口内部上拉。
5.根据权利要求1所述的按键扫描系统,其特征在于,所述扫描端口外接上拉电阻。
6.根据权利要求1所述的按键扫描系统,其特征在于,所述按键只有在按下时被短接,松开后恢复为断开状态。
7.根据权利要求5所述的按键扫描系统,其特征在于,当所述上拉电阻为10K。
8.一种按键扫描方法,使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,每个扫描端口分别通过一个按键连接到地,任意两个扫描端口之间连接一个按键,每个扫描端口具有内部上拉或外接上拉电阻,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
A1)设置所有扫描端口为输入端口,分别检测每个扫描端口的读取值,如果任一端口读取到低电平,则记录扫描结果,然后执行步骤A4;若所有端口读取都为高电平,则标记所有连接在扫描端口和地之间的按键已经被扫描,然后执行步骤A2;
A2)将所有扫描端口分成两组,一组设置为输出,一组设置为输入,设置为输出的扫描端口输出低电平;分别检测所有设置为输入的扫描端口的读取值,如果任一设置为输入的扫描端口读取到低电平,则记录扫描结果,然后执行步骤A4;若所有设置为输入的端口读取都为高电平,则标记所有一端连接到设置为输出的扫描端口,另一端连接到设置为输入的扫描端口之间的按键已经被扫描,然后执行步骤A3;
A3)如果所有扫描端口按键都已经被扫描,则完成扫描,否则改变端口的输入和输出分组,返回步骤A2;
A4)根据记录的扫描结果,确定哪个按键被按下。
9.根据权利要求8所述的按键扫描方法,其特征在于,所述步骤A3中还包括如下步骤:
A3.1)根据未被扫描的按键,确定新的扫描端口的输入输出分组,使得在新的分组下,可以覆盖最多的未扫描按键。
10.根据权利要求8所述的按键扫描方法,其特征在于,在所述步骤A1和A2中,读取扫描结果时采用延时检测消抖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710123928A CN100593285C (zh) | 2007-10-12 | 2007-10-12 | 按键扫描系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710123928A CN100593285C (zh) | 2007-10-12 | 2007-10-12 | 按键扫描系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101162906A true CN101162906A (zh) | 2008-04-16 |
CN100593285C CN100593285C (zh) | 2010-03-03 |
Family
ID=39297759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710123928A Expired - Fee Related CN100593285C (zh) | 2007-10-12 | 2007-10-12 | 按键扫描系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100593285C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888250A (zh) * | 2010-06-03 | 2010-11-17 | 无锡力芯微电子股份有限公司 | 按键系统及其方法 |
CN101951263A (zh) * | 2010-10-22 | 2011-01-19 | 刘利华 | 一种按键扫描方法及系统 |
CN102164200A (zh) * | 2011-03-08 | 2011-08-24 | 惠州Tcl移动通信有限公司 | 一种手机 |
CN103354455A (zh) * | 2013-08-05 | 2013-10-16 | 杭州士兰微电子股份有限公司 | 三角键盘的按键扫描方法、电路及三角键盘设备 |
CN103576863A (zh) * | 2012-06-21 | 2014-02-12 | 深圳市金正方科技有限公司 | 一种键盘输入的方法及装置 |
CN107301726A (zh) * | 2017-07-03 | 2017-10-27 | 惠州市天泽盈丰物联网科技股份有限公司 | 智能卡数据采集终端、按键扫描系统及方法 |
CN109698705A (zh) * | 2019-01-09 | 2019-04-30 | 上海中基国威电子股份有限公司 | 一种多线按键判断系统 |
CN114047723A (zh) * | 2021-11-19 | 2022-02-15 | 广州保仕盾智能科技有限公司 | 一种智能门锁的抗电磁干扰的装置 |
-
2007
- 2007-10-12 CN CN200710123928A patent/CN100593285C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888250A (zh) * | 2010-06-03 | 2010-11-17 | 无锡力芯微电子股份有限公司 | 按键系统及其方法 |
CN101951263A (zh) * | 2010-10-22 | 2011-01-19 | 刘利华 | 一种按键扫描方法及系统 |
CN101951263B (zh) * | 2010-10-22 | 2012-10-10 | 刘利华 | 一种按键扫描方法及系统 |
CN102164200A (zh) * | 2011-03-08 | 2011-08-24 | 惠州Tcl移动通信有限公司 | 一种手机 |
CN103576863A (zh) * | 2012-06-21 | 2014-02-12 | 深圳市金正方科技有限公司 | 一种键盘输入的方法及装置 |
CN103576863B (zh) * | 2012-06-21 | 2017-02-15 | 深圳市金正方科技股份有限公司 | 一种键盘输入的方法及装置 |
CN103354455A (zh) * | 2013-08-05 | 2013-10-16 | 杭州士兰微电子股份有限公司 | 三角键盘的按键扫描方法、电路及三角键盘设备 |
CN103354455B (zh) * | 2013-08-05 | 2016-08-10 | 杭州士兰微电子股份有限公司 | 三角键盘的按键扫描方法、电路及三角键盘设备 |
CN107301726A (zh) * | 2017-07-03 | 2017-10-27 | 惠州市天泽盈丰物联网科技股份有限公司 | 智能卡数据采集终端、按键扫描系统及方法 |
CN109698705A (zh) * | 2019-01-09 | 2019-04-30 | 上海中基国威电子股份有限公司 | 一种多线按键判断系统 |
CN114047723A (zh) * | 2021-11-19 | 2022-02-15 | 广州保仕盾智能科技有限公司 | 一种智能门锁的抗电磁干扰的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100593285C (zh) | 2010-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100593285C (zh) | 按键扫描系统和方法 | |
CN101951263B (zh) | 一种按键扫描方法及系统 | |
CN102221932B (zh) | 一种触摸屏指令的输入方法和用户设备 | |
CN202455337U (zh) | 一种基于模数转换的按键电路 | |
CN100592637C (zh) | 键盘扫描电路及方法 | |
CN101394185A (zh) | 一种按键检测电路及其方法 | |
CN104317417B (zh) | 一种键鼠平滑切换的方法、装置及系统 | |
CN101521568B (zh) | 一种网络隔离一键快速切换装置及其控制方法 | |
CN106484184A (zh) | 触摸屏及其识别方法 | |
CN102445474B (zh) | 气体探测器及其传感器识别方法和传感器连接检测方法 | |
CN203457140U (zh) | 一种用单个io口扩展多个按键的电路结构 | |
CN116880716B (zh) | 产品输入控制电路及方法 | |
CN104898853A (zh) | 一种新型三端轻触开关 | |
CN101626247A (zh) | 键盘扫描方法 | |
CN100562862C (zh) | 输入系统 | |
CN101783669A (zh) | 电容式触摸按键及其判断方法 | |
CN201204575Y (zh) | 非接触式触摸感应按键矩阵电路 | |
CN102467243A (zh) | 一种键盘矩阵分析结构及方法 | |
CN101470527A (zh) | 一种可减少输入输出口的键盘电路 | |
CN207396651U (zh) | 一种键盘按钮检测系统 | |
CN105227188B (zh) | 一种多按键检测电路 | |
CN201113981Y (zh) | 按键检测电路 | |
CN203117961U (zh) | 死机监测和复位装置 | |
CN209803294U (zh) | 一种矩阵按键的检测装置 | |
CN212483815U (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Patent director of Shenzhen Hetai Intelligent Control Co., Ltd Document name: Notice of termination of patent |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100303 Termination date: 20191012 |