由于P0口內(nèi)部沒有上拉電阻,是開漏的,不管它的驅(qū)動能力多大,相當(dāng)于它是沒有電源的,需要外部的電路提供。絕大多數(shù)情況下,P0口是必須加上拉電阻的。
01
一般51單片機(jī)的P0口在作為地址/數(shù)據(jù)復(fù)用時不接上拉電阻。
02
作為一般的I/O口使用時,由于內(nèi)部沒有上拉電阻,故要接上上拉電阻。
03
當(dāng)P0口用來驅(qū)動PNP管子的時候,就不需要上拉電阻,因為此時的低電平有效。
04
當(dāng)P0口用來驅(qū)動NPN管子的時候,就需要上拉電阻,因為此時只有當(dāng)P0為1的時候,才能夠使后級端導(dǎo)通。簡單一點(diǎn)說就是它要驅(qū)動LCD顯示屏顯示就必須要有電源驅(qū)動,否則亮不了,而恰好P0口沒有電源,所以就要外接電源,接上電阻是起到限流的作用;如果接P1、P2、P3端口就不用外接電源和電阻了。
05
51單片機(jī)的P0口用作數(shù)據(jù)和地址總線時不必加上拉電阻。
有些IC的驅(qū)動能力并不強(qiáng),如果P0口作為輸入而加了不必要的上拉電阻,有可能驅(qū)動IC無法將其拉回到低電平,從而使輸入失敗。
如果是驅(qū)動LED,那么用1K左右的就行了。如果希望亮度大一些,電阻可減小,最小不要小于200歐姆,否則電流太大;如果希望亮度小一些,電阻可增大,增加到多少主要看亮度情況,以亮度合適為準(zhǔn),一般來說超過3K以上時,亮度就很弱了。但是對于超高亮度的LED,有時候電阻為10K時覺得亮度還能夠用,通常就用1k的。
對于驅(qū)動光耦合器,如果是高電平有效,即耦合器輸入端接端口和地之間,那么和LED的情況是一樣的;如果是低電平有效,即耦合器輸入端接端口和VCC之間,那么除了要串接一個1—4.7k之間的電阻以外,上拉電阻的阻值就可以用的特別大,用100k—500K之間的都行,當(dāng)然用10K的也可以,但是考慮到省電問題,沒有必要用那么小的。
對于驅(qū)動晶體管,又分為PNP和NPN管兩種情況:
對于NPN管,毫無疑問NPN管是高電平有效的,因此上拉電阻的阻值用2K—20K之間的,具體的大小還要看晶體管的集電極接的是什么負(fù)載。對于LED類負(fù)載,由于發(fā)管電流很小,因此上拉電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負(fù)載時,由于集電極電流大,因此上拉電阻的阻值最好不要大于4.7K,有時候甚至用2K的。
對于PNP管,毫無疑問PNP管是低電平有效的,因此上拉電阻的阻值用100K以上的就行了,且管子的基極必須串接一個1—10K的電阻,阻值的大小要看管子集電極的負(fù)載是什么。對于LED類負(fù)載,由于發(fā)光電流很小,因此基極串接的電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負(fù)載時,由于集電極電流大,因此基極電阻的阻值最好不要大于4.7K。
對于驅(qū)動TTL集成電路,上拉電阻的阻值要用1—10K之間的,有時候電阻太大的話是拉不起來的,因此用的阻值較小。但是對于CMOS集成電路,上拉電阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,實際上對于CMOS電路,上拉電阻的阻值用1M也是可以的,但是要注意上拉電阻的阻值太大的時候,容易產(chǎn)生干擾,尤其是線路板的線條很長的時候,這種干擾更嚴(yán)重,這種情況下上拉電阻不宜過大,一般要小于100K,有時候甚至小于10K。
根據(jù)以上分析,上拉電阻的阻值的選取是有很多講究的,不能亂用。
-
單片機(jī)
+關(guān)注
關(guān)注
6039文章
44575瀏覽量
636382 -
上拉電阻
+關(guān)注
關(guān)注
5文章
360瀏覽量
30639
原文標(biāo)題:單片機(jī) | P0口什么時候使用上拉電阻?
文章出處:【微信號:Mouser-Community,微信公眾號:貿(mào)澤電子設(shè)計圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論