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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 幾種常用51單片機的I/O口驅(qū)動能力分析

          幾種常用51單片機的I/O口驅(qū)動能力分析

          作者: 時間:2011-03-22 來源:網(wǎng)絡(luò) 收藏

          在控制系統(tǒng)中,經(jīng)常用單片機的I/O口驅(qū)動其他電路。幾種常用單片機I/O口驅(qū)動能力在相關(guān)的資料中的說法是:GMS97C2051、AT89C2051的P1、P3的口線分別具有 10mA、20mA的輸出驅(qū)動能力,AT89C51的P0、P1、P2、P3的口線具有10mA的輸出驅(qū)動能力。在實際應(yīng)用中,僅有這些資料是遠遠不夠的。筆者通過實驗測出了上述幾種單片機的I/O口線的伏安特性(圖1、圖2),從中可以得到這些I/O口的實際驅(qū)動能力。

          說明:1、測試方法:所測試的口線輸出的信號是周期為4秒的方波。當(dāng)測試口線為低電平時的驅(qū)動能力時,該口線通過電阻箱接+5V電源,測出該口線對地的電壓,從而計算出通過電阻的電流,即灌電流;測出這樣的一組數(shù)據(jù),得到口線為低電平時的伏安特性曲線。當(dāng)測試口線為高電平時的驅(qū)動能力時,該口線通過電阻接地,測出該口線對地的電壓,從而計算出通過電阻的電流,即拉電流;測出這樣的一組數(shù)據(jù),得到口線為高電平時的伏安特性曲線。2、AT89C2051、GMS97C2051的P1.0和P1.1及AT89C51的P0口的8條口線為漏極開路,其輸出伏安特性取決于外接的上拉電阻,本實驗不包括這些口線。實驗發(fā)現(xiàn),GMS97C2051的P1口為高電平時能夠驅(qū)動CMOS和LSTTL,但驅(qū)動能力較差,其輸出伏安特性曲線未標(biāo)在圖2中。3、圖中繪出LSTTL電平的上下限值VOL(MAX)=0.5V和VOH(MIN)=2.7V,據(jù)此可求出口線的最大扇出N。

          AT89C51:P0、P1、P2、P3口線為低電平時,NL≤38,P1、P2、P3口線為高電平時,NH≤10,?。危剑保啊?/P>

          AT89C2051:P1、P3口線為低電平時,NL≤91,P1、P3口線為高電平時,NH≤9,?。危剑?。

          GMS97C2051:P1、P3口線為低電平時,NL≤51,P3口線為高電平時,NH≤17,取N=17。

          根據(jù)圖1、圖2及上述說明,可以得出如下結(jié)論:

          1) 這幾種芯片的I/O口線的低電平的驅(qū)動能力明顯高于高電平的驅(qū)動能力;2) GMS97C2051的P3口作I/O口的驅(qū)動能力為:N=17, P1口高電平的驅(qū)動能力相對較差,最好不用P1口高電平作驅(qū)動;3) AT89C2051的P1、P3口做I/O口的驅(qū)動能力為:N=9;4) AT89C51的P1、P2、P3口做I/O口的驅(qū)動能力為:N=10。

          根據(jù)以上結(jié)論,筆者建議用I/O口線的低電平來作驅(qū)動輸出;典型的驅(qū)動電路如圖3。



          評論


          相關(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); })();