51單片機驅動(dòng)能力上拉電阻分析
這些電流一般是多少?最大限度是多少? 這就是常見(jiàn)的單片機輸出驅動(dòng)能力的問(wèn)題。
早期的 51 系列單片機的帶負載能力,是很小的,僅僅用“能帶動(dòng)多少個(gè) TTL 輸入端”來(lái)說(shuō)明的。P1、P2 和 P3口,每個(gè)引腳可以都帶動(dòng) 3 個(gè) TTL 輸入端,只有 P0 口的能力強,它可以帶動(dòng) 8 個(gè)!
分析一下 TTL 的輸入特性,就可以發(fā)現,51 單片機基本上就沒(méi)有什么驅動(dòng)能力。它的引腳,甚至不能帶動(dòng)當時(shí)的 LED 進(jìn)行正常發(fā)光。記得是在 AT89C51 單片機流行起來(lái)之后,做而論道才發(fā)現:?jiǎn)纹瑱C引腳的能力大為增強,可以直接帶動(dòng) LED 發(fā)光了。
看
看下圖,圖中的 D1、D2 就可以不經(jīng)其它驅動(dòng)器件,直接由單片機的引腳控制發(fā)光顯示。
雖然引腳已經(jīng)可以直接驅動(dòng) LED 發(fā)光,但是且慢,先別太高興,還是看看 AT89C51 單片機引腳的輸出能力吧。
從 AT89C51 單片機的 PDF 手冊文件中可以看到,穩態(tài)輸出時(shí),“灌電流”的上限為:
Maximum IOL per port pin: 10 mA;
Maximum IOL per 8-bit port

Maximum total I for all output pins: 71 mA.
這里是說(shuō):
每個(gè)單個(gè)的引腳,輸出低電平的時(shí)候,允許外部電路,向引腳灌入的最大電流為 10 mA;
每個(gè) 8 位的接口(P1、P2 以及 P3),允許向引腳灌入的總電流最大為 15 mA,而 P0 的能力強一些,允許向引腳灌入的最大總電流為 26 mA;
全部的四個(gè)接口所允許的灌電流之和,最大為 71 mA。
而當這些引腳“輸出高電平”的時(shí)候,單片機的“拉電流”能力呢? 可以說(shuō)是太差了,竟然不到 1 mA。
結論就是:?jiǎn)纹瑱C輸出低電平的時(shí)候,驅動(dòng)能力尚可,而輸出高電平的時(shí)候,就沒(méi)有輸出電流的能力。
這個(gè)結論是依照手冊中給出的數據做出來(lái)的。
51 單片機的這些特性,是源于引腳的內部結構,引腳內部結構圖這里就不畫(huà)了,很多書(shū)中都有。
在芯片的內部,引腳和地之間,有個(gè)三極管,所以引腳具有下拉的能力,輸出低電平的時(shí)候,允許灌入 10mA 的電流;而引腳和正電源之間,有個(gè)幾百K的“內部上拉電阻”,所以,引腳在高電平的時(shí)候,能夠輸出的拉電流很小。特別是 P0 口,其內部根本就沒(méi)有上拉電阻,所以 P0 口根本就沒(méi)有高電平輸出電流的能力。
再看看上面的電路圖:
圖中的 D1,是接在正電源和引腳之間的,這就屬于灌電流負載,D1 在單片機輸出低電平的時(shí)候發(fā)光。這個(gè)發(fā)光的電流,可以用電阻控制在 10 mA 之內。
圖中的 D2,是接在引腳和地之間的,這屬于拉電流負載,D2 應該在單片機輸出高電平的時(shí)候發(fā)光。但是單片機此時(shí)幾乎沒(méi)有輸出能力,必須采用外接“上拉電阻”的方法來(lái)提供 D2 所需的電流。
哦,明白了,外接電路如果是“拉電流負載”,要求單片機輸出高電平時(shí)發(fā)揮作用,那就必須用“上拉電阻”來(lái)協(xié)助,產(chǎn)生負載所需的電流。
下面做而論道就專(zhuān)門(mén)說(shuō)說(shuō)上拉電阻存在的問(wèn)題。
從上面的圖中可以看到,D2 發(fā)光,是由上拉電阻 R2 提供的電流,D2 導通發(fā)光的電壓約為 2V,那么發(fā)光的電流就是:(5 - 2) / 1K,約為 3mA。
而當單片機輸出低電平(0V),D2 不發(fā)光的時(shí)候,R2 這個(gè)上拉電阻閑著(zhù)了嗎? 沒(méi)有!它兩端的電壓,比 LED 發(fā)光的時(shí)候還高,現在是 5V 了,其中的電流,是 5mA !
注意到了嗎? LED 不發(fā)光的時(shí)候,上拉電阻給出了更大的電流!并且,這個(gè)大于正常發(fā)光的電流,全部灌入單片機的引腳了!
如果在一個(gè) 8 位的接口,安裝了 8 個(gè) 1K 的上拉電阻,當單片機都輸出低電平的時(shí)候,就有 40mA 的電流灌入這個(gè) 8 位的接口!
如果四個(gè) 8 位接口,都加上 1K 的上拉電阻,最大有可能出現 32 × 5 = 160mA 的電流,都流入到單片機中!
這個(gè)數值已經(jīng)超過(guò)了單片機手冊上給出的上限。如果此時(shí)單片機工作不穩定,就是理所當然的了。
而且這些電流,都是在負載處于無(wú)效的狀態(tài)下出現的,它們都是完全沒(méi)有用處的電流,只是產(chǎn)生發(fā)熱、耗電大、電池消耗快...等后果。
呵呵,特別是現在,都在提倡節能減排,低碳...。
那么,把上拉電阻加大些,可以嗎?
回答是:不行的,因為需要它為拉電流負載提供電流。對于 LED,如果加大電阻,將使電流過(guò)小,發(fā)光暗淡,就失去發(fā)光二極管的作用了。
對于 D1,是灌電流負載,單片機輸出低電平的時(shí)候,R1、D1 通路上會(huì )有灌電流;輸出高電平的時(shí)候,那就什么電流都沒(méi)有,此時(shí)就不產(chǎn)生額外的耗電。
綜上所述,灌電流負載,是合理的;而“拉電流負載”和“上拉電阻”會(huì )產(chǎn)生很大的無(wú)效電流,這種電路不合理。
評論