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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)讀端口與讀引腳的區(qū)別

          單片機(jī)讀端口與讀引腳的區(qū)別

          作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          把I/O口作為輸入口使用時(shí),是“讀引腳”,不同于“讀端口”。注意,讀端口的“口”
          不是P0口、P1口的“口”,而是鎖存器的Q端口,也就是讀鎖存器Q端的輸出信號然后送
          三態(tài)緩沖器輸入,經(jīng)過緩沖器輸出到單片機(jī)內(nèi)部總線。而讀引腳則是直接把芯片引腳上
          的外部數(shù)據(jù),經(jīng)過三態(tài)緩沖器把數(shù)據(jù)放到內(nèi)部總線。

          例如,用MOV進(jìn)行讀引腳操作:

          MOV P1,0FFH ;注意首先把P1引腳置為高電平
          MOV A,P1 ;P1作為輸入口,讀P1口信號到A

          編程時(shí)須先置I/O口引腳為高電平的原因如下(請查看口電路結(jié)構(gòu)圖):

          51單片機(jī)的P0口是雙向口,P1~3口是準(zhǔn)雙向口,其I/O口引腳都和單片機(jī)內(nèi)部的場效應(yīng)管
          FET漏極連接。首先我們不妨假設(shè)init時(shí)引腳為低電平(我不知道單片機(jī)reset時(shí)
          引腳缺省電平是低還是高?還是不定?),即FET漏極為低電平,因?yàn)榇藭r(shí)FET是導(dǎo)通的,
          所以無論外部輸入1還是0,都會產(chǎn)生拉電流,拉為低電平,從而無法正確判斷外部輸入
          的是1還是0.嚴(yán)重的話,如果拉電流過大,還可能燒壞FET。

          因此,init時(shí)只好將引腳設(shè)為高電平,例如MOV P1,0FFH,由單片機(jī)口電路的結(jié)構(gòu)圖可以
          看出,這條指令的內(nèi)部電路邏輯是這樣的:
          先把0FFH放到內(nèi)部總線,鎖存器輸入端(D端)從內(nèi)部總線取數(shù)據(jù),鎖存,然
          后從Q非端輸出到FET極,顯然此時(shí)Q非為0,F(xiàn)ET截止,通過漏極上拉電阻輸出高電平,
          不會影響外部輸入電平(相當(dāng)于和外部輸入邏輯與)。


          關(guān)鍵詞: 單片機(jī)讀端口讀引

          評論


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