51單片機(jī)的IO口驅(qū)動(dòng)能力、灌電流、拉電流、上拉電阻的選擇
單片機(jī)輸出低電平時(shí),將允許外部器件,向單片機(jī)引腳內(nèi)灌入電流,這個(gè)電流,稱為“灌電流”,外部電路稱為“灌電流負(fù)載”,如下圖1所示;單片機(jī)輸出高電平時(shí),則允許外部器件,從單片機(jī)的引腳拉出電流,這個(gè)電流,稱為“拉電流”,外部電路稱為“拉電流負(fù)載”,如下圖2所示。
這些電流一般是多少?最大限度是多少? 這就是常見的單片機(jī)輸出驅(qū)動(dòng)能力的問題。每個(gè)單個(gè)的引腳,輸出低電平的時(shí)候,允許外部電路,向引腳灌入的最大電流為 10 mA;每個(gè) 8 位的接口(P1、P2 以及 P3),允許向引腳灌入的總電流最大為 15 mA,而 P0 的能力強(qiáng)一些,允許向引腳灌入的最大總電流為 26 mA;全部的四個(gè)接口所允許的灌電流之和,最大為 71 mA。而當(dāng)這些引腳“輸出高電平”的時(shí)候,單片機(jī)的“拉電流”能力呢?可以說是太差了,竟然不到 1 mA。
結(jié)論就是:?jiǎn)纹瑱C(jī)輸出低電平的時(shí)候,驅(qū)動(dòng)能力尚可,而輸出高電平的時(shí)候,就沒有輸出電流的能力。
下面我們分析一下拉電流負(fù)載和灌電流負(fù)載的區(qū)別:
圖1中,是灌電流負(fù)載。單片機(jī)輸出低電平時(shí),LED亮,;輸出高電平的時(shí)候,那就什么電流都沒有,此時(shí)就不產(chǎn)生額外的耗電。
圖2中,是拉電流負(fù)載。單片機(jī)輸出低電平的時(shí)候,LED不亮,此時(shí)VCC通過R2把電流全部灌進(jìn)單片機(jī)IO口,并且電流時(shí)5ma,單片機(jī)輸出高電平的時(shí)候,VCC通過R2將電流注入到LED中,led亮。注意到了嗎? LED 不發(fā)光的時(shí)候,上拉電阻給的電流全部灌入單片機(jī)的引腳了!如果在一個(gè) 8 位的接口,安裝了 8 個(gè) 1K 的上拉電阻,當(dāng)單片機(jī)都輸出低電平的時(shí)候,就有 40mA 的電流灌入這個(gè) 8 位的接口!如果四個(gè) 8 位接口,都加上 1K 的上拉電阻,最大有可能出現(xiàn) 32 × 5 = 160mA 的電流,都流入到單片機(jī)中!這個(gè)數(shù)值已經(jīng)超過了單片機(jī)手冊(cè)上給出的上限。此時(shí)單片機(jī)就會(huì)出現(xiàn)工作不穩(wěn)定的現(xiàn)象。而且這些電流,都是在負(fù)載處于無效的狀態(tài)下出現(xiàn)的,它們都是完全沒有用處的電流,只是產(chǎn)生發(fā)熱、耗電大、電池消耗快...等后果。
綜上所述,灌電流負(fù)載,是合理的;而“拉電流負(fù)載”和“上拉電阻”會(huì)產(chǎn)生很大的無效電流,并且功耗大。
那么,把上拉電阻加大些,可以嗎?
回答是:不行的,因?yàn)樾枰鼮槔娏髫?fù)載提供電流。對(duì)于 LED,如果加大電阻,將使電流過小,發(fā)光暗淡,就失去發(fā)光二極管的作用了。在圖2中,假如單片機(jī)輸出的高電平時(shí)4V,此時(shí)R2兩端的電壓差為5V-3V=2V。經(jīng)過R2的電流為I=2V/1000=2ma,這一部分電流將全部流入LED。如果加大電阻,上拉電阻提供的電流將會(huì)減小。上拉電阻的大小一般選擇在1K-10K之間就行。
設(shè)計(jì)單片機(jī)的負(fù)載電路,應(yīng)該采用“灌電流負(fù)載”的電路形式,以避免無謂的電流消耗。
評(píng)論