一種鍵盤掃描方法
2023-06-14 11:03:11 3
專利名稱:一種鍵盤掃描方法
技術領域:
本發明涉及鍵盤領域,尤其涉及一種矩陣式結構的鍵盤掃描方法。
背景技術:
現有的鍵盤掃描一般包括2種。一種是直接埠掃描的方式,通過一上拉電阻在 每個埠的按鍵接入高電平,當掃描到埠變為高電平表示按下按鍵。該方法優點是簡單 可靠,缺點是佔有埠資源大。另外,還有一種是矩陣式掃描,即由X+Y個埠構成的X*Y 的掃描矩陣,X個掃描輸出和Y個掃描輸入,根據組合得到相應按鍵。但是該方法相比第一 種方法節約了埠資源,但是依然不夠精簡。另有一專利公開號為「CN200420110550」的方 案公開了一種鍵盤掃描方法,應用該方法相比原來的X*Y的矩陣式掃描,採用X+Y個電阻、 X*(Y+1)個二極體、X*Y個按鍵、X/2+Y個接線組成,X是偶數,相比減少了 X/2根接線。但 採用該方法依然不夠節約埠資源。在某些場合的應用依然不夠適用,不利於節約成本。
發明內容
本發明提出另一種鍵盤掃描方法,大大地節約掃描I/O埠的數量。本發明的技術方案是本發明用於掃描輸入輸出交叉矩陣的鍵盤電路,所述的鍵盤電路共有n個輸入輸 出口,10_0 口至I0_n-1 口,任意一個輸入輸出口都可以與其它輸入輸出口組合形成一個按 鍵。總共可以組合的按鍵數量=(n-l) + (n-2)+......+1。本發明的鍵盤掃描方法,包括如下掃描步驟步驟101 初始化掃描程序;步驟102 設置變量i = 0 ;步驟103 判斷變量i是否小於n ;如果i < n,則進入步驟104,步驟104:設置I0_i 口為輸出口,置默認的第一電平,其他10 口為輸入口 ;步驟105 設置跳變I0_i 口為第二電平後,讀取其他10 口的電平狀態;步驟106 掃描判斷其他10 口是否有第二電平;如果其他10 口有第二電平,則進入步驟107,步驟107 儲存記錄有第二電平的10 口的鍵值,進入步驟108 ;如果其他10 口沒有第二電平,則進入步驟108,步驟108 變量i的值+1,進入返回步驟103 ;如果不是i < n,則進入步驟109,步驟109 處理按鍵掃描值結果;步驟110:掃描結束。進一步的,所述的第一電平為高電平,所述的第二電平為低電平。本發明的技術方案,在不加外圍輔助電路情況下,使得利用輸入輸出口產生按鍵的個數最大化,節約了硬體資源和成本,可以應用於某些I/O 口資源緊缺的鍵盤電路中。
圖1是本發明的輸入輸出交叉矩陣的鍵盤電路的示意圖;圖2是本發明的掃描方法的流程圖。
具體實施例方式現結合附圖和具體實施方式
對本發明進一步說明。參閱圖1所示,所述的鍵盤電路共有n個輸入輸出口,10_0 口至I0_n-1 口,任意一 個輸入輸出口都可以與其它輸入輸出口組合形成一個按鍵。如I0_n-1 口和I0_n-2 口、10_
n-3 口、......10_0 口構成(n-1)個按鍵,I0_n_2 口和 I0_n_3 口、I0_n_4 口、......10_0
口構成(n-2)個按鍵。依此類推,總共可以組合的按鍵數量=(n-l) + (n-2)+......+1。參閱圖2所示,本發明的鍵盤掃描方法,包括如下掃描步驟步驟101 初始化掃描程序;步驟102 設置變量i = 0 ;步驟103 判斷變量i是否小於n ;如果i < n,則進入步驟104,步驟104 設置I0_i 口為輸出口,置默認的高電平,其他10 口為輸入口 ;步驟105 設置跳變I0_i 口為低電平後,讀取其他10 口的電平狀態;步驟106 掃描判斷其他10 口是否有低電平;如果其他10 口有低電平,則進入步驟107,步驟107 儲存記錄有低電平的10 口的鍵值,進入步驟108 ;如果其他10 口沒有低電平,則進入步驟108,步驟108 變量i的值+1,進入返回步驟103 ;如果不是i < n,則進入步驟109,步驟109 處理按鍵掃描值結果;步驟110:掃描結束。本發明採用的方法可以減少對輸入輸出口的要求量,比如同樣是10個輸入輸出
口,採用組合的方法可以得到鍵的個數為(10-1) + (10-2) + (10-3)+1...... =45個。最主
要的是,通過軟體掃描的方式進行,大大節約硬體資源。儘管結合優選實施方案具體展示和介紹了本發明,但所屬領域的技術人員應該明 白,在不脫離所附權利要求書所限定的本發明的精神和範圍內,在形式上和細節上可以對 本發明做出各種變化,均為本發明的保護範圍。
權利要求
一種鍵盤掃描方法,用於掃描輸入輸出交叉矩陣的鍵盤電路,所述的鍵盤電路共有n個輸入輸出口,任意一個IO輸入輸出口都可以與其它IO輸入輸出口組合形成一個按鍵,掃描1/2*n*(n 1)個按鍵,其特徵在於,包括如下掃描步驟步驟101初始化掃描程序;步驟102設置變量i=0;步驟103判斷變量i是否小於n;如果i<n,則進入步驟104,步驟104設置IO_i口為輸出口,置默認的第一電平,其他IO口為輸入口;步驟105設置跳變IO_i口為第二電平後,讀取其他IO口的電平狀態;步驟106掃描判斷其他IO口是否有第二電平;如果其他IO口有第二電平,則進入步驟107,步驟107儲存記錄有第二電平的IO口的鍵值,進入步驟108;如果其他IO口沒有第二電平,則進入步驟108,步驟108變量i的值+1,進入返回步驟103;如果不是i<n,則進入步驟109,步驟109處理按鍵掃描值結果;步驟110掃描結束。
2.根據權利要求1所述的鍵盤掃描方法,其特徵在於所述的第一電平為高電平,所述 的第二電平為低電平。
全文摘要
本發明涉及鍵盤領域,尤其涉及一種矩陣式結構的鍵盤掃描方法。鍵盤掃描方法,用於掃描輸入輸出交叉矩陣的鍵盤電路,所述的鍵盤電路共有n個輸入輸出口,任意一個IO輸入輸出口都可以與其它IO輸入輸出口組合形成一個按鍵,掃描1/2×n×(n-1)個按鍵。本發明的方法通過設置一個IO_i口為輸出口,置默認的高電平,再掃描判斷其他IO口是否有低電平,若有儲存記錄有該IO口的鍵值。本發明的技術方案,在不加外圍輔助電路情況下,使得利用輸入輸出口產生按鍵的個數最大化,節約了硬體資源和成本,可以應用於某些I/O口資源緊缺的鍵盤電路中。
文檔編號H03M11/20GK101924563SQ20091011201
公開日2010年12月22日 申請日期2009年6月16日 優先權日2009年6月16日
發明者鄭添來 申請人:廈門敏訊信息技術股份有限公司