<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機小白學(xué)步(23) IO口原理知識補充:雙向IO口 互補推挽

單片機小白學(xué)步(23) IO口原理知識補充:雙向IO口 互補推挽

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
由于之前考慮不周,本篇在IO口原理知識的基礎上,進(jìn)一步補充一些知識。

=================================================

本文引用地址:http://dyxdggzs.com/article/201611/317591.htm

雙向IO口的輸出:互補推挽

51單片機的P0口工作在普通IO口模式下,為準雙向IO口。而工作在第二功能狀態(tài)下時(shí),則為標準的雙向IO口。由于雙向IO口的輸出,要求能輸出高低電平,通常會(huì )采用互補推挽電路。

在第二功能狀態(tài)下,51單片機P0口采用的是互補推挽的輸出方式。何為互補推挽呢?下面是它的等效電路圖。

當P0第二功能作為輸出時(shí),K1和K2兩個(gè)開(kāi)關(guān)輪流打開(kāi)。K2閉合K1打開(kāi),就會(huì )輸出高電平,并且其驅動(dòng)能力很大,因為電子開(kāi)關(guān)的阻值?。ú幌?strong>上拉電阻的值那么大)。反之K2打開(kāi),K1閉合,就會(huì )輸出低電平。

兩個(gè)開(kāi)關(guān)交替導通,互為補充,“挽”是“拉”的意思,兩個(gè)電子開(kāi)關(guān)分別負責在IO口輸出處“推”和“拉”電流,所以稱(chēng)為互補推挽。

這種IO口結構的優(yōu)點(diǎn)很明顯,驅動(dòng)能力強,穩定可靠。缺點(diǎn)在于實(shí)現起來(lái)比較困難。在切換輸出電平的過(guò)程中,例如從低電平切換到高電平,當K1斷開(kāi)時(shí),要求盡可能快的輸出高電平,也就是K2應該立即閉合;同時(shí),如果K1還沒(méi)斷開(kāi),K2就提前閉合了,相同于兩個(gè)開(kāi)關(guān)同時(shí)導通,會(huì )直接短路,后果又會(huì )很?chē)乐?。所以需要用電路控制好兩個(gè)開(kāi)關(guān)的協(xié)調工作。

雙向IO口的輸入:高阻態(tài)、輸入電阻

雙向IO口的輸出,只要求能輸出高低電平,因此并不是必須采用互補推挽電路。而采用互補推挽電路的好處在于,這種電路同時(shí)又可以實(shí)現高阻態(tài)的輸入,從而實(shí)現標準雙向IO口。

當圖中的K1和K2同時(shí)斷開(kāi)時(shí),IO口就可以工作在高阻態(tài)的輸入狀態(tài)下。高阻態(tài)到底是什么樣的一個(gè)概念呢?

當IO口處于高阻態(tài)時(shí),也將其稱(chēng)為浮空輸入狀態(tài),其電平是懸浮不定的,既不是高電平也不是低電平。我們可以想象單片機在檢測IO口的電平高低時(shí),相當于在CPU里面有一個(gè)類(lèi)似電壓表的東西,并且這個(gè)電壓表內阻很大,例如圖中給出的100MΩ。在這里,我們可以把這個(gè)電壓表的內阻稱(chēng)為P0.0口此時(shí)的輸入電阻(也可以近似認為是輸出阻抗,電阻是對直流電而言,而阻抗是對交流電來(lái)說(shuō)的。這是模擬電路的知識,這里不做細說(shuō))。

現在試想,如果我不小心用手碰到了P0.0端口,而由于人體本身就是阻值很大的導體,周?chē)泻芏嚯姶挪ǜ蓴_,手上可能存在一些很微弱的電流,這個(gè)時(shí)候,電壓表的讀數就會(huì )發(fā)生變化,單片機讀取的電平高低就會(huì )變。高阻態(tài)表現出來(lái)的結果就是外界很小的干擾,都可能導致讀取的電平變化,甚至即使沒(méi)有碰這個(gè)IO口,它每次讀取的結果也可能不一樣,因為外界的電磁波等可能會(huì )干擾到IO口。稍后我們會(huì )利用51單片機做個(gè)實(shí)驗,來(lái)體驗P0口的高阻態(tài)。

高阻態(tài)的意義、輸出電阻

為什么雙向IO口輸入的時(shí)候要求是高阻態(tài)呢?

我們假設有一種裝置,等效電路如下圖。開(kāi)關(guān)上下切換,它就會(huì )輸出高低電平,通過(guò)電壓表可以檢測出來(lái)。但是其驅動(dòng)能力很弱,連LED也驅動(dòng)不了。裝置里的100kΩ,可以叫做裝置的輸出電阻(同樣也可以近似認為是輸出阻抗)。

讓這個(gè)裝置輸出低電平,然后連接51單片機的P1.0口。這時(shí),VCC經(jīng)過(guò)10kΩ上拉電阻到達IO口,再到裝置內部的100kΩ電阻,通過(guò)開(kāi)關(guān)K接到GND。根據分壓原理,P1.0上的電壓值大概是4.55V,于是單片機讀取的是高電平。而事實(shí)是,裝置想輸出低電平告知51單片機。這里單片機管腳作為輸入功能,卻干擾了外界裝置的輸出值,相當于單片機的這個(gè)IO口也在輸出。

當單片機的P0口工作在第二功能的輸入狀態(tài),或者工作在普通IO口的輸入狀態(tài),且沒(méi)有外界上下拉電阻,內部的兩個(gè)電子開(kāi)關(guān)都是斷開(kāi)的,對外部呈現高阻態(tài)。從圖中可以看出,裝置輸出的電平能被準確的讀取到單片機中。之所以能準確讀取,就是因為裝置輸出電阻比單片機IO口的輸入電阻要小。

有人可能會(huì )說(shuō),如果把裝置中的電阻換成1000MΩ,這個(gè)時(shí)候這個(gè)單片機又不能準確讀取電平了。但是一般情況下,我們不需要考慮這么極端。如果是理想的高阻態(tài),其輸入阻抗應該是無(wú)窮大,而這有點(diǎn)像超導體一樣比較特殊。一般情況下認為導線(xiàn)電阻幾乎為0,同樣也認為高阻態(tài)輸入電阻是無(wú)窮大。

總的來(lái)說(shuō),就是高阻態(tài)情況下,IO口輸入電阻很大,而不容易干擾那些輸出電阻較大、驅動(dòng)能力弱的裝置輸出到IO口上的電平。

用51單片機體驗高阻態(tài)

編寫(xiě)程序如下:

#include reg52.h

sbit TOUCH = P0^0;

sbit LED = P1^0;

void main()

{

TOUCH = 1;

while(1) {

LED = TOUCH;

}

}

電路方面,LED接在P1.0端口,仍然是采用灌電流的方式,低電平有效。P0.0什么都不要接。特別注意,這個(gè)實(shí)驗必須在P0.0什么都沒(méi)接的情況下才能進(jìn)行。很多成品開(kāi)發(fā)板上,P0.0都連接了外部上拉電阻,沒(méi)法做這個(gè)實(shí)驗,建議自己搭建面包板。

程序燒寫(xiě)好之后,理論上來(lái)說(shuō),TOUCH管腳作為高阻態(tài)輸入,電平是不確定的,因此LED的亮滅也是不定的。我在實(shí)際實(shí)驗時(shí),P0.0懸空的情況下,LED是一直點(diǎn)亮的,這可能是因為51單片機的高阻態(tài)和理想的高阻態(tài)還有一點(diǎn)差距,讀取P0.0的電平為低。

當把手指或很大的電阻放在P0.0和VCC之間,就會(huì )發(fā)現LED熄滅了,或者變暗了(變暗了說(shuō)明LED在閃爍,只是閃爍的很快所以看不出來(lái),就像交流電驅動(dòng)的白熾燈一樣)。手指的電阻很大,如果是P1.0口,或者在P0.0上外接了上拉或下拉電阻,這時(shí)通過(guò)手指很難改變其電平狀態(tài)。而由于是高阻態(tài),所以P0.0原先的低電平,通過(guò)手指從VCC傳過(guò)來(lái)的很微弱的電流就變成了高電平。

備注1:考慮到不同人的皮膚電阻不一樣,不能保證用手指接觸都能實(shí)現LED亮滅變化。如果沒(méi)有效果,可以嘗試用較大電阻(例如100kΩ)代替手指進(jìn)行實(shí)驗。

備注2:如果你通電的時(shí)候發(fā)現LED原先是熄滅的,說(shuō)明P0.0讀取到的是高電平,則應該用兩個(gè)手指分別放在P0.0和GND上,使得電平變化,LED點(diǎn)亮。當然LED不亮還有一種可能是,你的程序沒(méi)有被執行,可能是單片機最小系統電路出現了問(wèn)題,或者程序寫(xiě)錯了。

=======================================================

《單片機小白學(xué)步》系列教程(原名《單片機入門(mén)指南》)介紹

本系列教程從最基本的入門(mén)知識開(kāi)始,逐步深入介紹單片機系統設計,內容包括:
1、入門(mén)篇:?jiǎn)纹瑱C等基本概念、各種電子設計基本知識
2、思想篇:?jiǎn)纹瑱C/計算機系統設計的工程思想
3、學(xué)習篇:單片機學(xué)習過(guò)程、方法和技巧,以51單片機為例介紹,并推廣到其他單片機
4、應用篇:遵循規范的工程方法,設計單片機系統實(shí)例(計劃設計的系統有:計算器、電子表、密碼鎖、簡(jiǎn)易手機,具體看有沒(méi)有時(shí)間再確定)
5、原理篇:從模擬電路、數字電路開(kāi)始,逐步深入介紹單片機/計算機系統原理,并自行設計簡(jiǎn)易的CPU(由于個(gè)人水平有限,這部分沒(méi)有把握寫(xiě)好,具體內容視情況而定)

教程特點(diǎn)

1、技術(shù)知識點(diǎn)全面,從入門(mén)到精通

包含了各種基本知識,尤其是對單片機基本概念的介紹、為什么要用單片機等,在很多同類(lèi)書(shū)籍教程中都被忽略了。同時(shí)也包含了一些深入的知識,包括原理篇考慮對單片機的基本原理進(jìn)行介紹,有助于深入理解單片機。

本系列教程以51單片機為例進(jìn)行介紹。通過(guò)51介紹完單片機的基本知識,我會(huì )再把430進(jìn)行簡(jiǎn)要介紹,尤其是對比兩者之間的優(yōu)缺點(diǎn),讓大家很快感受到430的巨大優(yōu)勢,而學(xué)習51正好為快速了解430打下了堅實(shí)的基礎。

2、除了單片機知識,還有思想、方法、技巧的介紹

本系列教程中,介紹單片機各種模塊編程知識的主要是學(xué)習篇,而學(xué)習篇只是整個(gè)教程的一部分。在學(xué)習篇中我會(huì )貫穿各種方法技巧,如何理解一些模塊功能,怎么看時(shí)序圖,嚴格遵守工程思想進(jìn)行編程,程序發(fā)生了錯誤怎么調試等等。而在思想篇中會(huì )總體介紹很多重要的思想,為后面的學(xué)習做好準備工作。

3、知識先后順序的設計

單片機學(xué)習過(guò)程中,涉及大量的知識,而且很多知識之間相互依賴(lài),關(guān)聯(lián)很強。

本系列教程對知識的先后順序進(jìn)行比較明確的規劃,盡最大可能符合人的認知過(guò)程。但是實(shí)際規劃時(shí)發(fā)現,無(wú)論怎么調整知識的順序,總有一些知識之間相互依賴(lài),關(guān)系復雜。例如開(kāi)始講IO口的時(shí)候肯定會(huì )提到寄存器,而寄存器這個(gè)詞的理解,需要深厚的背景知識。但是這些背景知識在沒(méi)有進(jìn)行實(shí)踐的時(shí)候也很難理解。

初學(xué)者常常就會(huì )在這樣的地方感覺(jué)疑惑不解,不知所措。而每次遇到類(lèi)似這樣的知識,我會(huì )向初學(xué)者指出,應該如何對待。這個(gè)知識是應該自己去學(xué)習補充,還是等到學(xué)完原理篇再做理解,而現在又應該怎么去看待這個(gè)名詞。

另外,在整個(gè)教程的學(xué)習前,需要掌握一定的C語(yǔ)言等基礎知識,具體可參考教程第〇篇《序》中的相關(guān)說(shuō)明
http://www.paincker.com/mcu-primer-0

4、語(yǔ)言通俗易懂

本系列教程力求語(yǔ)言通俗易懂,而不會(huì )用一堆新手不懂的詞語(yǔ)去解釋另一個(gè)不懂的詞語(yǔ)。但是受限于個(gè)人語(yǔ)言表達能力,可能有些地方表述的比較繁瑣,或者不清楚,希望大家能夠幫忙指出。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>