CN100593285C - 按键扫描系统和方法 - Google Patents

按键扫描系统和方法 Download PDF

Info

Publication number
CN100593285C
CN100593285C CN200710123928A CN200710123928A CN100593285C CN 100593285 C CN100593285 C CN 100593285C CN 200710123928 A CN200710123928 A CN 200710123928A CN 200710123928 A CN200710123928 A CN 200710123928A CN 100593285 C CN100593285 C CN 100593285C
Authority
CN
China
Prior art keywords
port
scanning
button
output
input
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.)
Expired - Fee Related
Application number
CN200710123928A
Other languages
English (en)
Other versions
CN101162906A (zh
Inventor
王强
刘建伟
首召兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen H&T Electronic Technology Co Ltd
Shenzhen H&T Intelligent Control Co Ltd
Original Assignee
Shenzhen H&T Intelligent Control Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen H&T Intelligent Control Co Ltd filed Critical Shenzhen H&T Intelligent Control Co Ltd
Priority to CN200710123928A priority Critical patent/CN100593285C/zh
Publication of CN101162906A publication Critical patent/CN101162906A/zh
Application granted granted Critical
Publication of CN100593285C publication Critical patent/CN100593285C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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中的输入输出端口分组不一致,返回步骤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 (3)

1、一种按键扫描方法,使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,每个扫描端口分别通过一个按键连接到地,任意两个扫描端口之间连接一个按键,每个扫描端口内部具有上拉电阻或外接上拉电阻,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
A1)设置所有扫描端口为输入端口,分别检测每个扫描端口的读取值,如果任一端口读取到低电平,则记录扫描结果,然后执行步骤A4;若所有端口读取都为高电平,则标记所有连接在扫描端口和地之间的按键已经被扫描,然后执行步骤A2;
A2)将平均分成两组的扫描端口,一组设置为输出,一组设置为输入,设置为输出的扫描端口依次输出低电平;
A3)分别检测所有设置为输入的扫描端口的读取值,如果任一设置为输入的扫描端口读取到低电平,则记录扫描结果,然后执行步骤A5;若所有设置为输入的端口读取都为高电平,则标记所有一端连接到设置为输出的扫描端口,另一端连接到设置为输入的扫描端口之间的按键已经被扫描,然后执行步骤A4;
A4)如果所有扫描端口按键都已经被扫描,则完成扫描,否则,把部分输入端口改变为输出端口,把与改变的输入端口相等数目的输出端口改变为输入端口,且输入输出端口的分组与前面输入输出端口的分组不一致,依次将所改变的输出端口和未改变的输出端口同时输出低电平,返回步骤A3;
A5)根据记录的扫描结果,确定哪个按键被按下。
2、根据权利要求1所述的按键扫描方法,其特征在于,所述步骤A4中还包括如下步骤:
A4.1)根据未被扫描的按键,确定新的扫描端口的输入输出分组,使得在新的分组下,可以覆盖最多的未扫描按键。
3、根据权利要求1所述的按键扫描方法,其特征在于,在所述步骤A1、A2和A3中,读取扫描结果时采用延时检测消抖。
CN200710123928A 2007-10-12 2007-10-12 按键扫描系统和方法 Expired - Fee Related CN100593285C (zh)

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 CN101162906A (zh) 2008-04-16
CN100593285C true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888250A (zh) * 2010-06-03 2010-11-17 无锡力芯微电子股份有限公司 按键系统及其方法
CN101951263B (zh) * 2010-10-22 2012-10-10 刘利华 一种按键扫描方法及系统
CN102164200A (zh) * 2011-03-08 2011-08-24 惠州Tcl移动通信有限公司 一种手机
CN103576863B (zh) * 2012-06-21 2017-02-15 深圳市金正方科技股份有限公司 一种键盘输入的方法及装置
CN103354455B (zh) * 2013-08-05 2016-08-10 杭州士兰微电子股份有限公司 三角键盘的按键扫描方法、电路及三角键盘设备
CN107301726A (zh) * 2017-07-03 2017-10-27 惠州市天泽盈丰物联网科技股份有限公司 智能卡数据采集终端、按键扫描系统及方法
CN109698705A (zh) * 2019-01-09 2019-04-30 上海中基国威电子股份有限公司 一种多线按键判断系统

Also Published As

Publication number Publication date
CN101162906A (zh) 2008-04-16

Similar Documents

Publication Publication Date Title
CN100593285C (zh) 按键扫描系统和方法
CN100592637C (zh) 键盘扫描电路及方法
CN101951263B (zh) 一种按键扫描方法及系统
CN202455337U (zh) 一种基于模数转换的按键电路
CN101394185A (zh) 一种按键检测电路及其方法
CN201039440Y (zh) 一种多个按键单个检测端的线控耳机
CN101521568B (zh) 一种网络隔离一键快速切换装置及其控制方法
CN106484184A (zh) 触摸屏及其识别方法
CN203457140U (zh) 一种用单个io口扩展多个按键的电路结构
CN101626247B (zh) 键盘扫描方法
CN201662609U (zh) 一种按键检测电路
CN104898853A (zh) 一种新型三端轻触开关
CN102857231B (zh) 一种按键检测电路
CN100562862C (zh) 输入系统
CN101783669A (zh) 电容式触摸按键及其判断方法
CN102411451B (zh) 触摸屏的信号处理方法及装置
CN206863542U (zh) 按键检测电路
US20130275632A1 (en) Key detection circuit
CN203117961U (zh) 死机监测和复位装置
CN103455148B (zh) 一种键盘和按键检测方法、以及移动设备
CN201113981Y (zh) 按键检测电路
CN102541267B (zh) 一种矩阵键盘电路、扫描方法、装置、处理器及手持终端
CN209803294U (zh) 一种矩阵按键的检测装置
CN105718338A (zh) 信息处理方法及电子设备
CN204143541U (zh) Atm机维护键盘

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

Addressee: Patent director of Shenzhen Hetai Intelligent Control Co., Ltd

Document name: Notice of termination of patent

DD01 Delivery of document by public notice
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100303

Termination date: 20191012

CF01 Termination of patent right due to non-payment of annual fee