新聞中心

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

        單片機常用按鍵電路

        作者: 時間:2016-11-28 來源:網絡 收藏

        但如果端口非雙向,或按鍵數量大,端口數緊張需進一步減少端口時,也許就需要別的方式來解決。

        還是拿上面的電路做例子,全行全列掃描是在檢測到有按鍵按下時,先檢測列然后再確定行。

        換種檢測方式,就是先給定行,再檢測列。比如行端口Px每次輸出不是全部,而是只有一位輸出為低,也就是預先給定了行,那么對應行有按鍵按下時,Py讀回的值就代表按鍵所在列。Px口按位逐一輸出低,每次讀回Py值,這樣的處理方式,更貼近掃描的含義。因為按鍵是機械動作,相對單片機運行速度來說,一次掃描流程足夠檢測到按鍵按下的動作。這種掃描方式就是逐行全列掃描。見流程圖。

        這種掃描方式的特點是逐行掃描,有多少行就掃多少次,當有按鍵按下時,行列數就確定了。雖然顯得麻煩點,但好處是Px只需是輸出而Py只是輸入,Px輸出每次只有唯一的一位為低,這樣的特點就可以對端口數進行簡化,比如使用譯碼器。如圖所示:

        由圖可以看出,同樣按鍵數,增加一個138譯碼器之后,CPU所用端口數就減為5了。




        Px口的3位只需輸出0到7,譯碼器輸出就能得到和前面一樣的行掃描信號。這時候的程序處理流程,和上面的略有不同,主要是行的表示上不同。上面是行數的對應位表示對應行,下面的是行數的對應值就是對應行。程序框圖如所示。

        逐行掃描還有另外一個用處,就是當系統中有需要動態掃描的裝置比如LED數碼管或點陣時,行掃描線就可以為其提供動態掃描信號,這樣也是為了減少端口使用數量,達到信號復用并減少代碼量的目的。


        除了上面提到的幾種按鍵電路,還有一種按鍵電路,使用更少的端口數量,如圖


        該電路同矩陣式按鍵電路一樣,所不同的是行列端口使用的是同一個端口,并且矩陣的一條對角線上按鍵由二極管代替。如此圖所示,

        按鍵數Knum=Pnum*(Pnum-1),其中Pnum就是使用的端口數。

        以4個端口數為例,

        一對一連接方式只能是4個按鍵;

        不帶譯碼器最多4個按鍵,

        使用2-4譯碼器或3-8譯碼器方式最多8個按鍵

        而這種電路可以達到12個按鍵。此電路程序部分和不帶譯碼器的一樣,只是注意對角線上被二極管替代的地方沒有按鍵。


        上一頁 1 2 下一頁

        關鍵詞: 單片機按鍵電

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 益阳市| 新密市| 南澳县| 遂昌县| 青田县| 宝鸡市| 建德市| 湛江市| 双鸭山市| 永川市| 嘉义市| 长寿区| 大邑县| 富源县| 新和县| 黄浦区| 霞浦县| 芜湖市| 阜城县| 屯留县| 新闻| 玛多县| 盈江县| 田林县| 高安市| 泰兴市| 银川市| 弥渡县| 大田县| 根河市| 利川市| 滨海县| 琼海市| 武义县| 旬阳县| 陈巴尔虎旗| 深泽县| 崇明县| 厦门市| 千阳县| 山丹县|