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

使用Proteus仿真LCD顯示日期時間及矩陣鍵盤控制的代碼和工程文件

proteus進行51單片機矩陣鍵盤仿真實驗

Proteus中以中斷方式實現(xiàn)矩陣鍵盤的掃描

Proteus仿真-矩陣鍵盤(實驗一)

評論