<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 【E電路】4×4矩陣式鍵盤(pán)電路的改進(jìn)

【E電路】4×4矩陣式鍵盤(pán)電路的改進(jìn)

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

  51單片機系統中,經(jīng)常使用4×4鍵盤(pán),一般情況下,都是使用一個(gè)8位的接口,外接16個(gè)按鍵。

本文引用地址:http://dyxdggzs.com/article/201602/286554.htm

  下圖就是一個(gè)常規的4×4鍵盤(pán)電路圖。

    

 

  這種常規的矩陣鍵盤(pán)電路,相信大家都司空見(jiàn)慣了,好多人都會(huì )編寫(xiě)它的驅動(dòng)程序。

  圖中使用了P0口的8個(gè)引腳(P0.0~P0.7),分別驅動(dòng)鍵盤(pán)的行和列。按鍵的編號,在圖中分別標注了0~F。

  檢測按鍵的一般的思路是在四個(gè)列線(xiàn),分別輸出一個(gè)低電平,然后輸入行線(xiàn),逐行檢測是否存在低電平。

  如果在某行有低電平出現,就說(shuō)明該行、列的交叉點(diǎn)上的按鍵,被按下了。

  其實(shí),這些行、列引線(xiàn),是“分時(shí)”工作的,當在某一列輸出低電平的時(shí)候,其它的列,輸出的就是高電平。

  如果利用這些輸出高電平的列,進(jìn)行輸入,那么就可以極大的節省IO接口的引線(xiàn)數量。

  基于這個(gè)道理,在上圖中,下面的四個(gè)列驅動(dòng)引線(xiàn)(P0.4~P0.7),就完全可以省去,只是使用行驅動(dòng)的引腳(P0.0~P0.3)來(lái)分時(shí)輸出低電平即可。

  電路見(jiàn)下圖。

    

 

  為了對引腳之間進(jìn)行隔離,圖中加上了四個(gè)二極管,確保只有在引腳輸出低電平的時(shí)候,方可把鍵盤(pán)中相應的列置為0。

  針對這個(gè)電路,對按鍵的檢測方法,和常規的4×4鍵盤(pán)檢測思路是相同的,例如:

  當在P0.0輸出低電平,即最左邊的列為0,這時(shí)檢測P0.1、P0.2及P0.3是否為0,可以判斷最左邊的三個(gè)按鍵是否按下;

  當在P0.1輸出低電平,即左邊第二列為0,這時(shí)檢測P0.0、P0.2及P0.3是否為0,可以判斷左邊第二列的三個(gè)按鍵是否按下;

  …………;

  這個(gè)檢測按鍵是否按下的思路非常簡(jiǎn)單,會(huì )編寫(xiě)常規4×4鍵盤(pán)驅動(dòng)程序的網(wǎng)友,肯定都會(huì )編寫(xiě)出來(lái)這種電路的驅動(dòng)程序。

  因為行和列使用了相同的IO引線(xiàn),實(shí)際上,連接在同一個(gè)引線(xiàn)的行、列交叉點(diǎn)處的按鍵,就已經(jīng)失效了,那么就把把原來(lái)的按鍵,移動(dòng)出來(lái),把二極管畫(huà)在交叉點(diǎn),電路如下所示。

    

 

  再把移出來(lái)四個(gè)按鍵連接在IO引線(xiàn),另一端直接接地;把其它按鍵的編號,再整理一下,就成了下圖電路。

    

 

  這個(gè)電路比常規的4×4鍵盤(pán)電路僅僅多用了四個(gè)二極管,但是卻節省了四條IO接口引線(xiàn),這個(gè)意義是十分巨大的。

  按照這個(gè)電路的設計思路,使用 n 條IO接口引線(xiàn),就可以驅動(dòng) n×n 個(gè)按鍵。

  那么用5個(gè)IO引腳,就可以驅動(dòng)5×5的鍵盤(pán),這就足以滿(mǎn)足各種應用了。

  網(wǎng)上也有一些其它類(lèi)型的節省接口的鍵盤(pán)電路,但是都有不足,不是電路過(guò)于復雜,就是驅動(dòng)的按鍵個(gè)數較少,遠遠不及本電路簡(jiǎn)單實(shí)用。

  這是個(gè)完美的精簡(jiǎn)接口的4×4鍵盤(pán)電路,不僅可以用在51單片機系統,在使用其它MCU組建的電路中同樣適用。

  針對這個(gè)電路,已經(jīng)用匯編語(yǔ)言和C語(yǔ)言編寫(xiě)出了驅動(dòng)程序,因為匯編語(yǔ)言可以使用“位操作”指令,所以程序的比較簡(jiǎn)單;C語(yǔ)言的程序,就顯得累贅一些。



關(guān)鍵詞: 矩陣式鍵盤(pán)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>