單片機常用按鍵電路
但如果端口非雙向,或按鍵數(shù)量大,端口數(shù)緊張需進一步減少端口時,也許就需要別的方式來解決。
由圖可以看出,同樣按鍵數(shù),增加一個138譯碼器之后,CPU所用端口數(shù)就減為5了。
Px口的3位只需輸出0到7,譯碼器輸出就能得到和前面一樣的行掃描信號。這時候的程序處理流程,和上面的略有不同,主要是行的表示上不同。上面是行數(shù)的對應位表示對應行,下面的是行數(shù)的對應值就是對應行。程序框圖如所示。
逐行掃描還有另外一個用處,就是當系統(tǒng)中有需要動態(tài)掃描的裝置比如LED數(shù)碼管或點陣時,行掃描線就可以為其提供動態(tài)掃描信號,這樣也是為了減少端口使用數(shù)量,達到信號復用并減少代碼量的目的。
除了上面提到的幾種按鍵電路,還有一種按鍵電路,使用更少的端口數(shù)量,如圖
該電路同矩陣式按鍵電路一樣,所不同的是行列端口使用的是同一個端口,并且矩陣的一條對角線上按鍵由二極管代替。如此圖所示,
按鍵數(shù)Knum=Pnum*(Pnum-1),其中Pnum就是使用的端口數(shù)。
以4個端口數(shù)為例,
一對一連接方式只能是4個按鍵;
不帶譯碼器最多4個按鍵,
使用2-4譯碼器或3-8譯碼器方式最多8個按鍵
而這種電路可以達到12個按鍵。此電路程序部分和不帶譯碼器的一樣,只是注意對角線上被二極管替代的地方?jīng)]有按鍵。
評論