18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

關於51單片機IO引腳的驅動能力與上拉電阻

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2019-04-14

單片機的引腳,可以用程序來控製,輸出高、低電平,這些可算是單片機的輸出電壓。

但是,程序控製不了單片機的輸出電流。 單片機的輸出電流,很大程度上是取決(jue) 於(yu) 引腳上的外接器件。

單片機輸出低電平時,將允許外部器件,向單片機引腳內(nei) 灌入電流,這個(ge) 電流,稱為(wei) “灌電流”,外部電路稱為(wei) “灌電流負載”;

單片機輸出高電平時,則允許外部器件,從(cong) 單片機的引腳,拉出電流,這個(ge) 電流,稱為(wei) “拉電流”,外部電路稱為(wei) “拉電流負載”。

這些電流一般是多少?最大限度是多少? 這就是常見的單片機輸出驅動能力的問題。

早期的 51 係列單片機的帶負載能力,是很小的,僅(jin) 僅(jin) 用“能帶動多少個(ge) TTL 輸入端”來說明的。

P1、P2 和 P3口,每個(ge) 引腳可以都帶動 3 個(ge) TTL 輸入端,隻有 P0 口的能力強,它可以帶動 8 個(ge) !

分析一下 TTL 的輸入特性,就可以發現,51 單片機基本上就沒有什麽(me) 驅動能力。

它的引腳,甚至不能帶動當時的 LED 進行正常發光。

記得是在 AT89C51 單片機流行起來之後,做而論道才發現:單片機引腳的能力大為(wei) 增強,可以直接帶動 LED 發光了。

看看下圖,圖中的 D1、D2 就可以不經其它驅動器件,直接由單片機的引腳控製發光顯示。

51單片機IO引腳的驅動能力與上拉電阻

雖然引腳已經可以直接驅動 LED 發光,但是且慢,先別太高興(xing) ,還是看看 AT89C51 單片機引腳的輸出能力吧。

從(cong) AT89C51 單片機的 PDF 手冊(ce) 文件中可以看到,穩態輸出時,“灌電流”的上限為(wei) :

Maximum IOL per port pin: 10 mA;

Maximum IOL per 8-bit port:Port 0: 26 mA,Ports 1, 2, 3: 15 mA;

Maximum total I for all output pins: 71 mA.

這裏是說:

每個(ge) 單個(ge) 的引腳,輸出低電平的時候,允許外部電路,向引腳灌入的最大電流為(wei) 10 mA;

每個(ge) 8 位的接口(P1、P2 以及 P3),允許向引腳灌入的總電流最大為(wei) 15 mA,而 P0 的能力強一些,允許向引腳灌入的最大總電流為(wei) 26 mA;

全部的四個(ge) 接口所允許的灌電流之和,最大為(wei) 71 mA。

而當這些引腳“輸出高電平”的時候,單片機的“拉電流”能力呢? 可以說是太差了,竟然不到 1 mA。

結論就是:單片機輸出低電平的時候,驅動能力尚可,而輸出高電平的時候,就沒有輸出電流的能力。

這個(ge) 結論是依照手冊(ce) 中給出的數據做出來的。

51 單片機的這些特性,是源於(yu) 引腳的內(nei) 部結構,引腳內(nei) 部結構圖這裏就不畫了,很多書(shu) 中都有。

在芯片的內(nei) 部,引腳和地之間,有個(ge) 三極管,所以引腳具有下拉的能力,輸出低電平的時候,允許灌入 10mA 的電流;而引腳和正電源之間,有個(ge) 幾百K的“內(nei) 部上拉電阻”,所以,引腳在高電平的時候,能夠輸出的拉電流很小。特別是 P0 口,其內(nei) 部根本就沒有上拉電阻,所以 P0 口根本就沒有高電平輸出電流的能力。

再看看上麵的電路圖:

圖中的 D1,是接在正電源和引腳之間的,這就屬於(yu) 灌電流負載,D1 在單片機輸出低電平的時候發光。這個(ge) 發光的電流,可以用電阻控製在 10 mA 之內(nei) 。

圖中的 D2,是接在引腳和地之間的,這屬於(yu) 拉電流負載,D2 應該在單片機輸出高電平的時候發光。但是單片機此時幾乎沒有輸出能力,必須采用外接“上拉電阻”的方法來提供 D2 所需的電流。

哦,明白了,外接電路如果是“拉電流負載”,要求單片機輸出高電平時發揮作用,那就必須用“上拉電阻”來協助,產(chan) 生負載所需的電流。

下麵做而論道就專(zhuan) 門說說上拉電阻存在的問題。

從(cong) 上麵的圖中可以看到,D2 發光,是由上拉電阻 R2 提供的電流,D2 導通發光的電壓約為(wei) 2V,那麽(me) 發光的電流就是:(5 - 2) / 1K,約為(wei) 3mA。

而當單片機輸出低電平(0V),D2 不發光的時候,R2 這個(ge) 上拉電阻閑著了嗎? 沒有!它兩(liang) 端的電壓,比 LED 發光的時候還高,現在是 5V 了,其中的電流,是 5mA !

注意到了嗎? LED 不發光的時候,上拉電阻給出了更大的電流!並且,這個(ge) 大於(yu) 正常發光的電流,全部灌入單片機的引腳了!

如果在一個(ge) 8 位的接口,安裝了 8 個(ge) 1K 的上拉電阻,當單片機都輸出低電平的時候,就有 40mA 的電流灌入這個(ge) 8 位的接口!

如果四個(ge) 8 位接口,都加上 1K 的上拉電阻,最大有可能出現 32 × 5 = 160mA 的電流,都流入到單片機中!

這個(ge) 數值已經超過了單片機手冊(ce) 上給出的上限。如果此時單片機工作不穩定,就是理所當然的了。

而且這些電流,都是在負載處於(yu) 無效的狀態下出現的,它們(men) 都是完全沒有用處的電流,隻是產(chan) 生發熱、耗電大、電池消耗快...等後果。

嗬嗬,特別是現在,都在提倡節能減排,低碳...。

那麽(me) ,把上拉電阻加大些,可以嗎?

回答是:不行的,因為(wei) 需要它為(wei) 拉電流負載提供電流。對於(yu) LED,如果加大電阻,將使電流過小,發光暗淡,就失去發光二極管的作用了。

對於(yu) D1,是灌電流負載,單片機輸出低電平的時候,R1、D1 通路上會(hui) 有灌電流;輸出高電平的時候,那就什麽(me) 電流都沒有,此時就不產(chan) 生額外的耗電。

綜上所述,灌電流負載,是合理的;而“拉電流負載”和“上拉電阻”會(hui) 產(chan) 生很大的無效電流,這種電路不合理。

有些網友對上拉電阻情有獨鍾,有用沒用的,都想在引腳上安裝個(ge) 上拉電阻,甚至還能說出些理由:穩定性啦、速度啦...。

其實,“上拉電阻”和“拉電流負載”電路,是會(hui) 對單片機係統造成不良後果的。

做而論道看過很多關(guan) 於(yu) 單片機引腳以及上拉電阻方麵的書(shu) 籍、參考資料,基本上它們(men) 對於(yu) 使用上拉電阻的弊病都沒有進行仔細的討論。

在此,做而論道鄭重向大家提出建議:設計單片機的負載電路,應該采用“灌電流負載”的電路形式,以避免無謂的電流消耗。

上拉電阻,僅(jin) 僅(jin) 是在 P0 口才考慮加不加的問題:當用 P0 口做為(wei) 輸入口的時候,需要加上、當用 P0 口輸出高電平驅動 MOS 型負載的時候,也需要加上,其它的時候,P0 口也不用加入上拉電阻。

在其它接口(P1、P2 和 P3),都不應該加上拉電阻,特別是輸出低電平有效的時候,外接器件就有上拉的作用。

Tags:51單片機,IO引腳的驅動能力  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢