新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機常用按鍵電路

        單片機常用按鍵電路

        作者: 時間:2016-11-28 來源:網絡 收藏
        單片機組成的小系統中,有的需要人機交互功能,按鍵是最常見的輸入方式。最常見的按鍵電路大致有,一對一的直接連接和動態掃描的矩陣式連接兩種。

        一對一的直接連接就是一個按鍵直接對應一個CPU的輸入口,比如下圖

        本文引用地址:http://www.104case.com/article/201611/322912.htm



        左右兩個電路作用一樣,區別是左邊CPU的輸入端常態為高電位,按下按鍵時為低電位;右邊的常態為低電位,按下按鍵是高電位。

        這樣的電路簡單直接,一個按鍵獨占一個端口,在按鍵數量較少端口數量富裕時可以直接使用。但很多場合需要的按鍵數比較多,要盡量少地占用端口就必須使用矩陣式的按鍵鏈接。如下圖:



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

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

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

        掃描可以有兩種實現的方法,一種是全行全列掃描,一種是逐行全列掃描。

        上面的例子其實就是全行全列掃描方式,見流程框圖。

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


        上一頁 1 2 下一頁

        關鍵詞: 單片機按鍵電

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 凌源市| 昂仁县| 建瓯市| 珠海市| 沙雅县| 苗栗市| 昌宁县| 左贡县| 莲花县| 读书| 阳江市| 淮北市| 甘南县| 云南省| 宿州市| 红安县| 太仆寺旗| 自治县| 石柱| 兴城市| 临海市| 黎川县| 峨眉山市| 马公市| 江城| 怀柔区| 吐鲁番市| 渭源县| 文化| 三穗县| 南靖县| 乌兰浩特市| 乐东| 哈巴河县| 安泽县| 定边县| 登封市| 清河县| 鹤山市| 三台县| 丹东市|