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

          新聞中心

          51單片機(jī)P0口介紹

          作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
          P0.0——P0.7是P0口的8位雙向口線。第一功能為基本輸入輸出;第二功能是在系統(tǒng)擴(kuò)展時(shí),分時(shí)做為數(shù)據(jù)總路線和低8位地址總線。

          這里重點(diǎn)介紹一下P0口的結(jié)構(gòu)及其工作過(guò)程:P0口的1位(例如:P0.0)結(jié)構(gòu)如圖

          本文引用地址:http://www.ex-cimer.com/article/201611/322199.htm

          它由一個(gè)輸出鎖存器、兩個(gè)三態(tài)鎖存器(1、2)、輸出控制電路(一個(gè)非門(mén)(3)、一個(gè)與門(mén)(4)、一個(gè)多路控制開(kāi)關(guān)(MUX))、輸出驅(qū)動(dòng)電路(兩只場(chǎng)效應(yīng)管Q1、Q2)組成。

          功能1:做基本I/O口使用

          CPU發(fā)出的控制信號(hào)為低電平,使多路控制開(kāi)關(guān)MUX接通B端,即與輸出鎖存器的“!Q”連接,同時(shí)使與門(mén)輸出為低電平,場(chǎng)效應(yīng)管Q1截止。

          當(dāng)P0輸出數(shù)據(jù)時(shí),寫(xiě)信號(hào)加在鎖存器的R引腳上,內(nèi)部總線上的數(shù)據(jù)通過(guò)S腳由鎖存器的“!Q”端反相輸出到Q2的極。若內(nèi)部總線上數(shù)據(jù)為1,則Q2柵極上為0,此時(shí)Q2截止,Q2處于漏極開(kāi)路的開(kāi)漏狀態(tài),因此為了保證P0.0輸出高電平,必須外接上拉電阻,否則P0端口不能正常工作!若內(nèi)部總線上數(shù)據(jù)為0,則Q2柵極為1,此時(shí)Q2導(dǎo)通,P0.0輸出低電平。

          當(dāng)P0輸入數(shù)據(jù)時(shí),分為讀引腳和讀鎖存器兩種方式,分別用到兩個(gè)輸入緩沖器。

          讀引腳操作,即單片機(jī)執(zhí)行端口輸入指令(如MOV A,P0)時(shí)的操作。這時(shí)由“讀引腳”信號(hào)將三態(tài)緩沖器2打開(kāi),引腳上的數(shù)據(jù)經(jīng)三態(tài)緩沖器2輸入到內(nèi)部總線。

          讀鎖存器操作,即單片機(jī)執(zhí)行“讀—修改—寫(xiě)”類指令(如ANL A,P0)時(shí)的操作。在執(zhí)行這類指令時(shí),由“讀鎖存器”信號(hào)使三態(tài)鎖存器1打開(kāi),讀入P0口在鎖存器中的數(shù)據(jù),然后與累加器A中的數(shù)據(jù)進(jìn)行邏輯運(yùn)算,再反結(jié)果寫(xiě)回到P0口。這類操作不直接從P0口引腳上讀入數(shù)據(jù),而是從鎖存器Q端讀數(shù)據(jù),其目的是為了防止出錯(cuò),確保得到正確結(jié)果

          功能2:系統(tǒng)擴(kuò)展時(shí)分時(shí)做為數(shù)據(jù)總路線和低8位地址總線

          此時(shí)控制信號(hào)為高電平,多路轉(zhuǎn)換開(kāi)關(guān)MUX接通A端,且與門(mén)的輸出由“地址/數(shù)據(jù)”端的狀態(tài)決定。



          關(guān)鍵詞: 51單片機(jī)P0

          評(píng)論


          技術(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); })();