小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于51單片機P0口的結(jié)構(gòu)及上拉問題

 昵稱1262491 2010-05-02

關(guān)于51單片機P0口的結(jié)構(gòu)及上拉問題

首先請看P0口的結(jié)構(gòu):

 

說明:
       1. p0作為地址數(shù)據(jù)總線時,T1和T2是一起工作的,構(gòu)成推挽結(jié)構(gòu)。高電平時,T1打開,T2截止;低電平時,T1截止,T2打開。這種情況下不用外接上拉電阻.而且,當(dāng)T1打開,T2截止,輸出高電平的時候,因為內(nèi)部電源直接通過T1輸出到p0口線上,因此驅(qū)動能力(電流)可以很大,這就是為什么教科書上說可以"驅(qū)動8個TTL負載"的原因。
       2. p0作為一般端口時,T1就永遠的截止,T2根據(jù)輸出數(shù)據(jù)0導(dǎo)通和1截止,導(dǎo)通時拉地,當(dāng)然是輸出低電平;要輸出高電平,T2就截止,p0口就沒有輸出了,(注意,這種情況就是所謂的高阻浮空狀態(tài)),如果加上外部上拉電阻,輸出就變成了高電平1。
       3. 其他端口p1,p2,p3,在內(nèi)部直接將p1口中的T1換成了上拉電阻,所以不用外接,但內(nèi)部上拉電阻太大,電流太小,有時因為電流不夠,也會再并一個上拉電阻。
       4. 在某個時刻,p0口上輸出的是作為總線的地址數(shù)據(jù)信號還是作為普通I/O口的電平信號,是依靠多路開關(guān)MUX來切換的.而MUX的切換,又是根據(jù)單片機指令來區(qū)分的.當(dāng)指令為外部存儲器/IO口讀/寫時,比如 MOVX  A,@DPTR ,MUX是切換到地址/數(shù)據(jù)總線上;而當(dāng)普通MOV傳送指令操作p0口時,MUX是切換到內(nèi)部總線上的。
      5. p0(i/o),p1,p2,p3口用于輸入時,需要寫1使IO下拉的MOS管截止,以免MOS管導(dǎo)通將輸入拉底為0,當(dāng)一直用于輸入時不用置1(先使用該IO輸出,該IO鎖存器里可能是0,再用該IO輸入則會使MOS管導(dǎo)通),將IO寫1后,該IO鎖存器不會變了,所以再一直用于輸入不用置1。p0用于地址數(shù)據(jù)線時輸入不用寫1,因為MUX沒和鎖存器相連。
PS:
Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.
因為端口1、2、3有固定的內(nèi)部上拉,所以有時候他們被稱為"準(zhǔn)雙向"口。
Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.  
端口0, 從另外一方面來說,就被 認為是"真正的"雙向,因為當(dāng)它被設(shè)置為輸入的時候是浮空(高阻態(tài))的。
 
P0口上拉電阻選擇
     如果是驅(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之間的,具體的大小還要看晶體管的集電極接的是什么負載,對于LED類負載,由于發(fā)管電流很小,因此上拉電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負載時,由于集電極電流大,因此上拉電阻的阻值最好不要大于4.7K,有時候甚至用2K的。對于PNP管,毫無疑問PNP管是低電平有效的,因此上拉電阻的阻值用100K以上的就行了,且管子的基極必須串接一個1——10K的電阻,阻值的大小要看管子集電極的負載是什么,對于LED類負載,由于發(fā)光電流很小,因此基極串接的電阻的阻值可以用20k的,但是對于管子的集電極為繼電器負載時,由于集電極電流大,因此基極電阻的阻值最好不要大于4.7K。
  對于驅(qū)動TTL集成電路,上拉電阻的阻值要用1——10K之間的,有時候電阻太大的話是拉不起來的,因此用的阻值較小。但是對于CMOS集成電路上拉電阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,實際上對于CMOS電路,上拉電阻的阻值用1M的也是可以的,但是要注意上拉電阻的阻值太大的時候,容易產(chǎn)生干擾,尤其是線路板的線條很長的時候,這種干擾更嚴重,這種情況下上拉電阻不宜過大,一般要小于100K,有時候甚至小于10K。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多