新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 介紹單片機上的幾種按鍵輸入實現方法

        介紹單片機上的幾種按鍵輸入實現方法

        作者: 時間:2016-11-25 來源:網絡 收藏
        按鍵作為一種簡單實用的輸入設備已經應用于各種單片機應用系統中,稱得上是無處不在。
        但是在不同的實用場合下所使用的按鍵也是各不相同。現在就對幾種經常用到的按鍵及其使用方法進行介紹。

        一、傳統按鍵:
        傳統按鍵是現在在各種電子設備中應用最為廣泛的按鍵,可能它們的形狀各有不
        同,但其控制方法卻大同小異,利用按鍵是否按下的IO 電平狀態變化來對其進行識別。

        1)直接按鍵
        最簡單的鍵盤就是把電平信號直接接到IO 上。在程序里面讀取IO 電平狀態,如
        果讀到相應的電平,則說明此IO 上所接的按鍵被按下。這種方法原理與控制方法都非
        常簡單,但造成了IO 資源的浪費。這種按鍵方式的示意圖如下:


        2)掃描按鍵矩陣

        這種按鍵輸入方式很巧妙地利用了IO 資源,使得8 個IO 可以實現16 鍵鍵盤。它
        的示意圖如下:

        這種按鍵輸入方式比上面的直接按鍵方式從原理與控制上都比上面的直接按鍵要
        復雜。它通過IO 的掃描來獲取鍵值,其實掃描過程非常簡單,過程如下:
        KEY1~KEY4 對應于IO0~IO3,KEY5~KEY8 對應于IO4~IO7。
        1.將IO0~IO3 置高,將IO4 置低,IO5、IO6、IO7 置高,讀取IO0~IO3。第一列的某
        個按鈕按下后,使相應的兩個觸點接通,相應行上的IO 可以讀到低電平。
        2.將IO0~IO3 置高,將IO5 置低,IO4、IO6、IO7 置高,讀取IO0~IO3。第一列的某
        個按鈕按下后,使相應的兩個觸點接通,相應行上的IO 可以讀到低電平。
        3.將IO0~IO3 置高,將IO6 置低,IO4、IO5、IO7 置高,讀取IO0~IO3。第一列的某
        個按鈕按下后,使相應的兩個觸點接通,相應行上的IO 可以讀到低電平。
        4.將IO0~IO3 置高,將IO7 置低,IO4、IO5、IO6 置高,讀取IO0~IO3。第一列的某
        個按鈕按下后,使相應的兩個觸點接通,相應行上的IO 可以讀到低電平。
        循環此過程可以不斷讀取按鍵鍵值。
        在實際的應用中,這個掃描過程通常是放在定時器的中斷服務程序中去完成的,
        通過全局變量將鍵值返回到其它函數中去。當然,作為學習其掃描過程,也可以將掃
        描放在主函數中直接來完成。
        在上面介紹的按鍵輸入方式中,讀者可以看到,IO 都是以低電平作為檢測電平,那這
        是為什么呢?這是因為單片機IO 讀取電平狀態的時候,讀取低電平比高電平要穩定。也下
        是因為這一原因外部中斷以低電平或下降沿來作為其中斷觸發條件,以保證中斷的可*性。

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

        二、多向集成按鍵
        現在的手持設備越來越流行,人們也越來越多地接觸到多向集成按鍵,如手機上的
        五向導航鍵、MP3 上的撥動開關等,都是類似的按鍵設備。它們有一個共同的特點,
        就是一個集成按鍵可以輸出若干個方向上的信號,以供控制器識別。多向集成按鍵如下
        圖:

        1)五向按鍵
        五向按鍵我們基本上每天都在用,只要你掏出MP3、手機就可以看到它的身影,
        也許有人會感覺到它的神奇,這里就為你揭開它的秘密。
        五向按鍵其實就是把5 個傳統按鍵進行了集成,把它們分別安排在上、下、左、
        右、中五個方向上,從而就構成了五向鍵。當某一方向的按鍵導通時,IO 上就可以
        感應相應的電平,從而對其方向加以識別。五向應用示意圖如下:


        從上圖中可以到五向鍵的使用方法其實與傳統按鍵中的直接按鍵是一樣的。

        2)撥輪按鍵
        撥輪按鍵在產品中經常用來作音量調節、項目選擇等。其原理與五向鍵相類似,
        不同的是,撥輪按鍵中集成了左、右、中三個方向按鍵,按鍵與改為了撥動方式,從
        而更適合于使用者的使用習慣。應用示意圖如下:

        在SiriuS 開發板上五向按鍵與撥輪按鍵的使用如下圖:


        三、模擬按鍵

        上面介紹的按鍵輸入方式都是采用數字信號來進行按鍵識別的,它的缺點就是需要
        較多的IO,同時按鍵的數量也有限。而這里要介紹的采用模擬信號對按鍵進行識別的
        方法則可以節省IO,而按鍵的擴展也十分方便。當然,它的實現需要相應的硬件(數
        模轉換器)支持。

        原理其實非常簡單,在串接的等值電阻間接上按鍵,按鍵另一端接到地。這
        樣某兩個電阻間因按鍵接通而接到地時,在模數轉換器的輸入端會得到不同的電壓值,
        這些電壓值依次為1/2 VCC、2/3VCC……,按照這些電壓值就可以識別出所按下的按鍵。
        按鍵的最大數量起決于模數轉換器的精度。




        關鍵詞: 單片機按鍵輸

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 满城县| 新和县| 达拉特旗| 竹溪县| 平阴县| 祥云县| 临猗县| 南澳县| 景泰县| 商河县| 黑河市| 凤阳县| 宁河县| 阿坝县| 通城县| 弋阳县| 手机| 米脂县| 寻乌县| 容城县| 当雄县| 奉新县| 肥乡县| 紫金县| 太保市| 普安县| 四平市| 永城市| 祁连县| 乐陵市| 巴楚县| 巴林左旗| 清水河县| 泗阳县| 弋阳县| 淮北市| 汝阳县| 长垣县| 上栗县| 大连市| 新巴尔虎右旗|