新聞中心

單片機(jī)常用按鍵電路

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
單片機(jī)組成的小系統(tǒng)中,有的需要人機(jī)交互功能,按鍵是最常見(jiàn)的輸入方式。最常見(jiàn)的按鍵電路大致有,一對(duì)一的直接連接和動(dòng)態(tài)掃描的矩陣式連接兩種。

一對(duì)一的直接連接就是一個(gè)按鍵直接對(duì)應(yīng)一個(gè)CPU的輸入口,比如下圖

本文引用地址:http://butianyuan.cn/article/201611/322912.htm



左右兩個(gè)電路作用一樣,區(qū)別是左邊CPU的輸入端常態(tài)為高電位,按下按鍵時(shí)為低電位;右邊的常態(tài)為低電位,按下按鍵是高電位。

這樣的電路簡(jiǎn)單直接,一個(gè)按鍵獨(dú)占一個(gè)端口,在按鍵數(shù)量較少端口數(shù)量富裕時(shí)可以直接使用。但很多場(chǎng)合需要的按鍵數(shù)比較多,要盡量少地占用端口就必須使用矩陣式的按鍵鏈接。如下圖:



圖中將按鍵按行列矩陣的方式排列,其中的每一行公用一根行線,每一列公用一根列線。以此圖為例,16個(gè)按鍵,按一對(duì)一方式連接的話需要16個(gè)端口,而按這樣的矩陣方式鏈接只需要8個(gè)端口,所需端口數(shù)大量減少。按鍵數(shù)Knum=line*row,而端口數(shù)Pnum=line+row,其中的line和row分別代表行數(shù)和列數(shù)。

圖中的Px,Py為CPU的IO端口,在本例中可以使用不同的端口也可以使用同一個(gè)8位端口。上拉電阻不是必須,單片機(jī)IO口內(nèi)部有上拉電路時(shí)此處就可省略。

這個(gè)電路的工作原理是采用程序掃描的方式檢測(cè)某個(gè)按鍵狀態(tài)。比如將Px口的4位全置為低電平,這時(shí)如果沒(méi)有任何按鍵按下的話,從Py口讀回的4位應(yīng)全為高,而如果有某一鍵按下,則對(duì)應(yīng)按下鍵的那一列的位讀回值將為低。這樣就能知道按下鍵所在的列;接著確定按鍵所處行,把Py口的輸入值作為輸出,Px全部置高并讀取輸入,就能得到按鍵所在行位置,于是就確定了所按按鍵的行列位置。

掃描可以有兩種實(shí)現(xiàn)的方法,一種是全行全列掃描,一種是逐行全列掃描。

上面的例子其實(shí)就是全行全列掃描方式,見(jiàn)流程框圖。

其特點(diǎn)是,一個(gè)流程就能到是否有按鍵按下,并能確定按下按檢測(cè)行列值,檢測(cè)步驟簡(jiǎn)單迅速。但作為行列接口的Px,Py必須是雙向的,亦即同時(shí)具有輸入輸出功能,單片機(jī)的端口基本都能滿足。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 單片機(jī)按鍵電

評(píng)論


技術(shù)專區(qū)

關(guān)閉