新聞中心

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

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

        作者: 時間:2012-07-10 來源:網絡 收藏

        按鍵作為一種簡單實用的輸入設備已經應用于各種應用系統中,可謂是無處不在。但在不同的實用場合下所使用的按鍵也不盡相同。這里就對幾種經常用到的按鍵及其使用方法進行介紹。

        1、傳統按鍵:

        傳統按鍵是現在在各種電子設備中應用最為廣泛的按鍵,可能它們的形狀各有不
        同,但其控制方法卻大同小異,利用按鍵是否按下的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 讀取電平狀態的時候,讀取低電平比高電平要穩定。也下
        是因為這一原因外部中斷以低電平或下降沿來作為其中斷觸發條件,以保證中斷的可*性。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大兴区| 平陆县| 阿鲁科尔沁旗| 杭锦后旗| 新和县| 绥宁县| 久治县| 新绛县| 洪泽县| 汝南县| 万山特区| 福泉市| 绥江县| 新丰县| 宁明县| 凤冈县| 隆回县| 宿松县| 平山县| 班戈县| 肥西县| 云林县| 册亨县| 锦州市| 惠东县| 二手房| 禹城市| 古交市| 年辖:市辖区| 蓝山县| 易门县| 鹤岗市| 广安市| 乌兰县| 屯门区| 临潭县| 北京市| 贡山| 体育| 金沙县| 扎囊县|