中文在线中文资源,色鲁97精品国产亚洲AV高,亚洲欧美日韩在线一区,国产精品福利午夜在线观看

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

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

發布時間:2013-12-07 責任編輯:eliane

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

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

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

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

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

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

從AT89C51單片機的PDF手冊文件中可以看到,穩態輸出時,“灌電流”的上限為:
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。

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

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

51單片機的這些特性,是源于引腳的內部結構,引腳內部結構圖這里就不畫了,很多書中都有。

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

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

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

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

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

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

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

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

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

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

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

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

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

相關閱讀:
小編推薦:五步搞定單片機晶振不起振故障
http://hdh-sz.com/gptech-art/80021914

竅門分享:單片機開發中應掌握的幾個技巧
http://hdh-sz.com/gptech-art/80021808

【圖文】利用單片機設計制作LED搖搖棒方案
http://hdh-sz.com/opto-art/80021564
要采購晶振么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉

  • <center id="09kry"></center>

  • 主站蜘蛛池模板: 信宜市| 乌审旗| 曲靖市| 县级市| 晋城| 桃源县| 岳普湖县| 阳朔县| 景泰县| 廉江市| 钟祥市| 汝阳县| 凤城市| 普格县| 聂拉木县| 松阳县| 临城县| 许昌市| 宜宾县| 石柱| 黎川县| 昂仁县| 靖安县| 万源市| 华阴市| 台中市| 景东| 刚察县| 藁城市| 铁岭市| 鄂伦春自治旗| 广汉市| 武冈市| 双鸭山市| 莱西市| 密云县| 山阴县| 封开县| 阿克苏市| 内黄县| 独山县|