一种低功耗按键检测方法及电路的制作方法

文档序号:10538386阅读:901来源:国知局
一种低功耗按键检测方法及电路的制作方法
【专利摘要】本发明公开一种低功耗按键检测方法,其特征在于,包括:步骤一、将与一按键连接的端口的电位值设置为一初始电位值;步骤二、检测该初始电位值是否改变为一第二电位值,并根据检测结果启动一计数周期;步骤三、根据该计数周期,将该电位值再次设置为该初始电位值;步骤四、检测该端口的电位值,若该电位值等于该第二电位值,则重复步骤二,若该电位值等于该初始电位值,则结束。本发明同时公开一种低功耗按键检测电路。
【专利说明】
一种低功耗按键检测方法及电路
技术领域
[0001]本发明涉及低功耗产品领域,特别涉及到一种低功耗按键检测处理的方法。
【背景技术】
[0002]现有技术中的大量电子产品都是电池供电的。对于这一类产品,系统功耗是考量产品优良的重要指标之一。因此,产品内每个模块在开发过程中都需要做到精益求精。对于有按键功能的电子产品,按键过程中会增大系统功耗,该功耗要远远大于待机功耗。例如,金融领域使用的动态令牌,用3伏纽扣电池供电,一般都需要持续工作3?5年,这就要求按键响应事件过程中的耗电流尽量小。
[0003]现有技术中所使用的按键检测电路的基本原理包括:首先配置GP1(通用输入/输出)端口初始状态,配置原则为保证按键两端的初始电位值不同。当有按键事件发生即按键被按下时,按键电路两端短接,导致GP1端口电位值发生变化,此时读取端口电位值即可判断按键按下状态。当按键事件结束后即按键被松开时,按键电路两端断开,导致GP1端口的电位值又恢复到初始状态,此时读取端口电位值即可判断按键松开状态。
[0004]上述过程中,当按键被按下后,由于按键电路短接前存在电位差,短接后按键电路上会产生电流。等待按键松开的过程中,按键电流会一直存在。如果一次按键行为持续时间较长,长时间的电流损耗直接影响产品的使用寿命,对于功耗要求极其严格的电子产品尤为不利。

【发明内容】

[0005]本发明的目的在于提供一种低功耗按键检测方法及电路,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗。
[0006]为了实现上述发明目的,本发明公开一种低功耗按键检测方法,其特征在于,包括:步骤一、将与一按键连接的端口的电位值设置为一初始电位值;步骤二、检测该初始电位值是否改变为一第二电位值,并根据检测结果启动一计数周期;步骤三、根据该计数周期,将该电位值再次设置为该初始电位值;步骤四、检测该端口的电位值,若该电位值等于该第二电位值,则重复步骤二,若该电位值等于该初始电位值,则结束。
[0007]更进一步地,该端口的电位值等于该初始电位值时,该按键两端的电位值相等。
[0008]更进一步地,该计数周期为一可调节参数。
[0009]更进一步地,该端口是GP1端口。
[0010]本发明同时公开一种低功耗按键检测电路,包括:一控制单元,该控制单元通过一端
与一按键连接;一计数器,该计数器与该控制单元连接;该控制单元将该端口的电位值设置为一初始电位值;当该初始电位值改变后启动该计数器开始一计数周期。
[0011 ]更进一步地,该计数周期结束后,该控制单元将该端口的电位值再次设置为该初始电位值。
[0012]更进一步地,该端口为GP1端口。
[0013]更进一步地,该端口的电位值等于该初始电位值时,该按键两端的电位值相等。
[0014]更进一步地,该按键为MX N的按键,其中M和N为大于等于一的正整数。
[0015]更进一步地,该控制单元和该计数器位于一M⑶内。
[0016]本发明所提供的低功耗按键检测方法及电路,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗。在检测期间,按键两端存在电位差,有按键电流产生;在非检测期间,通过重新配置GP1端口状态,取消按键两端电位落差,避免了该段期间按键电流的产生。因此,在实际产品设计过程中,可以通过合理地调节计数周期,在不影响用户按键体验的前提下,尽可能地降低电流损耗。
【附图说明】
[0017]关于本发明的优点与精神可以通过以下的发明详述及所附图式得到进一步的了解。
[0018]图1是单个按键检测电路的示意图;
图2是本发明提供的按键检测方法的处理流程图;
图3是4 X 4按键检测电路不意图。
【具体实施方式】
[0019]下面结合附图详细说明本发明的具体实施例。
[0020]本发明提出的低功耗按键处理的方法,通过周期查询检测按键状态,大大降低了按键整个过程中的电流消耗,特别适合用于对功耗要求较高的电子产品。
[0021]本发明提出了一种低功耗按键检测处理的方法,包括:
步骤1、配置GP1端口初始状态,包括输入工作模式和初始电位值。
[0022]进一步地,上述步骤I所述的GP1初始电位值的配置需保证按键引脚两端的电位值保持一致,即同为高电平或同为低电平。
[0023]步骤2、按键事件发生时,启动定时计数,启动周期检测流程。
[0024]进一步地,上述步骤2中所述的按键事件感知采用中断触发方法或查询方法。
[0025]步骤3、计数周期到达后,重新配置GP1端口电平值(与初始电平值相反状态)。读取端口状态,如果GP1端口电平值发生变化,表明按键仍处于按下状态,则配置GP1端口电平值为初始状态,重复步骤3,等待下一周期检测时刻到达;如果GP1电平值没有改变,表明按键已经松开,检测流程结束,转到步骤一,进行新的按键事件检测。
[0026]上述所描述的步骤3中,当按键被按下时,仅在每个检测周期期间通过修改GP1电平值来捕获按键状态。在非检测期间,由于重新恢复配置GP1端口电位值到初始状态,按键两端的电位值相同,避免了该段期间按键电流的产生。通过合理地调节计数周期,在不影响用户按键体验的前提下,无疑会大大降低按键功耗。
[0027]参阅图1所示,图1是一个按键检测电路的示意图。该电路图中包括一个按键2,其中按键的一端通过串联电阻与VCC连接,按键的另一端与MCUl的GP1端口 Pl相连,用于按键检测。在本实施例中,端口Pl可以软件配置为上拉模式或者下拉模式。如果不能内部配置Pl为上拉或下拉,可以通过外部电路实现上拉或下拉。
[0028]参阅图2所示,结合图1所示电路示意图,本发明提供了一种低功耗按键检测处理的方法,具体包括步骤:
S100、将Pl配置为下拉状态,同时配置为高电平触发中断或上升沿触发中断。此时读取Pl端口值为低电平。
[0029]SlOl、当有按键事件发生时,按键电路短路导致Pl端口电位值发生变化(由低电平变为高电平)并由此引发中断响应,触发按键检测处理流程。按键检测处理流程启动。重新配置Pl端口为上拉状态。启动定时器进行定时计数。
[0030]S102、等待计数时间到达。
[0031]S1 3、计数时间到达,重新配置PI端口为下拉状态,读取PI端口电位值。如果PI端口电位值为低电平,表明没有按键事件发生或者按键已松开,按键检测结束,转到SlOO,重新启动按键事件监听;如果Pl端口电位值为高电平,表明有按键事件发生,转S104,启动按键松开检测流程。
[0032]S104、重新配置Pl端口为上拉状态,重新定时计数。
[0033]S105、等待计数时间到达。
[0034]S106、定时计数时间到达,重新配置PI端口为下拉状态,读取Pl端口电位值。如果Pl端口电位值为高电平,表明按键没有松开(还在按下状态),转到步骤S104,等待下一计数周期按键检测;如果Pl端口电位值为低电平,表明按键已经松开,按键处理流程结束。
[0035]本发明所述的按键检测处理流程中,只有步骤S103与步骤S106中将端口配置为下拉状态,这段期间由于按键两端电位差会导致按键电流。而在检测期间之外,恢复端口电位状态值,按键两端电位值一致,避免了按键电流的产生。再者,周期按键检测的处理过程很短暂,因此通过合理地调节计数周期,可以有效地降低整个按键过程所产生的功耗,这对于功耗要求严苛的电子产品无疑是极具吸引力的。
[0036]特别地,本发明还提供了一个4X4按键检测处理流程的范例,参阅图3所示,电路共包括16个按键,4个引脚用于输出模式,4个引脚用于输入模式,以KEY6按键检测为例,具体包括步骤:
步骤1、将端口 Y1/Y2/Y3/Y4配置输出模式,且配置为高电平,将端口 X1/X2/X3/X4配置为下拉状态,且配置为高电平触发中断或上升沿触发中断。
[0037]步骤2、当KEY6有按键事件发生时,按键电路短路导致X2端口电位值发生变化(由低电平变为高电平)并由此引发中断响应,触发端口 X2按键检测处理流程。
[0038]步骤3、X2按键检测处理流程启动。重新配置X2端口为上拉状态。
[0039]步骤4、首先启动定时计数器。
[0040]步骤5、等待计数时间到达。
[0041 ] 步骤6、计数时间到达,重新配置端口 X2为下拉状态,依次将Y1/Y2/Y3/Y4配置为高电平输出,分别读取X2端口电位值。
[0042]步骤7、将Y2配置为高,将Y1/Y3/Y4配置为低电平输出。如果X2端口电位值为高电平,表明有按键事件发生,转步骤8,启动KEY6按键松开检测流程。如果X2端口电位值为低电平,表明没有按键事件发生或者按键已松开,重新检测其他配置方式(例如,Yl配置为高电平输出,Y2/Y3/Y4配置为低电平输出;Y3配置为高电平输出,Υ1/Υ2/Υ4配置为低电平输出;Υ4配置为高电平输出,Υ1/Υ2/Υ3配置为低电平输出),如果所有情况下Χ2端口电位值均为低电平,表明没有按键事件发生或者按键已松开,按键检测结束,转步骤I,重新启动按键事件监听。
[0043]步骤8、重新配置X2端口为上拉状态,配置Y1/Y2/Y3/Y4端口为高电平输出,重新定时计数。
[0044]步骤9、等待计数时间到达。
[0045]步骤10、计数时间到达,重新配置X2端口为下拉状态,将Y2配置为高电平输出,读取X2端口电位值。
[0046]步骤11、将Y2配置为高电平输出,将Y1/Y3/Y4配置为低电平输出。如果X2端口电位值为高电平,表明按键没有松开(还在按下状态),转步骤8,继续等待下一检测周期。如果X2端口电位值为低电平,表明按键已经松开,按键处理流程结束。
[0047]本说明书中所述的只是本发明的较佳具体实施例,以上实施例仅用以说明本发明的技术方案而非对本发明的限制。凡本领域技术人员依本发明的构思通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在本发明的范围之内。
【主权项】
1.一种低功耗按键检测方法,其特征在于,包括: 步骤一、将与一按键连接的端口的电位值设置为一初始电位值; 步骤二、检测所述初始电位值是否改变为一第二电位值,并根据检测结果启动一计数 周期; 步骤三、根据所述计数周期,将所述电位值再次设置为所述初始电位值; 步骤四、检测所述端口的电位值,若所述电位值等于所述第二电位值,则重复步骤二, 若所述电位值等于所述初始电位值,则结束。2.如权利要求1所述的低功耗按键检测方法,其特征在于,所述端口的电位值等于所述初 始电位值时,所述按键两端的电位值相等。3.如权利要求1所述的低功耗按键检测方法,其特征在于,所述计数周期为一可调节参数。4.如权利要求1所述的低功耗按键检测方法,其特征在于,所述端口是GP1端口。5.一种低功耗按键检测电路,其特征在于,包括: 一控制单元,所述控制单元通过一端口与一按键连接; 一计数器,所述计数器与所述控制单元连接; 所述控制单元将所述端口的电位值设置为一初始电位值;当所述初始电位值改变后启动 所述计数器开始一计数周期。6.如权利要求5所述的低功耗按键检测电路,其特征在于,所述计数周期结束后,所述控 制单元将所述端口的电位值再次设置为所述初始电位值。7.如权利要求5所述的低功耗按键检测电路,其特征在于,所述端口为GP1端口。8.如权利要求5所述的低功耗按键检测电路,其特征在于,所述端口的电位值等于所述初 始电位值时,所述按键两端的电位值相等。9.如权利要求5所述的低功耗按键检测电路,其特征在于,所述按键为MX N的按键,其 中M和N为大于等于一的正整数。10.如权利要求5所述的低功耗按键检测电路,其特征在于,所述控制单元和所述计数器位 于一 MCU内。
【文档编号】H03M11/20GK105897276SQ201610193615
【公开日】2016年8月24日
【申请日】2016年3月31日
【发明人】朱华均, 徐峰
【申请人】上海林果实业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1