[發明專利]一種可檢測多個任意組合按鍵的掃描檢測電路及方法有效
| 申請號: | 201710744604.0 | 申請日: | 2017-08-25 |
| 公開(公告)號: | CN107872230B | 公開(公告)日: | 2021-06-25 |
| 發明(設計)人: | 何偉峰;何歡潮;羅立輝;舒兆風;羅超良 | 申請(專利權)人: | 廣州飛達音響股份有限公司;廣州星光影音文化科技有限公司 |
| 主分類號: | H03M11/20 | 分類號: | H03M11/20 |
| 代理公司: | 廣州中浚雄杰知識產權代理有限責任公司 44254 | 代理人: | 李肇偉 |
| 地址: | 510820 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 檢測 任意 組合 按鍵 掃描 電路 方法 | ||
1.一種可檢測多個任意組合按鍵的掃描檢測電路的掃描方法,其特征在于,電路包括:
MCU,所述MCU一共設有M+N+1個IO引腳,其中一個IO引腳帶外部中斷功能;
矩陣按鍵電路,所述矩陣按鍵電路包括M條橫向支路和N條縱向支路,橫向支路與縱向支路交叉處形成一個鍵位,M條橫向支路與N條縱向支路相交形成M×N個矩陣分布的鍵位;每個鍵位對應一個二極管、一個電容和一個接觸開關,二極管的陽極與橫向支路連接,二極管的陰極通過陶瓷電容與縱向支路連接,接觸開關與電容并聯;每個按鍵代表唯一一個鍵碼;在橫向支路的第一端形成M個橫向IO端口,在縱向支路的第一端形成N個縱向IO端口,所述橫向IO端口和縱向IO端口均與MCU的IO引腳連接;縱向支路的第二端通過上拉電阻后與電源VCC連接,當沒有任何按鍵按下時,所有橫向IO端口被電源VCC上拉到高電平;橫向支路的第二端通過保護電阻后與電源VCC連接,保護電阻起到電平傳遞以及按鍵按下時防止對應的橫向IO端口和縱向IO端口短路;
或邏輯電路,包括M個二極管、電源VCC和電阻R113,每個二極管對應一個橫向IO端口,該二極管、電源VCC和電阻R113組成所有的橫向IO端口,電源VCC通過電阻R113與二極管陽極連接,電源VCC通過電阻R113輸出至端口INT,端口INT與MCU外部中斷功能的IO引腳連接;
方法包括以下步驟:
(1)MCU上電后,馬上初始化所有的IO口狀態,
(2)如果MCU響應外部中斷,則進入按鍵的掃描檢測過程;所述掃描檢測過程包括兩個環節:
(2.1)掃描檢測環節:對所有矩陣按鍵的檢測,需要經過一輪又一輪的重復掃描過程;
(2.2)數據分析處理環節,數據分析處理環節需要以下幾個步驟:
在當前掃描結束后,所有的按鍵狀態數據存放到Buf內存緩沖區中;將所有按下的按鍵全部找出來,將這類按鍵鍵值,逐個地與空鍵集合進行匹配,如果匹配發現有按下的按鍵為空鍵,則退出當前一輪掃描,等待下一輪,同時,MCU向上一層應用函數返回報錯數值;
將當前一輪與前一輪、前二輪的按鍵掃描結果進行對比;如果連續3輪的掃描結果一致,則將當前一輪的Buf中的數據與前一個保存前一次也是滿足連續3輪檢測結果一致的BufPrev緩沖區數據進行對比,如果不一致,則結束當前一輪掃描,等待下一輪;
如果Buf與BufPrev對比的結果是一致的,說明沒有任何按鍵按下或者彈起,直接進入到以下第個步驟;反之,如果不一致,則對比并且找到Buf與BufPrev中每一個不同比特的數據;通過該不同比特的數據所處的位置,可定位唯一1個有發生變化的按鍵及其鍵碼;而通過比特的變化,得知該按鍵是彈起還是按下;
在③的基礎上,逐個初步判斷某個已經按下的按鍵是否為剛按下,如果初步確認按鍵為彈起,則將對應按鍵的釋放時間設置為0;反之,如果初步確認按鍵為按下,將初步確認為按下的按鍵對應的數據添加到Buf2中;
利用內部定時器定時中斷的功能,逐個更新Buf2中的所有按鍵的按下時間和釋放時間;
逐個判斷單個按鍵是否最終確認為彈起,即判斷以下3個條件:
A)Buf2中存在這個按鍵數據;
B)ReleaseTime=T釋放閾值;
C)KeyStatus為彈起;
如果滿足以上3個條件,則在Buf2中清除釋放按鍵的數據,并且向上層函數發送單按鍵釋放的消息;否則,跳到步驟;
逐個判斷單個按鍵是否最終確認為按下,即判斷以下3個條件:
A)Buf2中存在這個按鍵數據;
B)ReleaseTime=T按下閾值;
C)KeyStatus為按下;
如果滿足以上3個條件,則并且向上層函數發送單按鍵按下的消息;否則,跳到步驟;
逐個判斷組合按鍵是否最終確認為按下,判斷所有組合按鍵同時滿足以下3個條件:
A)Buf2同時存在所有所需按鍵數據;
B)ReleaseTime=T按下閾值;
C)KeyStatus為按下;
如果滿足以上3個條件,則將該組合按鍵的相關數據放到Buf3中;將Buf3中該組合按鍵的標志位flag標志為1,證明該組合按鍵成立;并且向上層函數發送組合鍵按下消息;否則,跳到步驟;
逐個判斷組合按鍵是否最終確認為釋放,即判斷所有組合按鍵滿足以下3個條件:
A)Buf3存在該組合按鍵的數據;
B)Buf3該組合按鍵數據中的flag位置為成立;
C)在第步驟提到的3個條件不再同時滿足即任意一個條件不成立即可;
如果滿足以上3個條件,則向上層函數發送組合按鍵釋放消息,并且將Buf3中該組合按鍵的數據刪除掉;否則,跳到步驟;
將Buf數據替換BufPrev的數據;
?利用內部定時器定時中斷的功能,更新TimerBuf2定時器;
?判斷Buf2中的按鍵數據是否為空且TimerBuf2超時,如果是,退出按鍵掃描任務,直到響應下一次外部中斷;否則,直接退出,等待下一輪按鍵掃描。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州飛達音響股份有限公司;廣州星光影音文化科技有限公司,未經廣州飛達音響股份有限公司;廣州星光影音文化科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710744604.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于控制數模轉換器的方法和RF發送電路裝置
- 下一篇:LDPC譯碼方法與裝置





