<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MCS-51單片機(jī)P0口擴(kuò)展技術(shù)研究

          MCS-51單片機(jī)P0口擴(kuò)展技術(shù)研究

          作者: 時(shí)間:2011-05-17 來源:網(wǎng)絡(luò) 收藏

          2.1 74HC377芯片的功能

          輸出接口通常用74HC377芯片來實(shí)現(xiàn)。該芯片是一個(gè)帶允許端的8D鎖存器,其芯片的引腳如圖4所示,各相關(guān)引腳的功能如下:

          ◇D0~D7為8位數(shù)據(jù)輸入端;

          ◇Q0~Q7為8位數(shù)據(jù)輸出端;

          ◇G為使能控制端;

          ◇CLK為時(shí)鐘信號(hào),上升沿鎖存數(shù)據(jù)。

          表1所列是該芯片的真值表。

          2.2 應(yīng)用74HC377芯片輸出接口

          圖5是利用74HC377進(jìn)行輸出接口的電路連接圖。圖中,74HC377的G端與P2.6口相連,其地址是x0xxxxxxB,如果把“x”全置為1,則為1011 1111 1111 1111B,這樣,0BFFFH就是該芯片的地址了。

          由于的WR是與74HC377的CLK端相連的,當(dāng)WR信號(hào)由低變高時(shí),數(shù)據(jù)總線上的數(shù)據(jù)為輸出數(shù)據(jù),而此時(shí)P2.6輸出低電平,G有效,因此,數(shù)據(jù)就被鎖存。其相關(guān)程序如下:

          MOV DPTR,#0BFFFH

          MOV A,#DATA

          MOVX @DPTR,A

          此外,利用74HC373芯片、74HC573芯片也可以進(jìn)行口的擴(kuò)展。

          3 接口擴(kuò)展實(shí)例

          在實(shí)際的應(yīng)用系統(tǒng)中,可能需要同時(shí)擴(kuò)展多個(gè)I/O口,以滿足應(yīng)用系統(tǒng)的需要。而各個(gè)輸入、輸出擴(kuò)展I/O芯片應(yīng)通過74LS138進(jìn)行“全地址”譯碼選通,從而分時(shí)復(fù)用數(shù)據(jù)總線DB (DataBus)。為了防止過渡干擾對(duì)譯碼選通邏輯造成的影響,系統(tǒng)所用的外圍芯片一般均設(shè)為雙步選通方式,即除了配置譯碼選通端外,還應(yīng)配置使能選通端。而74HC244芯片本身沒有明顯的片選和讀/寫控制端,設(shè)計(jì)時(shí)通常采用譯碼和讀控制信號(hào)來同時(shí)控制74HC244的CS,從而有效地抑制輸入/輸出數(shù)據(jù)信息的過渡干擾。

          此電路輸入口擴(kuò)展采用2個(gè)74HC244。其輸入端接鍵盤或其它數(shù)字信號(hào);而輸出口擴(kuò)展則選用2個(gè)74HC377,以用于控制數(shù)碼管、發(fā)光二極管、繼電器等。其詳細(xì)電路原理圖如圖6所示。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();