CN105897276A - 一种低功耗按键检测方法及电路 - Google Patents
一种低功耗按键检测方法及电路 Download PDFInfo
- Publication number
- CN105897276A CN105897276A CN201610193615.XA CN201610193615A CN105897276A CN 105897276 A CN105897276 A CN 105897276A CN 201610193615 A CN201610193615 A CN 201610193615A CN 105897276 A CN105897276 A CN 105897276A
- Authority
- CN
- China
- Prior art keywords
- potential value
- port
- low
- button
- power consumption
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开一种低功耗按键检测方法,其特征在于,包括:步骤一、将与一按键连接的端口的电位值设置为一初始电位值;步骤二、检测该初始电位值是否改变为一第二电位值,并根据检测结果启动一计数周期;步骤三、根据该计数周期,将该电位值再次设置为该初始电位值;步骤四、检测该端口的电位值,若该电位值等于该第二电位值,则重复步骤二,若该电位值等于该初始电位值,则结束。本发明同时公开一种低功耗按键检测电路。
Description
技术领域
本发明涉及低功耗产品领域,特别涉及到一种低功耗按键检测处理的方法。
背景技术
现有技术中的大量电子产品都是电池供电的。对于这一类产品,系统功耗是考量产品优良的重要指标之一。因此,产品内每个模块在开发过程中都需要做到精益求精。对于有按键功能的电子产品,按键过程中会增大系统功耗,该功耗要远远大于待机功耗。例如,金融领域使用的动态令牌,用3伏纽扣电池供电,一般都需要持续工作3~5年,这就要求按键响应事件过程中的耗电流尽量小。
现有技术中所使用的按键检测电路的基本原理包括:首先配置GPIO(通用输入/输出)端口初始状态,配置原则为保证按键两端的初始电位值不同。当有按键事件发生即按键被按下时,按键电路两端短接,导致GPIO端口电位值发生变化,此时读取端口电位值即可判断按键按下状态。当按键事件结束后即按键被松开时,按键电路两端断开,导致GPIO端口的电位值又恢复到初始状态,此时读取端口电位值即可判断按键松开状态。
上述过程中,当按键被按下后,由于按键电路短接前存在电位差,短接后按键电路上会产生电流。等待按键松开的过程中,按键电流会一直存在。如果一次按键行为持续时间较长,长时间的电流损耗直接影响产品的使用寿命,对于功耗要求极其严格的电子产品尤为不利。
发明内容
本发明的目的在于提供一种低功耗按键检测方法及电路,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗。
为了实现上述发明目的,本发明公开一种低功耗按键检测方法,其特征在于,包括:步骤一、 将与一按键连接的端口的电位值设置为一初始电位值;步骤二、 检测该初始电位值是否改变为一第二电位值,并根据检测结果启动一计数周期;步骤三、 根据该计数周期,将该电位值再次设置为该初始电位值;步骤四、 检测该端口的电位值,若该电位值等于该第二电位值,则重复步骤二,若该电位值等于该初始电位值,则结束。
更进一步地,该端口的电位值等于该初始电位值时,该按键两端的电位值相等。
更进一步地,该计数周期为一可调节参数。
更进一步地,该端口是GPIO端口。
本发明同时公开一种低功耗按键检测电路,包括:一控制单元,该控制单元通过一端
与一按键连接;一计数器,该计数器与该控制单元连接;该控制单元将该端口的电位值设置为一初始电位值;当该初始电位值改变后启动该计数器开始一计数周期。
更进一步地,该计数周期结束后,该控制单元将该端口的电位值再次设置为该初始电位值。
更进一步地,该端口为GPIO端口。
更进一步地,该端口的电位值等于该初始电位值时,该按键两端的电位值相等。
更进一步地,该按键为M×N的按键,其中M和N为大于等于一的正整数。
更进一步地,该控制单元和该计数器位于一MCU内。
本发明所提供的低功耗按键检测方法及电路,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗。在检测期间,按键两端存在电位差,有按键电流产生;在非检测期间,通过重新配置GPIO端口状态,取消按键两端电位落差,避免了该段期间按键电流的产生。因此,在实际产品设计过程中,可以通过合理地调节计数周期,在不影响用户按键体验的前提下,尽可能地降低电流损耗。
附图说明
关于本发明的优点与精神可以通过以下的发明详述及所附图式得到进一步的了解。
图1是单个按键检测电路的示意图;
图2是本发明提供的按键检测方法的处理流程图;
图3是4×4按键检测电路示意图。
具体实施方式
下面结合附图详细说明本发明的具体实施例。
本发明提出的低功耗按键处理的方法,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗,特别适合用于对功耗要求较高的电子产品。
本发明提出了一种低功耗按键检测处理的方法,包括:
步骤1、配置GPIO端口初始状态,包括输入工作模式和初始电位值。
进一步地,上述步骤1所述的GPIO初始电位值的配置需保证按键引脚两端的电位值保持一致,即同为高电平或同为低电平。
步骤2、按键事件发生时,启动定时计数,启动周期检测流程。
进一步地,上述步骤2中所述的按键事件感知采用中断触发方法或查询方法。
步骤3、计数周期到达后,重新配置GPIO端口电平值(与初始电平值相反状态)。读取端口状态,如果GPIO端口电平值发生变化,表明按键仍处于按下状态,则配置GPIO端口电平值为初始状态,重复步骤3,等待下一周期检测时刻到达;如果GPIO电平值没有改变,表明按键已经松开,检测流程结束,转到步骤一,进行新的按键事件检测。
上述所描述的步骤3中,当按键被按下时,仅在每个检测周期期间通过修改GPIO电平值来捕获按键状态。在非检测期间,由于重新恢复配置GPIO端口电位值到初始状态,按键两端的电位值相同,避免了该段期间按键电流的产生。通过合理地调节计数周期,在不影响用户按键体验的前提下,无疑会大大降低按键功耗。
参阅图1所示,图1是一个按键检测电路的示意图。该电路图中包括一个按键2,其中按键的一端通过串联电阻与VCC连接,按键的另一端与MCU1的GPIO端口P1相连,用于按键检测。在本实施例中,端口P1可以软件配置为上拉模式或者下拉模式。如果不能内部配置P1为上拉或下拉,可以通过外部电路实现上拉或下拉。
参阅图2所示,结合图1所示电路示意图,本发明提供了一种低功耗按键检测处理的方法,具体包括步骤:
S100、将P1配置为下拉状态,同时配置为高电平触发中断或上升沿触发中断。此时读取P1端口值为低电平。
S101、当有按键事件发生时,按键电路短路导致P1端口电位值发生变化(由低电平变为高电平)并由此引发中断响应,触发按键检测处理流程。按键检测处理流程启动。重新配置P1端口为上拉状态。启动定时器进行定时计数。
S102、等待计数时间到达。
S103、计数时间到达,重新配置P1端口为下拉状态,读取P1端口电位值。如果P1端口电位值为低电平,表明没有按键事件发生或者按键已松开,按键检测结束,转到S100,重新启动按键事件监听;如果P1端口电位值为高电平,表明有按键事件发生,转S104,启动按键松开检测流程。
S104、重新配置P1端口为上拉状态,重新定时计数。
S105、等待计数时间到达。
S106、定时计数时间到达,重新配置P1端口为下拉状态,读取P1端口电位值。如果P1端口电位值为高电平,表明按键没有松开(还在按下状态),转到步骤S104,等待下一计数周期按键检测;如果P1端口电位值为低电平,表明按键已经松开,按键处理流程结束。
本发明所述的按键检测处理流程中,只有步骤S103与步骤S106中将端口配置为下拉状态,这段期间由于按键两端电位差会导致按键电流。而在检测期间之外,恢复端口电位状态值,按键两端电位值一致,避免了按键电流的产生。再者,周期按键检测的处理过程很短暂,因此通过合理地调节计数周期,可以有效地降低整个按键过程所产生的功耗,这对于功耗要求严苛的电子产品无疑是极具吸引力的。
特别地,本发明还提供了一个4×4按键检测处理流程的范例,参阅图3所示,电路共包括16个按键,4个引脚用于输出模式,4个引脚用于输入模式,以KEY6按键检测为例,具体包括步骤:
步骤1、将端口Y1/Y2/Y3/Y4配置输出模式,且配置为高电平,将端口X1/X2/X3/X4配置为下拉状态,且配置为高电平触发中断或上升沿触发中断。
步骤2、当KEY6有按键事件发生时,按键电路短路导致X2端口电位值发生变化(由低电平变为高电平)并由此引发中断响应,触发端口X2按键检测处理流程。
步骤3、X2按键检测处理流程启动。重新配置X2端口为上拉状态。
步骤4、首先启动定时计数器。
步骤5、等待计数时间到达。
步骤6、计数时间到达,重新配置端口X2为下拉状态,依次将Y1/Y2/Y3/Y4配置为高电平输出,分别读取X2端口电位值。
步骤7、将Y2配置为高,将Y1/Y3/Y4配置为低电平输出。如果X2端口电位值为高电平,表明有按键事件发生,转步骤8,启动KEY6按键松开检测流程。如果X2端口电位值为低电平,表明没有按键事件发生或者按键已松开,重新检测其他配置方式(例如,Y1配置为高电平输出,Y2/Y3/Y4配置为低电平输出;Y3配置为高电平输出,Y1/Y2/Y4配置为低电平输出;Y4配置为高电平输出,Y1/Y2/Y3配置为低电平输出),如果所有情况下X2端口电位值均为低电平,表明没有按键事件发生或者按键已松开,按键检测结束,转步骤1,重新启动按键事件监听。
步骤8、重新配置X2端口为上拉状态,配置Y1/Y2/Y3/Y4端口为高电平输出,重新定时计数。
步骤9、等待计数时间到达。
步骤10、计数时间到达,重新配置X2端口为下拉状态,将Y2配置为高电平输出,读取X2端口电位值。
步骤11、将Y2配置为高电平输出,将Y1/Y3/Y4配置为低电平输出。如果X2端口电位值为高电平,表明按键没有松开(还在按下状态),转步骤8,继续等待下一检测周期。如果X2端口电位值为低电平,表明按键已经松开,按键处理流程结束。
本说明书中所述的只是本发明的较佳具体实施例,以上实施例仅用以说明本发明的技术方案而非对本发明的限制。凡本领域技术人员依本发明的构思通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在本发明的范围之内。
Claims (10)
1.一种低功耗按键检测方法,其特征在于,包括:
步骤一、 将与一按键连接的端口的电位值设置为一初始电位值;
步骤二、 检测所述初始电位值是否改变为一第二电位值,并根据检测结果启动一计数
周期;
步骤三、 根据所述计数周期,将所述电位值再次设置为所述初始电位值;
步骤四、 检测所述端口的电位值,若所述电位值等于所述第二电位值,则重复步骤二,
若所述电位值等于所述初始电位值,则结束。
2. 如权利要求1所述的低功耗按键检测方法,其特征在于,所述端口的电位值等于所述初
始电位值时,所述按键两端的电位值相等。
3. 如权利要求1所述的低功耗按键检测方法,其特征在于,所述计数周期为一可调节参数。
4. 如权利要求1所述的低功耗按键检测方法,其特征在于,所述端口是GPIO端口。
5. 一种低功耗按键检测电路,其特征在于,包括:
一控制单元,所述控制单元通过一端口与一按键连接;
一计数器,所述计数器与所述控制单元连接;
所述控制单元将所述端口的电位值设置为一初始电位值;当所述初始电位值改变后启动
所述计数器开始一计数周期。
6. 如权利要求5所述的低功耗按键检测电路,其特征在于,所述计数周期结束后,所述控
制单元将所述端口的电位值再次设置为所述初始电位值。
7. 如权利要求5所述的低功耗按键检测电路,其特征在于,所述端口为GPIO端口。
8. 如权利要求5所述的低功耗按键检测电路,其特征在于,所述端口的电位值等于所述初
始电位值时,所述按键两端的电位值相等。
9. 如权利要求5所述的低功耗按键检测电路,其特征在于,所述按键为M×N的按键,其
中M和N为大于等于一的正整数。
10. 如权利要求5所述的低功耗按键检测电路,其特征在于,所述控制单元和所述计数器位
于一MCU内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610193615.XA CN105897276A (zh) | 2016-03-31 | 2016-03-31 | 一种低功耗按键检测方法及电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610193615.XA CN105897276A (zh) | 2016-03-31 | 2016-03-31 | 一种低功耗按键检测方法及电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105897276A true CN105897276A (zh) | 2016-08-24 |
Family
ID=57013981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610193615.XA Pending CN105897276A (zh) | 2016-03-31 | 2016-03-31 | 一种低功耗按键检测方法及电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105897276A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020070923A1 (en) * | 1998-01-23 | 2002-06-13 | Levy David H. | Keyboards with both individual and combination key output |
CN102508556A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市元征软件开发有限公司 | 键盘扫描的实现方法 |
CN105071816A (zh) * | 2015-08-12 | 2015-11-18 | 长沙市博巨兴电子科技有限公司 | 一种高效率快速按键扫描方法 |
-
2016
- 2016-03-31 CN CN201610193615.XA patent/CN105897276A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020070923A1 (en) * | 1998-01-23 | 2002-06-13 | Levy David H. | Keyboards with both individual and combination key output |
CN102508556A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市元征软件开发有限公司 | 键盘扫描的实现方法 |
CN105071816A (zh) * | 2015-08-12 | 2015-11-18 | 长沙市博巨兴电子科技有限公司 | 一种高效率快速按键扫描方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5710107B2 (ja) | キー操作検出回路 | |
CN102023912B (zh) | 休眠唤醒测试系统及方法 | |
CN103973287A (zh) | 开关机电路 | |
CN102331834B (zh) | 移动终端开机控制方法及移动终端 | |
CN103543344B (zh) | 一种解决电容屏失效的方法及电容屏异常侦测电路 | |
CN109560804A (zh) | 一种触摸按键控制方法、控制电路、芯片 | |
US20190138322A1 (en) | False-touch-wakeup prevention apparatus and method, intelligent terminal and computer storage medium | |
CN203504522U (zh) | 触摸按键控制电路及空调器 | |
CN101893925B (zh) | 启动电路 | |
JP2007157371A (ja) | 静電容量型デジタル式タッチパネル | |
CN206270863U (zh) | Cmos数据清除装置及计算机 | |
CN105491242A (zh) | 移动通讯终端及其控制方法和装置 | |
CN105897276A (zh) | 一种低功耗按键检测方法及电路 | |
CN108037865A (zh) | 消息显示方法及电子设备 | |
CN104461035A (zh) | 可处理多按键同时按下的mcu键盘电路及其实现方法 | |
CN107027163A (zh) | TypeC耳机唤醒手机电路 | |
CN204707029U (zh) | 过电流保护装置 | |
CN107844211B (zh) | 触控电子装置、触控处理装置与其触控处理方法 | |
CN102522976A (zh) | 按键扩展电路、扩展方法及移动终端 | |
CN102487277A (zh) | 感应装置及感应方法 | |
JPH07236180A (ja) | 論理装置を活性化するための装置 | |
CN201113981Y (zh) | 按键检测电路 | |
CN210157162U (zh) | 一种实现硬件复位的按键组合电路 | |
CN100410672C (zh) | 信号输出装置及其操作方法 | |
CN105739661B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |
|
WD01 | Invention patent application deemed withdrawn after publication |