新聞中心

單片機(jī)常用按鍵電路

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏

但如果端口非雙向,或按鍵數(shù)量大,端口數(shù)緊張需進(jìn)一步減少端口時(shí),也許就需要?jiǎng)e的方式來(lái)解決。

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

換種檢測(cè)方式,就是先給定行,再檢測(cè)列。比如行端口Px每次輸出不是全部,而是只有一位輸出為低,也就是預(yù)先給定了行,那么對(duì)應(yīng)行有按鍵按下時(shí),Py讀回的值就代表按鍵所在列。Px口按位逐一輸出低,每次讀回Py值,這樣的處理方式,更貼近掃描的含義。因?yàn)榘存I是機(jī)械動(dòng)作,相對(duì)單片機(jī)運(yùn)行速度來(lái)說(shuō),一次掃描流程足夠檢測(cè)到按鍵按下的動(dòng)作。這種掃描方式就是逐行全列掃描。見(jiàn)流程圖。

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

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




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

逐行掃描還有另外一個(gè)用處,就是當(dāng)系統(tǒng)中有需要?jiǎng)討B(tài)掃描的裝置比如LED數(shù)碼管或點(diǎn)陣時(shí),行掃描線就可以為其提供動(dòng)態(tài)掃描信號(hào),這樣也是為了減少端口使用數(shù)量,達(dá)到信號(hào)復(fù)用并減少代碼量的目的。


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


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

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

以4個(gè)端口數(shù)為例,

一對(duì)一連接方式只能是4個(gè)按鍵;

不帶譯碼器最多4個(gè)按鍵,

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

而這種電路可以達(dá)到12個(gè)按鍵。此電路程序部分和不帶譯碼器的一樣,只是注意對(duì)角線上被二極管替代的地方?jīng)]有按鍵。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 單片機(jī)按鍵電

評(píng)論


技術(shù)專區(qū)

關(guān)閉