一種低功耗按鍵檢測(cè)方法及電路的制作方法
【專利摘要】本發(fā)明公開一種低功耗按鍵檢測(cè)方法,其特征在于,包括:步驟一、將與一按鍵連接的端口的電位值設(shè)置為一初始電位值;步驟二、檢測(cè)該初始電位值是否改變?yōu)橐坏诙娢恢?,并根?jù)檢測(cè)結(jié)果啟動(dòng)一計(jì)數(shù)周期;步驟三、根據(jù)該計(jì)數(shù)周期,將該電位值再次設(shè)置為該初始電位值;步驟四、檢測(cè)該端口的電位值,若該電位值等于該第二電位值,則重復(fù)步驟二,若該電位值等于該初始電位值,則結(jié)束。本發(fā)明同時(shí)公開一種低功耗按鍵檢測(cè)電路。
【專利說(shuō)明】
一種低功耗按鍵檢測(cè)方法及電路
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及低功耗產(chǎn)品領(lǐng)域,特別涉及到一種低功耗按鍵檢測(cè)處理的方法。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中的大量電子產(chǎn)品都是電池供電的。對(duì)于這一類產(chǎn)品,系統(tǒng)功耗是考量產(chǎn)品優(yōu)良的重要指標(biāo)之一。因此,產(chǎn)品內(nèi)每個(gè)模塊在開發(fā)過(guò)程中都需要做到精益求精。對(duì)于有按鍵功能的電子產(chǎn)品,按鍵過(guò)程中會(huì)增大系統(tǒng)功耗,該功耗要遠(yuǎn)遠(yuǎn)大于待機(jī)功耗。例如,金融領(lǐng)域使用的動(dòng)態(tài)令牌,用3伏紐扣電池供電,一般都需要持續(xù)工作3?5年,這就要求按鍵響應(yīng)事件過(guò)程中的耗電流盡量小。
[0003]現(xiàn)有技術(shù)中所使用的按鍵檢測(cè)電路的基本原理包括:首先配置GP1(通用輸入/輸出)端口初始狀態(tài),配置原則為保證按鍵兩端的初始電位值不同。當(dāng)有按鍵事件發(fā)生即按鍵被按下時(shí),按鍵電路兩端短接,導(dǎo)致GP1端口電位值發(fā)生變化,此時(shí)讀取端口電位值即可判斷按鍵按下?tīng)顟B(tài)。當(dāng)按鍵事件結(jié)束后即按鍵被松開時(shí),按鍵電路兩端斷開,導(dǎo)致GP1端口的電位值又恢復(fù)到初始狀態(tài),此時(shí)讀取端口電位值即可判斷按鍵松開狀態(tài)。
[0004]上述過(guò)程中,當(dāng)按鍵被按下后,由于按鍵電路短接前存在電位差,短接后按鍵電路上會(huì)產(chǎn)生電流。等待按鍵松開的過(guò)程中,按鍵電流會(huì)一直存在。如果一次按鍵行為持續(xù)時(shí)間較長(zhǎng),長(zhǎng)時(shí)間的電流損耗直接影響產(chǎn)品的使用壽命,對(duì)于功耗要求極其嚴(yán)格的電子產(chǎn)品尤為不利。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種低功耗按鍵檢測(cè)方法及電路,通過(guò)周期查詢檢測(cè)按鍵狀態(tài),大大降低了按鍵整個(gè)過(guò)程中的電流消耗。
[0006]為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明公開一種低功耗按鍵檢測(cè)方法,其特征在于,包括:步驟一、將與一按鍵連接的端口的電位值設(shè)置為一初始電位值;步驟二、檢測(cè)該初始電位值是否改變?yōu)橐坏诙娢恢担⒏鶕?jù)檢測(cè)結(jié)果啟動(dòng)一計(jì)數(shù)周期;步驟三、根據(jù)該計(jì)數(shù)周期,將該電位值再次設(shè)置為該初始電位值;步驟四、檢測(cè)該端口的電位值,若該電位值等于該第二電位值,則重復(fù)步驟二,若該電位值等于該初始電位值,則結(jié)束。
[0007]更進(jìn)一步地,該端口的電位值等于該初始電位值時(shí),該按鍵兩端的電位值相等。
[0008]更進(jìn)一步地,該計(jì)數(shù)周期為一可調(diào)節(jié)參數(shù)。
[0009]更進(jìn)一步地,該端口是GP1端口。
[0010]本發(fā)明同時(shí)公開一種低功耗按鍵檢測(cè)電路,包括:一控制單元,該控制單元通過(guò)一端
與一按鍵連接;一計(jì)數(shù)器,該計(jì)數(shù)器與該控制單元連接;該控制單元將該端口的電位值設(shè)置為一初始電位值;當(dāng)該初始電位值改變后啟動(dòng)該計(jì)數(shù)器開始一計(jì)數(shù)周期。
[0011 ]更進(jìn)一步地,該計(jì)數(shù)周期結(jié)束后,該控制單元將該端口的電位值再次設(shè)置為該初始電位值。
[0012]更進(jìn)一步地,該端口為GP1端口。
[0013]更進(jìn)一步地,該端口的電位值等于該初始電位值時(shí),該按鍵兩端的電位值相等。
[0014]更進(jìn)一步地,該按鍵為MX N的按鍵,其中M和N為大于等于一的正整數(shù)。
[0015]更進(jìn)一步地,該控制單元和該計(jì)數(shù)器位于一M⑶內(nèi)。
[0016]本發(fā)明所提供的低功耗按鍵檢測(cè)方法及電路,通過(guò)周期查詢檢測(cè)按鍵狀態(tài),大大降低了按鍵整個(gè)過(guò)程中的電流消耗。在檢測(cè)期間,按鍵兩端存在電位差,有按鍵電流產(chǎn)生;在非檢測(cè)期間,通過(guò)重新配置GP1端口狀態(tài),取消按鍵兩端電位落差,避免了該段期間按鍵電流的產(chǎn)生。因此,在實(shí)際產(chǎn)品設(shè)計(jì)過(guò)程中,可以通過(guò)合理地調(diào)節(jié)計(jì)數(shù)周期,在不影響用戶按鍵體驗(yàn)的前提下,盡可能地降低電流損耗。
【附圖說(shuō)明】
[0017]關(guān)于本發(fā)明的優(yōu)點(diǎn)與精神可以通過(guò)以下的發(fā)明詳述及所附圖式得到進(jìn)一步的了解。
[0018]圖1是單個(gè)按鍵檢測(cè)電路的示意圖;
圖2是本發(fā)明提供的按鍵檢測(cè)方法的處理流程圖;
圖3是4 X 4按鍵檢測(cè)電路不意圖。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的具體實(shí)施例。
[0020]本發(fā)明提出的低功耗按鍵處理的方法,通過(guò)周期查詢檢測(cè)按鍵狀態(tài),大大降低了按鍵整個(gè)過(guò)程中的電流消耗,特別適合用于對(duì)功耗要求較高的電子產(chǎn)品。
[0021]本發(fā)明提出了一種低功耗按鍵檢測(cè)處理的方法,包括:
步驟1、配置GP1端口初始狀態(tài),包括輸入工作模式和初始電位值。
[0022]進(jìn)一步地,上述步驟I所述的GP1初始電位值的配置需保證按鍵引腳兩端的電位值保持一致,即同為高電平或同為低電平。
[0023]步驟2、按鍵事件發(fā)生時(shí),啟動(dòng)定時(shí)計(jì)數(shù),啟動(dòng)周期檢測(cè)流程。
[0024]進(jìn)一步地,上述步驟2中所述的按鍵事件感知采用中斷觸發(fā)方法或查詢方法。
[0025]步驟3、計(jì)數(shù)周期到達(dá)后,重新配置GP1端口電平值(與初始電平值相反狀態(tài))。讀取端口狀態(tài),如果GP1端口電平值發(fā)生變化,表明按鍵仍處于按下?tīng)顟B(tài),則配置GP1端口電平值為初始狀態(tài),重復(fù)步驟3,等待下一周期檢測(cè)時(shí)刻到達(dá);如果GP1電平值沒(méi)有改變,表明按鍵已經(jīng)松開,檢測(cè)流程結(jié)束,轉(zhuǎn)到步驟一,進(jìn)行新的按鍵事件檢測(cè)。
[0026]上述所描述的步驟3中,當(dāng)按鍵被按下時(shí),僅在每個(gè)檢測(cè)周期期間通過(guò)修改GP1電平值來(lái)捕獲按鍵狀態(tài)。在非檢測(cè)期間,由于重新恢復(fù)配置GP1端口電位值到初始狀態(tài),按鍵兩端的電位值相同,避免了該段期間按鍵電流的產(chǎn)生。通過(guò)合理地調(diào)節(jié)計(jì)數(shù)周期,在不影響用戶按鍵體驗(yàn)的前提下,無(wú)疑會(huì)大大降低按鍵功耗。
[0027]參閱圖1所示,圖1是一個(gè)按鍵檢測(cè)電路的示意圖。該電路圖中包括一個(gè)按鍵2,其中按鍵的一端通過(guò)串聯(lián)電阻與VCC連接,按鍵的另一端與MCUl的GP1端口 Pl相連,用于按鍵檢測(cè)。在本實(shí)施例中,端口Pl可以軟件配置為上拉模式或者下拉模式。如果不能內(nèi)部配置Pl為上拉或下拉,可以通過(guò)外部電路實(shí)現(xiàn)上拉或下拉。
[0028]參閱圖2所示,結(jié)合圖1所示電路示意圖,本發(fā)明提供了一種低功耗按鍵檢測(cè)處理的方法,具體包括步驟:
S100、將Pl配置為下拉狀態(tài),同時(shí)配置為高電平觸發(fā)中斷或上升沿觸發(fā)中斷。此時(shí)讀取Pl端口值為低電平。
[0029]SlOl、當(dāng)有按鍵事件發(fā)生時(shí),按鍵電路短路導(dǎo)致Pl端口電位值發(fā)生變化(由低電平變?yōu)楦唠娖?并由此引發(fā)中斷響應(yīng),觸發(fā)按鍵檢測(cè)處理流程。按鍵檢測(cè)處理流程啟動(dòng)。重新配置Pl端口為上拉狀態(tài)。啟動(dòng)定時(shí)器進(jìn)行定時(shí)計(jì)數(shù)。
[0030]S102、等待計(jì)數(shù)時(shí)間到達(dá)。
[0031]S1 3、計(jì)數(shù)時(shí)間到達(dá),重新配置PI端口為下拉狀態(tài),讀取PI端口電位值。如果PI端口電位值為低電平,表明沒(méi)有按鍵事件發(fā)生或者按鍵已松開,按鍵檢測(cè)結(jié)束,轉(zhuǎn)到SlOO,重新啟動(dòng)按鍵事件監(jiān)聽(tīng);如果Pl端口電位值為高電平,表明有按鍵事件發(fā)生,轉(zhuǎn)S104,啟動(dòng)按鍵松開檢測(cè)流程。
[0032]S104、重新配置Pl端口為上拉狀態(tài),重新定時(shí)計(jì)數(shù)。
[0033]S105、等待計(jì)數(shù)時(shí)間到達(dá)。
[0034]S106、定時(shí)計(jì)數(shù)時(shí)間到達(dá),重新配置PI端口為下拉狀態(tài),讀取Pl端口電位值。如果Pl端口電位值為高電平,表明按鍵沒(méi)有松開(還在按下?tīng)顟B(tài)),轉(zhuǎn)到步驟S104,等待下一計(jì)數(shù)周期按鍵檢測(cè);如果Pl端口電位值為低電平,表明按鍵已經(jīng)松開,按鍵處理流程結(jié)束。
[0035]本發(fā)明所述的按鍵檢測(cè)處理流程中,只有步驟S103與步驟S106中將端口配置為下拉狀態(tài),這段期間由于按鍵兩端電位差會(huì)導(dǎo)致按鍵電流。而在檢測(cè)期間之外,恢復(fù)端口電位狀態(tài)值,按鍵兩端電位值一致,避免了按鍵電流的產(chǎn)生。再者,周期按鍵檢測(cè)的處理過(guò)程很短暫,因此通過(guò)合理地調(diào)節(jié)計(jì)數(shù)周期,可以有效地降低整個(gè)按鍵過(guò)程所產(chǎn)生的功耗,這對(duì)于功耗要求嚴(yán)苛的電子產(chǎn)品無(wú)疑是極具吸引力的。
[0036]特別地,本發(fā)明還提供了一個(gè)4X4按鍵檢測(cè)處理流程的范例,參閱圖3所示,電路共包括16個(gè)按鍵,4個(gè)引腳用于輸出模式,4個(gè)引腳用于輸入模式,以KEY6按鍵檢測(cè)為例,具體包括步驟:
步驟1、將端口 Y1/Y2/Y3/Y4配置輸出模式,且配置為高電平,將端口 X1/X2/X3/X4配置為下拉狀態(tài),且配置為高電平觸發(fā)中斷或上升沿觸發(fā)中斷。
[0037]步驟2、當(dāng)KEY6有按鍵事件發(fā)生時(shí),按鍵電路短路導(dǎo)致X2端口電位值發(fā)生變化(由低電平變?yōu)楦唠娖?并由此引發(fā)中斷響應(yīng),觸發(fā)端口 X2按鍵檢測(cè)處理流程。
[0038]步驟3、X2按鍵檢測(cè)處理流程啟動(dòng)。重新配置X2端口為上拉狀態(tài)。
[0039]步驟4、首先啟動(dòng)定時(shí)計(jì)數(shù)器。
[0040]步驟5、等待計(jì)數(shù)時(shí)間到達(dá)。
[0041 ] 步驟6、計(jì)數(shù)時(shí)間到達(dá),重新配置端口 X2為下拉狀態(tài),依次將Y1/Y2/Y3/Y4配置為高電平輸出,分別讀取X2端口電位值。
[0042]步驟7、將Y2配置為高,將Y1/Y3/Y4配置為低電平輸出。如果X2端口電位值為高電平,表明有按鍵事件發(fā)生,轉(zhuǎn)步驟8,啟動(dòng)KEY6按鍵松開檢測(cè)流程。如果X2端口電位值為低電平,表明沒(méi)有按鍵事件發(fā)生或者按鍵已松開,重新檢測(cè)其他配置方式(例如,Yl配置為高電平輸出,Y2/Y3/Y4配置為低電平輸出;Y3配置為高電平輸出,Υ1/Υ2/Υ4配置為低電平輸出;Υ4配置為高電平輸出,Υ1/Υ2/Υ3配置為低電平輸出),如果所有情況下Χ2端口電位值均為低電平,表明沒(méi)有按鍵事件發(fā)生或者按鍵已松開,按鍵檢測(cè)結(jié)束,轉(zhuǎn)步驟I,重新啟動(dòng)按鍵事件監(jiān)聽(tīng)。
[0043]步驟8、重新配置X2端口為上拉狀態(tài),配置Y1/Y2/Y3/Y4端口為高電平輸出,重新定時(shí)計(jì)數(shù)。
[0044]步驟9、等待計(jì)數(shù)時(shí)間到達(dá)。
[0045]步驟10、計(jì)數(shù)時(shí)間到達(dá),重新配置X2端口為下拉狀態(tài),將Y2配置為高電平輸出,讀取X2端口電位值。
[0046]步驟11、將Y2配置為高電平輸出,將Y1/Y3/Y4配置為低電平輸出。如果X2端口電位值為高電平,表明按鍵沒(méi)有松開(還在按下?tīng)顟B(tài)),轉(zhuǎn)步驟8,繼續(xù)等待下一檢測(cè)周期。如果X2端口電位值為低電平,表明按鍵已經(jīng)松開,按鍵處理流程結(jié)束。
[0047]本說(shuō)明書中所述的只是本發(fā)明的較佳具體實(shí)施例,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)本發(fā)明的限制。凡本領(lǐng)域技術(shù)人員依本發(fā)明的構(gòu)思通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在本發(fā)明的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種低功耗按鍵檢測(cè)方法,其特征在于,包括: 步驟一、將與一按鍵連接的端口的電位值設(shè)置為一初始電位值; 步驟二、檢測(cè)所述初始電位值是否改變?yōu)橐坏诙娢恢?,并根?jù)檢測(cè)結(jié)果啟動(dòng)一計(jì)數(shù) 周期; 步驟三、根據(jù)所述計(jì)數(shù)周期,將所述電位值再次設(shè)置為所述初始電位值; 步驟四、檢測(cè)所述端口的電位值,若所述電位值等于所述第二電位值,則重復(fù)步驟二, 若所述電位值等于所述初始電位值,則結(jié)束。2.如權(quán)利要求1所述的低功耗按鍵檢測(cè)方法,其特征在于,所述端口的電位值等于所述初 始電位值時(shí),所述按鍵兩端的電位值相等。3.如權(quán)利要求1所述的低功耗按鍵檢測(cè)方法,其特征在于,所述計(jì)數(shù)周期為一可調(diào)節(jié)參數(shù)。4.如權(quán)利要求1所述的低功耗按鍵檢測(cè)方法,其特征在于,所述端口是GP1端口。5.一種低功耗按鍵檢測(cè)電路,其特征在于,包括: 一控制單元,所述控制單元通過(guò)一端口與一按鍵連接; 一計(jì)數(shù)器,所述計(jì)數(shù)器與所述控制單元連接; 所述控制單元將所述端口的電位值設(shè)置為一初始電位值;當(dāng)所述初始電位值改變后啟動(dòng) 所述計(jì)數(shù)器開始一計(jì)數(shù)周期。6.如權(quán)利要求5所述的低功耗按鍵檢測(cè)電路,其特征在于,所述計(jì)數(shù)周期結(jié)束后,所述控 制單元將所述端口的電位值再次設(shè)置為所述初始電位值。7.如權(quán)利要求5所述的低功耗按鍵檢測(cè)電路,其特征在于,所述端口為GP1端口。8.如權(quán)利要求5所述的低功耗按鍵檢測(cè)電路,其特征在于,所述端口的電位值等于所述初 始電位值時(shí),所述按鍵兩端的電位值相等。9.如權(quán)利要求5所述的低功耗按鍵檢測(cè)電路,其特征在于,所述按鍵為MX N的按鍵,其 中M和N為大于等于一的正整數(shù)。10.如權(quán)利要求5所述的低功耗按鍵檢測(cè)電路,其特征在于,所述控制單元和所述計(jì)數(shù)器位 于一 MCU內(nèi)。
【文檔編號(hào)】H03M11/20GK105897276SQ201610193615
【公開日】2016年8月24日
【申請(qǐng)日】2016年3月31日
【發(fā)明人】朱華均, 徐峰
【申請(qǐng)人】上海林果實(shí)業(yè)股份有限公司