本發明涉及按鍵檢測技術領域,特別是涉及一種多按鍵檢測裝置及檢測方法。
背景技術:
隨著科技的日新月異,按鍵式輸入裝置廣泛應用于電子產品中。常見的按鍵檢測方式有三種:獨立觸發按鍵,掃描按鍵和A/D按鍵。獨立按鍵的每一個按鍵占用一個I/O資源,按鍵數量較多的應用場合對控制器的I/O資源要求過高。掃描按鍵和A/D按鍵可利用較少的I/O資源設計出按鍵數量較多的應用電路,然而,這兩種方法都存在按鍵沖突,即多個按鍵同時被按下時,會出現誤觸發現象。
為了避免誤觸發現象,傳統的多按鍵檢測方法是在掃描按鍵的每一個按鍵上串聯一個二極管,利用二極管的單向導通性解決了掃描按鍵的多按鍵觸發沖突。由于需要大量使用二極管,傳統的多按鍵檢測方法存在檢測成本高的缺點。
技術實現要素:
基于此,有必要針對上述問題,提供一種檢測成本低的多按鍵檢測裝置及檢測方法。
一種多按鍵檢測裝置,包括控制器和內部下拉電阻,所述控制器包括多個測試端口和多個采集端口,所述控制器的測試端口用于分別連接按鍵模塊中同一行的按鍵,所述控制器的采集端口內部分別設置有一所述內部下拉電阻,且用于分別連接所述按鍵模塊中同一列的按鍵,
所述控制器通過各所述測試端口分別輸出高電平至對應行的按鍵,控制所述采集端口均通過對應的內部下拉電阻接地處于下拉狀態,并檢測所述采集端口接收的對應列的按鍵輸出的列信號;所述控制器在檢測到存在列信號大于0伏時,保持列信號大于0伏的采集端口處于下拉狀態,控制所述測試端口逐行輸出高電平,分別檢測處于下拉狀態的采集端口再次接收的對應列的按鍵輸出的列信號,并根據再次接收到的列信號得到按鍵檢測結果。
一種多按鍵檢測方法,包括以下步驟:
控制器通過各測試端口分別輸出高電平至對應行的按鍵,控制采集端口均通過對應的內部下拉電阻接地處于下拉狀態,并檢測所述采集端口接收的對應列的按鍵輸出的列信號;
所述控制器在檢測到存在列信號大于0伏時,保持列信號大于0伏的采集端口處于下拉狀態;
所述控制器控制所述測試端口逐行輸出高電平,分別檢測處于下拉狀態的采集端口再次接收的對應列的按鍵輸出的列信號,并根據再次接收到的列信號得到按鍵檢測結果。
上述多按鍵檢測裝置及檢測方法,控制器通過各測試端口分別輸出高電平至對應行的按鍵,控制采集端口均通過對應的內部下拉電阻接地處于下拉狀態,并檢測采集端口接收的對應列的按鍵輸出的列信號。控制器在檢測到存在列信號大于0伏時,保持列信號大于0伏的采集端口處于下拉狀態,控制測試端口逐行輸出高電平,分別檢測處于下拉狀態的采集端口再次接收的對應列的按鍵輸出的列信號,并根據再次接收到的列信號得到按鍵檢測結果。結合測試端口和采集端口對按鍵模塊進行掃描,控制器在接收列信號時控制對應的采集端口處于下拉狀態,避免不同列的按鍵同時觸發時發生沖突對信號檢測造成干擾,避免誤觸發現象的同時降低了檢測成本。
附圖說明
圖1為一實施例中多按鍵檢測裝置的結構圖;
圖2為一實施例中對按鍵模塊任意兩行兩列按鍵進行檢測的原理示意圖;
圖3為一實施例中對按鍵模塊任意兩行兩列按鍵進行檢測的等效示意圖;
圖4為一實施例中多按鍵檢測方法的流程圖。
具體實施方式
在一個實施例中,一種多按鍵檢測裝置,適用于電子樂器等類型的電子產品。如圖1所示,該裝置包括控制器110和內部下拉電阻,控制器110包括多個測試端口和多個采集端口,控制器110的測試端口用于分別連接按鍵模塊200中同一行的按鍵,控制器110的采集端口內部分別設置有一內部下拉電阻,且用于分別連接按鍵模塊200中同一列的按鍵。
按鍵模塊200為m行×n列(m和n為正整數)矩陣掃描按鍵,其中,按鍵S(m,n)為按鍵模塊200中第m行第n列的按鍵,每個按鍵均一端連接對應的測試端口,另一端連接對應的采集端口。測試端口和采集端口的具體類型并不唯一,本實施例中,測試端口為I/O(input/output,輸入/輸出)端口,采集端口為A/D(Analog to Digital,模擬量向數字量轉換)端口。I/O端口可以輸出高/低(1/0)邏輯電平和識別外部輸入的高/低邏輯電平,A/D端口用于采集和識別外部輸入的模擬電壓信號。按鍵模塊200的行信號連接至控制器110的I/O端口,列信號連接至控制器110的A/D端口,通過A/D端口結合I/O端口對按鍵模塊200進行掃描檢測。
具體地,I/O端口包括端口I/O1、端口I/O2、…、端口I/Om,A/D端口包括端口AD1、端口AD2、…、端口ADn。每個I/O端口分別連接對應同一行的按鍵,每個A/D端口分別連接對應同一列的按鍵。例如,端口I/O1連接按鍵模塊200中第1行的按鍵S(1,1)、按鍵S(1,2)、…、按鍵S(1,n),端口AD1連接按鍵模塊200中第1列的按鍵S(1,1)、按鍵S(2,1)、…、按鍵S(m,1)。
對矩陣鍵盤產生沖突的原因進行分析,從矩陣按鍵電路中任意選出兩行兩列。舉例說明,HA和HB為任意兩個行信號,Va和Vb為任意兩個列信號,按鍵1和按鍵2與行信號HA連接,按鍵3和按鍵4與行信號HB連接,鍵1和按鍵3與列信號Va連接,按鍵2和按鍵4與列信號Vb連接。當其中任意3個按鍵同時按下時,會引起沖突。例如按鍵1、按鍵2、按鍵3被同時按下,此時,行信號HB和列信號Vb信號通過按鍵的導通作用被連接到一起,而行信號HB和列信號Vb信號短接等效于4按鍵被按下,因此,按鍵控制器無法正確判斷4的狀態。
繼續參照圖1,控制器110通過各測試端口分別輸出高電平至對應行的按鍵,控制采集端口均通過對應的內部下拉電阻接地處于下拉狀態,并檢測采集端口接收的對應列的按鍵輸出的列信號。控制器110在檢測到存在列信號大于0伏時,保持列信號大于0伏的采集端口處于下拉狀態,控制測試端口逐行輸出高電平,分別檢測處于下拉狀態的采集端口再次接收的對應列的按鍵輸出的列信號,并根據再次接收到的列信號得到按鍵檢測結果。
控制器110控制所有測試端口輸出高電平,并控制所有采集端口處于下拉狀態,采集按鍵電壓。若檢測到有采集端口接收的列信號有大于0伏的電壓時,說明該列信號(一列或多列)對應有按鍵按下。控制器110控制列信號大于0伏的采集端口繼續處于下拉狀態,控制測試端口逐行輸出高電平再次采集按鍵電壓。逐行輸出高電平指控制行信號逐行輸出高電平1,即每一次按順序只有一行輸出高電平1,其它行信號輸出低電平0。控制器110此時檢測處于下拉狀態的采集端口接收的列信號是否大于0伏,若是,則說明該行該列對應的按鍵被按下,直至掃描完所有的行,完成一次按鍵檢測過程,得到按鍵檢測結果。控制器110可根據按鍵檢測結果執行相應的操作。
在一個實施例中,多按鍵檢測裝置還包括內部上拉電阻,控制器110的測試端口內部分別設置有一內部下拉電阻和一內部上拉電阻,測試端口在通過對應的內部上拉電阻接入電源時輸出高電平,在通過對應的內部下拉電阻接地時輸出低電平。控制器110可根據需要改變測試端口與內部下拉電阻和內部上拉電阻的連接關系,從而控制測試端口對應輸出高電平和低電平。
具體地,在一個實施例中,控制器110包括控制電路、測試端口開關電路和采集端口開關電路,測試端口開關電路的數量與測試端口的數量相同,采集端口開關電路的數量與采集端口的數量相同。控制電路連接測試端口開關電路和采集端口開關電路,測試端口開關電路連接對應的測試端口,并通過對應的內部下拉電阻接地,以及通過對應的內部上拉電阻連接電源接入端。采集端口開關電路連接對應的采集端口,并通過對應的內部下拉電阻接地。
控制電路通過測試端口開關電路改變測試端口與內部下拉電阻和內部上拉電阻的連接關系,當測試端口開關電路將內部上拉電阻與測試端口連接時,測試端口輸出高電平,當測試端口開關電路將內部下拉電阻與測試端口連接時,測試端口輸出低電平,完成行信號的輸出控制。當需要采集列信號時,控制電路通過采集端口開關電路將內部下拉電阻與采集端口連接,避免不同列的按鍵同時觸發時發生沖突。
此外,控制器110的采集端口內部分別設置有一內部上拉電阻,采集端口開關電路通過對應的內部上拉電阻連接電源接入端。當不需要采集列信號時,可通過采集端口開關電路將內部上拉電阻與采集端口連接。
在一個實施例中,多按鍵檢測裝置還包括限流電阻,限流電阻的數量與按鍵模塊的按鍵數量相同,各限流電阻分別與對應一按鍵串聯。
具體如圖1所示,限流電阻包括電阻R(1,1)、電阻R(1,2)、…、電阻R(m,n)。以限流電阻R(m,n)為例,限流電阻R(m,n)與按鍵S(m,n)串聯,限流電阻R(m,n)另一端連接端口I/Om,按鍵S(m,n)另一端連接端口ADn。通過對按鍵模塊200中每個按鍵均串聯一個限流電阻,當有按鍵被按下,對應行信號輸出為高電平1時,通過串聯電阻與控制器110中對應列信號的A/D端口的內部下拉電阻形成分壓,該A/D端口將采集到大于0伏的電壓,確定被按下的按鍵。
如圖2所示,兩行兩列按鍵包括按鍵S1、按鍵S2、按鍵S3和按鍵S4,分別串聯電阻R1、電阻R2、電阻R3和電阻R4,兩行兩列按鍵對應的測試端口包括端口I/OA和端口I/OB,采集端口包括端口ADa和端口ADb。端口Ada設置有對應的下拉電阻RΛda,端口ADb設置有對應的下拉電阻RΛdb。當其中任意3個按鍵被按下時,例如按鍵S1、按鍵S2、按鍵S3被同時按下,此時等效電路如圖3所示,檢測按鍵S4的狀態:控制器110的端口I/OB輸出高電平1,其余I/O(包括I/OA)端口輸出低電平0,檢測端口ADb的電壓值,如果按鍵S4沒被按下,端口ADb的采樣電壓等于0伏;如果按鍵S4被按下,采樣電壓大于0V伏,能夠正確判斷按鍵S4的狀態。由此說明,上述多按鍵檢測裝置能夠有效解決多按鍵同時按下時的沖突問題。
在一個實施例中,多按鍵檢測裝置還包括連接控制器110的供電裝置。供電裝置用于給控制器110供電。
進一步地,供電裝置包括電池和穩壓電路,電池連接穩壓電路,穩壓電路連接控制器110。穩壓電路對電池輸出的電壓進行穩壓處理后輸出至控制器110,提高供電可靠性。
上述多按鍵檢測裝置,結合測試端口和采集端口對按鍵模塊進行掃描,控制器在接收列信號時控制對應的采集端口處于下拉狀態,避免不同列的按鍵同時觸發時發生沖突對信號檢測造成干擾,避免誤觸發現象的同時降低了檢測成本。
在一個實施例中,一種多按鍵檢測方法,基于上述多按鍵檢測裝置實現,適用于電子樂器等類型的電子產品。如圖4所示,該方法包括以下步驟:
步驟S110:控制器通過各測試端口分別輸出高電平至對應行的按鍵,控制采集端口均通過對應的內部下拉電阻接地處于下拉狀態,并檢測采集端口接收的對應列的按鍵輸出的列信號。
控制器控制所有測試端口輸出高電平,并控制所有采集端口處于下拉狀態,采集按鍵電壓。
步驟S120:控制器在檢測到存在列信號大于0伏時,保持列信號大于0伏的采集端口處于下拉狀態。
若檢測到有采集端口接收的列信號有大于0伏的電壓時,說明該列信號(一列或多列)對應有按鍵按下。控制器控制列信號大于0伏的采集端口繼續處于下拉狀態。
步驟S130:控制器控制測試端口逐行輸出高電平,分別檢測處于下拉狀態的采集端口再次接收的對應列的按鍵輸出的列信號,并根據再次接收到的列信號得到按鍵檢測結果。
控制器控制測試端口逐行輸出高電平再次采集按鍵電壓。逐行輸出高電平指控制行信號逐行輸出高電平1,即每一次按順序只有一行輸出高電平1,其它行信號輸出低電平0。控制器110此時檢測處于下拉狀態的采集端口接收的列信號是否大于0伏,若是,則說明該行該列對應的按鍵被按下。直至掃描完所有的行,完成一次按鍵檢測過程,得到按鍵檢測結果。控制器可根據按鍵檢測結果執行相應的操作。
上述多按鍵檢測方法,結合測試端口和采集端口對按鍵模塊進行掃描,控制器在接收列信號時控制對應的采集端口處于下拉狀態,避免不同列的按鍵同時觸發時發生沖突對信號檢測造成干擾,避免誤觸發現象的同時降低了檢測成本。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。