国产一区二区三区三州86295_视频一区二区国产_国产日韩综合导航_日韩亚洲大尺度高清

你的位置:首頁 > 測試測量 > 正文

經(jīng)驗分享:如何解決單片機引腳的上拉電阻問題

發(fā)布時間:2013-12-07 責(zé)任編輯:eliane

【導(dǎo)讀】學(xué)習(xí)單片機的朋友們都知道,單片機的輸出電流很大程度上是取決于引腳上的外接器件。但事實上,“上拉電阻”是會對單片機系統(tǒng)造成不良后果的,而許多書籍資料上都沒有對使用上拉電阻的弊病進行討論。本文將為大家講解使用上拉電阻的一些弊端及解決方法。

經(jīng)驗分享:如何解決單片機引腳的上拉電阻問題

單片機的引腳,可以用程序來控制,輸出高、低電平,這些可算是單片機的輸出電壓。但是,程序控制不了單片機的輸出電流。單片機的輸出電流,很大程度上是取決于引腳上的外接器件。

單片機輸出低電平時,將允許外部器件,向單片機引腳內(nèi)灌入電流,這個電流,稱為“灌電流”,外部電路稱為“灌電流負載”;單片機輸出高電平時,則允許外部器件,從單片機的引腳,拉出電流,這個電流,稱為“拉電流”,外部電路稱為“拉電流負載”。

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

早期的51系列單片機的帶負載能力,是很小的,僅僅用“能帶動多少個TTL輸入端”來說明的。P1、P2和P3口,每個引腳可以都帶動3個TTL輸入端,只有P0口的能力強,它可以帶動8個!
[page]
分析一下TTL的輸入特性,就可以發(fā)現(xiàn),51單片機基本上就沒有什么驅(qū)動能力。它的引腳,甚至不能帶動當(dāng)時的LED進行正常發(fā)光。記得是在AT89C51單片機流行起來之后,做而論道才發(fā)現(xiàn):單片機引腳的能力大為增強,可以直接帶動LED發(fā)光了。

從AT89C51單片機的PDF手冊文件中可以看到,穩(wěn)態(tài)輸出時,“灌電流”的上限為:
Maximum IOL per port pin: 10 mA;
Maximum IOL per 8-bit port
ort 0: 26 mA,Ports 1, 2, 3: 15 mA;
Maximum total I for all output pins: 71 mA.

這里是說:

每個單個的引腳,輸出低電平的時候,允許外部電路,向引腳灌入的最大電流為10mA;每個8位的接口(P1、P2以及P3),允許向引腳灌入的總電流最大為15mA,而P0的能力強一些,允許向引腳灌入的最大總電流為26mA;全部的四個接口所允許的灌電流之和,最大為71mA。

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

結(jié)論就是:單片機輸出低電平的時候,驅(qū)動能力尚可,而輸出高電平的時候,就沒有輸出電流的能力。這個結(jié)論是依照手冊中給出的數(shù)據(jù)做出來的。

51單片機的這些特性,是源于引腳的內(nèi)部結(jié)構(gòu),引腳內(nèi)部結(jié)構(gòu)圖這里就不畫了,很多書中都有。

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

哦,明白了,外接電路如果是“拉電流負載”,要求單片機輸出高電平時發(fā)揮作用,那就必須用“上拉電阻”來協(xié)助,產(chǎn)生負載所需的電流。
[page]
下面就專門說說上拉電阻存在的問題。

從上面提到D2發(fā)光,是由上拉電阻R2提供的電流,D2導(dǎo)通發(fā)光的電壓約為2V,那么發(fā)光的電流就是:(5-2)/1K,約為3mA。

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

注意到了嗎?LED不發(fā)光的時候,上拉電阻給出了更大的電流!并且,這個大于正常發(fā)光的電流,全部灌入單片機的引腳了!如果在一個8位的接口,安裝了8個1K的上拉電阻,當(dāng)單片機都輸出低電平的時候,就有40mA的電流灌入這個8位的接口!如果四個8位接口,都加上1K的上拉電阻,最大有可能出現(xiàn)32×5=160mA的電流,都流入到單片機中!這個數(shù)值已經(jīng)超過了單片機手冊上給出的上限。如果此時單片機工作不穩(wěn)定,就是理所當(dāng)然的了。

而且這些電流,都是在負載處于無效的狀態(tài)下出現(xiàn)的,它們都是完全沒有用處的電流,只是產(chǎn)生發(fā)熱、耗電大、電池消耗快,等后果。

特別是現(xiàn)在,都在提倡節(jié)能減排,低碳。

那么,把上拉電阻加大些,可以嗎?

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

對于D1,是灌電流負載,單片機輸出低電平的時候,R1、D1通路上會有灌電流;輸出高電平的時候,那就什么電流都沒有,此時就不產(chǎn)生額外的耗電。

綜上所述,灌電流負載,是合理的;而“拉電流負載”和“上拉電阻”會產(chǎn)生很大的無效電流,這種電路不合理。有些網(wǎng)友對上拉電阻情有獨鐘,有用沒用的,都想在引腳上安裝個上拉電阻,甚至還能說出些理由:穩(wěn)定性、速度。

其實,“上拉電阻”和“拉電流負載”電路,是會對單片機系統(tǒng)造成不良后果的。筆者看過很多關(guān)于單片機引腳以及上拉電阻方面的書籍、參考資料,基本上它們對于使用上拉電阻的弊病都沒有進行仔細的討論。

在此,鄭重向大家提出建議:設(shè)計單片機的負載電路,應(yīng)該采用“灌電流負載”的電路形式,以避免無謂的電流消耗。上拉電阻,僅僅是在P0口才考慮加不加的問題:當(dāng)用P0口做為輸入口的時候,需要加上、當(dāng)用P0口輸出高電平驅(qū)動MOS型負載的時候,也需要加上,其它的時候,P0口也不用加入上拉電阻。在其它接口(P1、P2和P3),都不應(yīng)該加上拉電阻,特別是輸出低電平有效的時候,外接器件就有上拉的作用。

相關(guān)閱讀:
小編推薦:五步搞定單片機晶振不起振故障
http://www.okpsp.com/gptech-art/80021914

竅門分享:單片機開發(fā)中應(yīng)掌握的幾個技巧
http://www.okpsp.com/gptech-art/80021808

【圖文】利用單片機設(shè)計制作LED搖搖棒方案
http://www.okpsp.com/opto-art/80021564
要采購晶振么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
LED驅(qū)動IC LED驅(qū)動模塊 LED散熱 LED數(shù)碼管 LED數(shù)字調(diào)光 LED顯示 LED顯示屏 LED照明 LED照明設(shè)計 Lightning Linear Litepoint Littelfuse LTC LTE LTE功放 LTE基帶 Marvell Maxim MCU MediaTek MEMS MEMS傳感器 MEMS麥克風(fēng) MEMS振蕩器 MHL Micrel Microchip Micron Mic連接器
?

關(guān)閉

?

關(guān)閉