Proteus使用技巧
矩陣鍵盤是讀取一系列按鍵的有效方法,例如讀取電話的撥號盤、POS機小鍵盤、電腦鍵盤,甚至是電子鋼琴上的鍵盤。
讀取大量按鍵輸入的一種方法是將每個按鍵連接到其自己的微控制器輸入引腳。對于 4x4 鍵盤,這將需要 16 個 GPIO(通用輸入/輸出)引腳。
但是,通過在矩陣中連接按鍵,只需 8 個 GPIO 即可讀取相同數量的按鍵。
這減少了所需的微控制器引腳數量,以及相關布線/PCB走線的數量。
矩陣式鍵盤是按行和列的網格布線的(盡管它們在物理上不一定要按這個方向布置,例如電子鋼琴鍵盤)。在微控制器上,行或列的引腳被永久設置為輸入(本文中我們堅持使用行連接),而另一組引腳(本文中我們堅持使用列連接)在輸出(低電平驅動)和浮空(基本上是開漏輸出)之間切換。
行輸入引腳需要上拉電阻,這可以在微控制器外部添加,也可以在微控制器內部激活(如果微控制器包含此功能)。一些微控制器具有開漏輸出引腳(用于列),或者可以簡單地將這些引腳設置為輸入,以使其浮空。如果你對上拉電阻、浮空和/或開漏這些術語不熟悉,那么這里有一些快速解釋:
浮空輸入
浮空輸入是一種不主動驅動到任何特定水平的輸入,它真的可以是任何東西(例如,基于環境中的靜電)。我們都使用過自動關閉的門,比如在公共設施中常見的門--除非你主動把門打開,否則就會有一個機制把它再次關上。如果沒有自動關閉機制(現在想象一下,門沒有閂鎖機制),門會被風吹來吹去,或者被進出的人移動,它不會默認到任何特定的位置。
上拉(或下拉)電阻
上拉(或下拉)電阻類似于這些門上的自動關閉機制,因為它在不主動驅動時將輸入保持在一個特定的水平。上拉(或下拉)電阻可以被認為是一個彈簧,當它沒有被主動驅動時,它將輸入拉到一個特定的水平,你可能注意到,電阻符號實際上看起來像一個小彈簧:
開漏輸出
開漏輸出是一個只能被驅動為低電平的輸出,而不是高電平;輸出要么是低電平,要么是浮空的。本質上,輸出只是連接到一個晶體管的漏極引腳(因此稱為開漏)。
通過將微控制器引腳在輸入(浮空,沒有上拉或下拉電阻)和輸出(被驅動為低電平)之間切換,可以實現類似的效果。
讀取矩陣鍵盤
為了讀取矩陣中的任何特定按鍵,我們將相應的列引腳驅動為低電平,然后讀取相應的行引腳;如果行引腳讀取為低電平,則該按鍵被按下,如果它讀取為高電平,則該按鍵未被按下。
通常,這是在快速順序掃描操作中完成的,以檢查矩陣中的每個按鍵,依次驅動每個列引腳,同時讀取中間的每個行引腳。同時按鍵不會對此方法造成任何問題,并且仍然可以單獨讀取每個鍵。
防抖動
機械開關也會出現一種彈跳現象,即開關的觸點在接觸時發生物理彈跳,并在開關穩定在新狀態之前出現一些快速的電壓轉換:
如果微控制器非常頻繁地讀取輸入,那么它可能會將彈跳記錄成按下按鍵的次數(而不是用戶期望的一次按下);最簡單的解決方案是每次讀取按鍵之間留出一定的延遲時間,這將使按鍵有足夠的時間在兩次讀取之間轉換(通常 10-50ms 就足夠了),這就是防抖開關技術。
*本文章版權歸英國LABCENTER公司所有,由廣州風標電子提供翻譯,原文鏈接如下:*https://www.labcenter.com/blog/sim-matrix-keypad/
-
微控制器
+關注
關注
48文章
7649瀏覽量
152103 -
上拉電阻
+關注
關注
5文章
363瀏覽量
30732 -
矩陣鍵盤
+關注
關注
7文章
207瀏覽量
31543 -
PROTEUS仿真
+關注
關注
28文章
308瀏覽量
35327 -
PCB走線
+關注
關注
3文章
134瀏覽量
13974
發布評論請先 登錄
相關推薦
評論