CN101951263B - 一种按键扫描方法及系统 - Google Patents

一种按键扫描方法及系统 Download PDF

Info

Publication number
CN101951263B
CN101951263B CN201010515487A CN201010515487A CN101951263B CN 101951263 B CN101951263 B CN 101951263B CN 201010515487 A CN201010515487 A CN 201010515487A CN 201010515487 A CN201010515487 A CN 201010515487A CN 101951263 B CN101951263 B CN 101951263B
Authority
CN
China
Prior art keywords
button
port
key
scanning
line group
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
CN201010515487A
Other languages
English (en)
Other versions
CN101951263A (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 city Maggs Technology Co. Ltd.
Original Assignee
刘利华
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 刘利华 filed Critical 刘利华
Priority to CN201010515487A priority Critical patent/CN101951263B/zh
Publication of CN101951263A publication Critical patent/CN101951263A/zh
Application granted granted Critical
Publication of CN101951263B publication Critical patent/CN101951263B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及按键扫描系统,包括:按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口,任意两个所述扫描端口之间连接一个按键,其中,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接。本发明的有益效果是,通过使用较少的端口,扫描更多的按键,在按键较多而系统可用端口较少的情况下可有效节约开发成本。

Description

一种按键扫描方法及系统
技术领域
本发明涉及按键扫描解决方案技术领域,具体涉及一种按键扫描方法及系统。
背景技术
现有矩阵键盘扫描软件实现方式一般采用接线方式为行列接线法。
即将IO线以行列的方式排列,每个交叉点接一个按键。如果是16根IO线,分4X4行连接,则有16个交叉点,可识别最大16个按键。
具体包括三种方法:行扫描法、行列反转法、行列扫描法  行扫描法的工作原理是这样的:CPU首先向所有行输出低电平,如果没有按键按下,则所有列线输出为高电平。如果有某一键按下,则该键所在的列因为与行线低电平短路,该列线变为低电平。CPU在此时通过读取列线的值即可判断有无键按下。    在有键按下的情况下,CPU再来确定是哪一个键按下,采用的方法是行扫描法。先向第0行输出低电平,其余行输出高电平,然后读取所有列线的电平值。如果有某一列为低电平,则说明0行和该列跨接位置的那个键被按下了。确定了键的位置就可以退出扫描了。如果列线全为高电平,说明本行没有键按下,则继续将下一行输出低电平,其余行输出高电平,然后读取所有列线的电平值。依此类推,直到找到按下键的位置,则退出扫描。     找到按下键的位置,即该键的行号和列号,就可以获得该键的键码。这种通过行列位置表示的键码称为行列码或扫描码,也称为键盘扫描码。  行列反转法也是常用的识别闭合键的方法。其工作原理是:首先对所有行线输出低电平,列线输出高电平,同时读入列线。如果有键按下,则该键盘所在的列线为低电平,而其它列线为高电平。由此获得列号。然后向所有列线输出低电平,行线输出高电平,读行线,确定按键的行号。通过行号和列号确定按键的位置和编码。  行列扫描法也是键盘使用的主要键码识别方法。其工作原理如下:首先向每一行依次输出低电平,其余各行为高电平,每扫描一行,读取一次列线。如果列线全为高电平,说明没有键按下,如果有一列为低电平,则说明有键按下,此时可以确定行号和列号。行扫描完成。接下来依次向每一列输出低电平,读行线,再次确定按键的行号和列号。两次获得的行号和列号相同,则键码正确,即获得按下键的行列扫描码。
在现有技术的按键扫描技术中,普遍存在资源利用率不高的问题,通常一个按键需要有一个对应的I/O端口与之对应,在按键较多时,就需要较多的I/O端口,而通常单片机的I/O端口非常有限,因此需要增加硬件来扩展I/O端口,成本较高。
中国发明专利公开号“CN101795139A”,发明名称为“一种按键检测方法及按键检测电路”公开了一种按键检测方法,其特征在于包括如下步骤:a)、设置按键检测电路:将多个按键的一端接地,将多个按键的另一端分别通过不同阻值的分压电阻后连接在一起形成电压信号检测端,将该电压信号检测端通过电阻后接在电源上,将单片机的中断输入I/O口和A/D转换输入I/O口与所述该电压信号检测端连接;b)、检测是否有按键按下:用单片机的中断输入I/O口检测所述电压信号检测端的电压,当单片机的中断输入I/O口检测的电压等于电源电压时,单片机会判断为高电平,此时无按键按下;当单片机的中断输入I/O口检测的电压低于电源电压时,单片机会判断为低电平,单片机产生下降沿中断,此时有按键按下;c)、电压的A/D转换:在单片机产生下降沿中断过程中,用单片机的A/D转换输入IO口将检测到所述电压信号检测端的电压转换成数字电压;d)、判断具体是某个按键按下:单片机根据A/D转换输入I/O口转换后的数字电压的大小,判断出是某个按键按下;e)、等待下一次按键按下:按键判断完成后,让中断输入IO口等待下一次按键按下。
该种按键扫描方法可以在一定程度上解决减少占用I/O口,但是该种技术方案的实施成本仍然较高。
发明内容
为克服上述缺陷,本发明的目的即在于针对现有技术需要较多I/O端口的缺陷,提供一种占用较少I/O口且成本较低的按键扫描方法及系统。
本发明的目的是通过以下技术方案来实现的:
本发明一种按键扫描系统,主要包括:
本发明解决其技术问题所采用的技术方案是:构造一种按键扫描系统,
包括按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口,其中,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接。
在本发明所述的按键扫描系统中,当所述I/O线组具有N条I/O线时,所述按键矩阵包括2 -1个被赋予不同键值按键。
在本发明所述的按键扫描系统中,所述按键只有在按下时被短接,松开后恢复为断开状态。
本发明一种按键扫描方法的技术方案是:构造一种按键扫描方法,
使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
 A1) 设置所有扫描端口为输入端口,记录所有的按键键值和与其连接的端口号的对应数据,得到数据表C,通过C可以查询到任意按键所连接的IO端口号序列,数据表按与按键连接的IO端口的个数降序排序;然后执行步骤A2;
  A2) 休眠等待20毫秒至100毫秒,然后执行步骤A3;
  A3) 分别检测每个扫描端口的读取值,并记录下每个端口扫描的电平状态,将所有电平为低的IO端口组成序列D,若所有IO端口读取值都为高电平,则返回A2;否则执行步骤A4;
  A4) 在C中从表头到表尾依次扫描,如果某个按键所对应的IO端口序列包含于D,则记录按键键值为K并执行步骤A5;C扫描完毕,则返回步骤A2;
A5) 确定按键K被按下,返回步骤A2。
本发明的有益效果是,通过使用较少的端口,扫描更多的按键,在按键较多而系统可用端口较少的情况下可有效节约开发成本。
附图说明
为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。
图1为本发明一种按键扫描系统的原理示意图;
图2为本发明一种按键扫描系统的一种实施例的示意图;
图3为本发明一种按键扫描方法的工作流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1-2,本发明一种按键扫描系统,主要包括:
包括按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口,其中,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接。
在本发明所述的按键扫描系统中,当所述I/O线组具有N条I/O线时,所述按键矩阵包括2 -1个被赋予不同键值按键。
在本发明所述的按键扫描系统中,所述按键只有在按下时被短接,松开后恢复为断开状态。
假定I/O线组中有N根I/O线,本发明中
 在N根I/O线上取1个组合,2个组合,3个组合……,取N个组合。可以确定每个组合都是唯一的。取其中任一个组合,将其中所有的I/O线都连接到一个按键的非接地角,当此按键按下时,与按键连接的组合中所有的I/O线都将接地而被拉低,使I/O电平处于低状态。通过判断组合所有I/O线的电平状态,如果都为低,就可以确定与组合连接的按键被按下。这样一个组合就可以确定一个按键。有多少种组合就可以连接多少个按键。当所有组合都连接按键时,就可以达到最大识别按键数(2 -1)。
如图2所示,我们以四根I/O线为例进行说明,阐明我们的按键设计接线方法。
将四根I/O线101,102,103,104都接上上拉电阻105,使其平时处于I/O高电平状态,此时CPU读到的I/O线为高电平。
将所有的按键组108的一个角连接到电路线107,107通过与接地106相连,使107平时处于低电平状态。当按键按下时,按键的两个角导通,至使按键的另一个角也接地而处于低电平状态。
将101,102,103,104任取一个组合,并将每个组合中的所有IO线都连接到按键的一个角上。由图可知:101连接到[按键1];102连接到[按键2];103连接到[按键3];104连接到[按键4]。
将101,102,103,104任取两个组合,并将每个组合中的所有IO线都连接到按键的一个角上。由图可知:[101,102]连接到[按键5];[101,103]连接到[按键6];[101,104]连接到[按键7];[102,103]连接到[按键8];[102,104]连接到[按键9];[103,104]连接到[按键10]。
将101,102,103,104任取三个组合,并将每个组合中的所有IO线都连接到按键的一个角上。由图可知:[101,102,103]连接到[按键11];[101,102,104]连接到[按键12];[101,103,104]连接到[按键13];[102,103,104]连接到[按键14]。
将101,102,103,104任取三个组合,并将每个组合中的所有IO线都连接到按键的一个角上。由图可知:[101,102,103]连接到[按键11];[101,102,104]连接到[按键12];[101,103,104]连接到[按键13];[102,103,104]连接到[按键14]。
将101,102,103,104任取四个组合,并将每个组合中的所有IO线都连接到按键的一个角上。由图可知:[101,102,103,104]连接到[按键15]。
启一个定时器,每20ms扫描一次,从I/O线数最多的组合开始扫描,直到最后一个最小组合。如果组合中的I/O线电平都是低状态,则说明与组合连接的按键被按下,返回按键键值。
本发明一种按键扫描方法的技术方案是:构造一种按键扫描方法,
使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的I/O线分别与所述按键矩阵中的按键连接,该I/O线组中所有I/O线中任意条之间的彼此并联连接后分别与所述按键矩阵中的其他按键连接,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
 A1) 设置所有扫描端口为输入端口,记录所有的按键键值和与其连接的端口号的对应数据,得到数据表C,通过C可以查询到任意按键所连接的IO端口号序列,数据表按与按键连接的IO端口的个数降序排序;然后执行步骤A2;
  A2) 休眠等待20毫秒至100毫秒,然后执行步骤A3;
  A3) 分别检测每个扫描端口的读取值,并记录下每个端口扫描的电平状态,将所有电平为低的IO端口组成序列D,若所有IO端口读取值都为高电平,则返回A2;否则执行步骤A4;
  A4) 在C中从表头到表尾依次扫描,如果某个按键所对应的IO端口序列包含于D,则记录按键键值为K并执行步骤A5;C扫描完毕,则返回步骤A2;
A5) 确定按键K被按下,返回步骤A2。
在本发明所述的按键扫描方法中,在所述步骤A3中,读取扫描结果时采用延时检测消抖。
如图3所示,以四根I/O线为例进行说明,阐明我们的按键扫描方法。
扫描四个I/O组合。
 IF [101,102,103,104]都为低 THEN 返回[按键15]
扫描三个IO组合。
 IF[101,102,103]都为低 THEN 返回[按键11]
IF[101,102,104]都为低 THEN 返回[按键12]
IF[101,103,104]都为低 THEN 返回[按键13]
IF[102,103,104]都为低 THEN 返回[按键14]
扫描二个I/O组合。
 IF[101,102]都为低 THEN 返回[按键5]
IF[101,103]都为低 THEN 返回[按键6]
IF[101,104]都为低 THEN 返回[按键7]
IF[102,103]都为低 THEN 返回[按键8]
IF[102,104]都为低 THEN 返回[按键9]
IF[103,104]都为低 THEN 返回[按键10]
扫描一个I/O组合。
 IF[101]为低 THEN 返回[按键1]
IF[102]为低 THEN 返回[按键2]
IF[103]为低 THEN 返回[按键3]
IF[104]为低 THEN 返回[按键4]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种按键扫描系统,包括:按键矩阵和用于检测按键是否按下的扫描控制器,所述扫描控制器具有一个以上的扫描端口,每个扫描端口都可以作为输入端口或输出端口;
其特征在于,所述按键扫描系统还包括与所述扫描端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的各条I/O线分别与所述按键矩阵中的一部分按键一对一连接,该I/O线组中所有I/O线中任意条之间彼此连接后形成的全部连接组合中的每一个连接组合分别与所述按键矩阵中的其他按键连接,当所述I/O线组具有N条I/O线时,所述按键矩阵包括2-1个被赋予不同键值按键。
2.根据权利要求1所述的按键扫描系统,其特征在于,所述按键只有在按下时被短接,松开后恢复为断开状态。
3.一种按键扫描方法,构造一种按键扫描系统,
使用扫描控制器检测是否有按键按下,扫描控制器包括多个输入/输出端口,所述按键扫描系统还包括与所述端口连接的I/O线组,该I/O线组具有上拉电阻或者外接上拉电阻,该I/O线组中的各条I/O线分别与按键矩阵中的一部分按键一对一连接,该I/O线组中所有I/O线中任意条之间彼此连接后形成的全部连接组合中的每一个连接组合分别与所述按键矩阵中的其他按键连接,使用的按键按下时被短接,松开后恢复为断开状态,其特征在于,包括如下步骤:
 A1) 设置所有扫描端口为输入端口,记录所有的按键键值和与其连接的端口号的对应数据,得到数据表C,通过C可以查询到任意按键所连接的IO端口号序列,数据表按与按键连接的IO端口的个数降序排序;然后执行步骤A2;
  A2) 休眠等待20毫秒至100毫秒,然后执行步骤A3;
  A3) 分别检测每个扫描端口的读取值,并记录下每个端口扫描的电平状态,将所有电平为低的IO端口组成序列D,若所有IO端口读取值都为高电平,则返回A2;否则执行步骤A4;
  A4) 在C中从表头到表尾依次扫描,如果某个按键所对应的IO端口序列包含于D,则记录按键键值为K并执行步骤A5;C扫描完毕,则返回步骤A2;
A5) 确定按键K被按下,返回步骤A2。
4. 根据权利要求3所述的按键扫描方法,其特征在于,在所述步骤A3中,读取扫描结果时采用延时检测消抖。
CN201010515487A 2010-10-22 2010-10-22 一种按键扫描方法及系统 Expired - Fee Related CN101951263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010515487A CN101951263B (zh) 2010-10-22 2010-10-22 一种按键扫描方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010515487A CN101951263B (zh) 2010-10-22 2010-10-22 一种按键扫描方法及系统

Publications (2)

Publication Number Publication Date
CN101951263A CN101951263A (zh) 2011-01-19
CN101951263B true CN101951263B (zh) 2012-10-10

Family

ID=43454635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010515487A Expired - Fee Related CN101951263B (zh) 2010-10-22 2010-10-22 一种按键扫描方法及系统

Country Status (1)

Country Link
CN (1) CN101951263B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185613B (zh) * 2011-04-14 2013-04-10 北京希格玛和芯微电子技术有限公司 薄膜式键盘扫描电路及其扫描方法和键盘
CN103338043B (zh) * 2013-07-19 2016-03-16 中颖电子股份有限公司 基于碳膜走线的按键扫描硬件电路和按键扫描方法
CN103354454B (zh) * 2013-07-24 2016-04-13 中颖电子股份有限公司 基于碳膜走线的按键扫描硬件电路的按键扫描方法
CN106998207A (zh) * 2017-01-20 2017-08-01 艾体威尔电子技术(北京)有限公司 一种应用于pos系统的扫描按键方法
CN107070460B (zh) * 2017-03-30 2021-02-09 天津中兴智联科技有限公司 一种按键扫描方法及系统
CN109298331B (zh) * 2018-11-29 2021-09-24 郭玉森 低成本可检测多个任意组合按键的检测电路及处理方法
CN111049528B (zh) * 2019-10-28 2022-02-11 珠海格力电器股份有限公司 一种组合按键的扫描方法、系统、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4518951A (en) * 1981-07-10 1985-05-21 Itt Industries, Inc. Integrated circuit for a keyboard of an electronic apparatus
CN1437084A (zh) * 2002-02-08 2003-08-20 精工爱普生株式会社 基准电压发生电路和方法、显示驱动电路、显示装置
US6650317B1 (en) * 1971-07-19 2003-11-18 Texas Instruments Incorporated Variable function programmed calculator
CN101162905A (zh) * 2006-10-13 2008-04-16 鸿富锦精密工业(深圳)有限公司 键盘扫描电路及方法
CN101162906A (zh) * 2007-10-12 2008-04-16 深圳市和而泰电子科技有限公司 按键扫描系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6650317B1 (en) * 1971-07-19 2003-11-18 Texas Instruments Incorporated Variable function programmed calculator
US4518951A (en) * 1981-07-10 1985-05-21 Itt Industries, Inc. Integrated circuit for a keyboard of an electronic apparatus
CN1437084A (zh) * 2002-02-08 2003-08-20 精工爱普生株式会社 基准电压发生电路和方法、显示驱动电路、显示装置
CN101162905A (zh) * 2006-10-13 2008-04-16 鸿富锦精密工业(深圳)有限公司 键盘扫描电路及方法
CN101162906A (zh) * 2007-10-12 2008-04-16 深圳市和而泰电子科技有限公司 按键扫描系统和方法

Also Published As

Publication number Publication date
CN101951263A (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101951263B (zh) 一种按键扫描方法及系统
CN100592637C (zh) 键盘扫描电路及方法
CN201628954U (zh) 电子产品标识装置及电子设备
CN112559408B (zh) 一种主板及其信号转接系统
CN102594362A (zh) 一种基于模数转换的按键电路
CN101592706A (zh) 数字模拟混合信号芯片测试卡
CN101957428A (zh) 监控电路板的自动测试方法与工具
CN201039440Y (zh) 一种多个按键单个检测端的线控耳机
CN100593285C (zh) 按键扫描系统和方法
CN104678982A (zh) 使用独立控制模块进行测试的测试装置及其方法
CN101876930A (zh) 键盘自动测试系统
CN202364197U (zh) 一种按键检测和led控制电路
CN101626247A (zh) 键盘扫描方法
CN2685886Y (zh) 数字万用表
CN101888250A (zh) 按键系统及其方法
CN101470527A (zh) 一种可减少输入输出口的键盘电路
CN101872321A (zh) 主板故障诊断卡
CN204229149U (zh) 触摸按键驱动电路和由其构成的控制台
CN201113981Y (zh) 按键检测电路
CN105718338A (zh) 信息处理方法及电子设备
CN105094349B (zh) 动态键盘矩阵功能切换方法和系统
CN101635572A (zh) 笔记本电脑及其键盘控制器
CN201203651Y (zh) 按键状态侦测电路
CN102857232A (zh) 一种按键检测电路及检测方法
CN105227188B (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
ASS Succession or assignment of patent right

Owner name: SHENZHEN MAGNUS TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: LIU LIHUA

Effective date: 20140605

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 431600 XIAOGAN, HUBEI PROVINCE TO: 518000 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140605

Address after: 101 room 518000, dimensional building, 10 FA FA Road, Shenzhen, Guangdong, Nanshan District

Patentee after: Shenzhen city Maggs Technology Co. Ltd.

Address before: 431600 Xincheng Road, Xiaogan fairy Street office, Hubei, 31

Patentee before: Liu Lihua

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

Granted publication date: 20121010

Termination date: 20151022

EXPY Termination of patent right or utility model