您好!歡迎光臨烜芯微科技品牌官網(wǎng)!

深圳市烜芯微科技有限公司

ShenZhen XuanXinWei Technoligy Co.,Ltd
二極管、三極管、MOS管、橋堆

全國(guó)服務(wù)熱線:18923864027

  • 熱門(mén)關(guān)鍵詞:
  • 橋堆
  • 場(chǎng)效應(yīng)管
  • 三極管
  • 二極管
  • 單片機(jī)IO口結(jié)構(gòu)與上拉電阻
    • 發(fā)布時(shí)間:2020-07-28 17:50:49
    • 來(lái)源:
    • 閱讀次數(shù):
    單片機(jī)IO口結(jié)構(gòu)與上拉電阻
    MCS-51單片機(jī)IO口詳解
    MCS-51有4組8位I/O口:P0、P1、P2和P3口,P1、P2和P3為準(zhǔn)雙向口,P0口則為雙向三態(tài)輸入輸出口,下面我們分別介紹這幾個(gè)口線。
    一、P0口和P2口
    圖1和圖2為P0口和P2口其中一位的電路圖。由圖可見(jiàn),電路中包含一個(gè)數(shù)據(jù)輸出鎖存器(D觸發(fā)器)和兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器,另外還有一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)(T1和T2)和控制電路。這兩組口線用來(lái)作為CPU與外部數(shù)據(jù)存儲(chǔ)器、外部程序存儲(chǔ)器和I/O擴(kuò)展口,而不能象P1、P3直接用作輸出口。它們一起可以作為外部地址總線,P0口身兼兩職,既可作為地址總線,也可作為數(shù)據(jù)總線。
    單片機(jī)
    圖1 單片機(jī)P0口內(nèi)部一位結(jié)構(gòu)圖
    單片機(jī)
    圖2 單片機(jī)P0口內(nèi)部一位結(jié)構(gòu)圖
    P2口作為外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器的地址總線的高8位輸出口AB8-AB15,P0口由ALE選通作為地址總線的低8位輸出口AB0-AB7。外部的程序存儲(chǔ)器由PSEN信號(hào)選通,數(shù)據(jù)存儲(chǔ)器則由WR和RD讀寫(xiě)信號(hào)選通,因?yàn)?^16=64k,所以MCS-51最大可外接64kB的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。
    二、P1口
    圖3為P1口其中一位的電路圖,P1口為8位準(zhǔn)雙向口,每一位均可單獨(dú)定義為輸入或輸出口,當(dāng)作為輸入口時(shí),1寫(xiě)入鎖存器,Q(非)=0,T2截止,內(nèi)上拉電阻將電位拉至"1",此時(shí)該口輸出為1,當(dāng)0寫(xiě)入鎖存器,Q(非)=1,T2導(dǎo)通,輸出則為0。
    單片機(jī)
    圖3 單片機(jī)P2口內(nèi)部一位結(jié)構(gòu)圖
    作為輸入口時(shí),鎖存器置1,Q(非)=0,T2截止,此時(shí)該位既可以把外部電路拉成低電平,也可由內(nèi)部上拉電阻拉成高電平,正因?yàn)檫@個(gè)原因,所以P1口常稱為準(zhǔn)雙向口。
    需要說(shuō)明的是,作為輸入口使用時(shí),有兩種情況:
    1.首先是讀鎖存器的內(nèi)容,進(jìn)行處理后再寫(xiě)到鎖存器中,這種操作即讀—修改—寫(xiě)操作,象JBC(邏輯判斷)、CPL(取反)、INC(遞增)、DEC(遞減)、ANL(與邏輯)和ORL(邏輯或)指令均屬于這類操作。
    2.讀P1口線狀態(tài)時(shí),打開(kāi)三態(tài)門(mén)G2,將外部狀態(tài)讀入CPU。
    三、P3口
    P3口的電路如圖4所示,P3口為準(zhǔn)雙向口,為適應(yīng)引腳的第二功能的需要,增加了第二功能控制邏輯,在真正的應(yīng)用電路中,第二功能顯得更為重要。由于第二功能信號(hào)有輸入輸出兩種情況,我們分別加以說(shuō)明。
    單片機(jī)
    圖4 單片機(jī)P0口內(nèi)部一位結(jié)構(gòu)圖
    P3口的輸入輸出及P3口鎖存器、中斷、定時(shí)/計(jì)數(shù)器、串行口和特殊功能寄存器有關(guān),P3口的第一功能和P1口一樣可作為輸入輸出端口,同樣具有字節(jié)操作和位操作兩種方式,在位操作模式下,每一位均可定義為輸入或輸出。
    我們著重討論P(yáng)3口的第二功能,P3口的第二功能各管腳定義如下:
    ·P3.0 串行輸入口(RXD)
    ·P3.1 串行輸出口(TXD)
    ·P3.2 外中斷0(INT0)
    ·P3.3 外中斷1(INT1)
    ·P3.4 定時(shí)/計(jì)數(shù)器0的外部輸入口(T0)
    ·P3.5 定時(shí)/計(jì)數(shù)器1的外部輸入口(T1)
    ·P3.6 外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通(WR)
    ·P3.7 外部數(shù)據(jù)存儲(chǔ)器讀選通(RD)
    對(duì)于第二功能為輸出引腳,當(dāng)作I/O口使用時(shí),第二功能信號(hào)線應(yīng)保持高電平,與非門(mén)開(kāi)通,以維持從鎖存器到輸出口數(shù)據(jù)輸出通路暢通無(wú)阻。而當(dāng)作第二功能口線使用時(shí),該位的鎖存器置高電平,使與非門(mén)對(duì)第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。對(duì)于第二功能為輸入的信號(hào)引腳,在口線上的輸入通路增設(shè)了一個(gè)緩沖器,輸入的第二功能信號(hào)即從這個(gè)緩沖器的輸出端取得。而作為I/O口線輸入端時(shí),取自三態(tài)緩沖器的輸出端。這樣,不管是作為輸入口使用還是第二功能信號(hào)輸入,輸出電路中的鎖存器輸出和第二功能輸出信號(hào)線均應(yīng)置“1”。
    四、IO口工作原理
    1. P0作為地址數(shù)據(jù)總線時(shí),T1和T2是一起工作的,構(gòu)成推挽結(jié)構(gòu)。高電平時(shí),T1打開(kāi),T2截止;低電平時(shí),T1截止,T2打開(kāi)。這種情況下不用外接上拉電阻.而且,當(dāng)T1打開(kāi),T2截止,輸出高電平的時(shí)候,因?yàn)閮?nèi)部電源直接通過(guò)T1輸出到P0口線上,因此驅(qū)動(dòng)能力(電流)可以很大,這就是為什么教科書(shū)上說(shuō)可以"驅(qū)動(dòng)8個(gè)TTL負(fù)載"的原因。
    2. P0作為一般端口時(shí),T1就永遠(yuǎn)的截止,T2根據(jù)輸出數(shù)據(jù)0導(dǎo)通和1截止,導(dǎo)通時(shí)拉地,當(dāng)然是輸出低電平;要輸出高電平,T2就截止,P0口就沒(méi)有輸出了,(注意,這種情況就是所謂的高阻浮空狀態(tài)),如果加上外部上拉電阻,輸出就變成了高電平1。
    3. 其他端口P1、P2和P3,在內(nèi)部直接將P1口中的T1換成了上拉電阻,所以不用外接,但內(nèi)部上拉電阻太大,電流太小,有時(shí)因?yàn)殡娏鞑粔?,也?huì)再并一個(gè)上拉電阻。
    4. 在某個(gè)時(shí)刻,P0口上輸出的是作為總線的地址數(shù)據(jù)信號(hào)還是作為普通I/O口的電平信號(hào),是依靠多路開(kāi)關(guān)MUX來(lái)切換的。而MUX的切換,又是根據(jù)單片機(jī)指令來(lái)區(qū)分的。當(dāng)指令為外部存儲(chǔ)器/IO口讀/寫(xiě)時(shí),比如 MOVX A,@DPTR ,MUX是切換到地址/數(shù)據(jù)總線上;而當(dāng)普通MOV傳送指令操作P0口時(shí),MUX是切換到內(nèi)部總線上的。
    5. P0、P1、P2、P3口用于輸入時(shí),需要寫(xiě)1使IO下拉的MOS管截止,以免MOS管導(dǎo)通將輸入拉底為0,當(dāng)一直用于輸入時(shí)不用置1(先使用該IO輸出,該IO鎖存器里可能是0,再用該IO輸入則會(huì)使MOS管導(dǎo)通),將IO寫(xiě)1后,該IO鎖存器不會(huì)變了,所以再一直用于輸入不用置1。p0用于地址數(shù)據(jù)線時(shí)輸入不用寫(xiě)1,因?yàn)镸UX沒(méi)和鎖存器相連。
    PS:
    Because Ports 1, 2, and 3 have fixed internal pullups, they are sometimes called “quasi- bidirectional” ports.
    因?yàn)槎丝?、2、3有固定的內(nèi)部上拉,所以有時(shí)候他們被稱為"準(zhǔn)雙向"口。
    Port 0, on the other hand, is considered “true” bidirectional, because when configured as an input it floats.
    端口0, 從另外一方面來(lái)說(shuō),就被 認(rèn)為是"真正的"雙向,因?yàn)楫?dāng)它被設(shè)置為輸入的時(shí)候是浮空(高阻態(tài))的。
    五、P0口上拉電阻選擇
    如果是驅(qū)動(dòng)led,那么用1K左右的就行了。如果希望亮度大一些,電阻可減小,最小不要小于200歐姆,否則電流太大;如果希望亮度小一些,電阻可增大,增加到多少呢,主要看亮度情況,以亮度合適為準(zhǔn),一般來(lái)說(shuō)超過(guò)3K以上時(shí),亮度就很弱了,但是對(duì)于超高亮度的LED,有時(shí)候電阻為10K時(shí)覺(jué)得亮度還能夠用。我通常就用1k的。
    對(duì)于驅(qū)動(dòng)光耦合器,如果是高電位有效,即耦合器輸入端接端口和地之間,那么和LED的情況是一樣的;如果是低電位有效,即耦合器輸入端接端口和VCC之間,那么除了要串接一個(gè)1——4.7k之間的電阻以外,同時(shí)上拉電阻的阻值就可以用的特別大,用100k~500K之間的都行,當(dāng)然用10K的也可以,但是考慮到省電問(wèn)題,沒(méi)有必要用那么小的。
    對(duì)于驅(qū)動(dòng)晶體管,又分為PNP和NPN管兩種情況:對(duì)于NPN,毫無(wú)疑問(wèn)NPN管是高電平有效的,因此上拉電阻的阻值用2K~20K之間的,具體的大小還要看晶體管的集電極接的是什么負(fù)載,對(duì)于LED類負(fù)載,由于發(fā)管電流很小,因此上拉電阻的阻值可以用20k的,但是對(duì)于管子的集電極為繼電器負(fù)載時(shí),由于集電極電流大,因此上拉電阻的阻值最好不要大于4.7K,有時(shí)候甚至用2K的。對(duì)于PNP管,毫無(wú)疑問(wèn)PNP管是低電平有效的,因此上拉電阻的阻值用100K以上的就行了,且管子的基極必須串接一個(gè)1~10K的電阻,阻值的大小要看管子集電極的負(fù)載是什么,對(duì)于LED類負(fù)載,由于發(fā)光電流很小,因此基極串接的電阻的阻值可以用20k的,但是對(duì)于管子的集電極為繼電器負(fù)載時(shí),由于集電極電流大,因此基極電阻的阻值最好不要大于4.7K。
    對(duì)于驅(qū)動(dòng)TTL集成電路,上拉電阻的阻值要用1~10K之間的,有時(shí)候電阻太大的話是拉不起來(lái)的,因此用的阻值較小。但是對(duì)于CMOS集成電路上拉電阻的阻值就可以用的很大,一般不小于20K,我通常用100K的,實(shí)際上對(duì)于CMOS電路,上拉電阻的阻值用1M的也是可以的,但是要注意上拉電阻的阻值太大的時(shí)候,容易產(chǎn)生干擾,尤其是線路板的線條很長(zhǎng)的時(shí)候,這種干擾更嚴(yán)重,這種情況下上拉電阻不宜過(guò)大,一般要小于100K,有時(shí)候甚至小于10K。
    烜芯微專業(yè)制造二極管,三極管,MOS管,橋堆等20年,工廠直銷省20%,4000家電路電器生產(chǎn)企業(yè)選用,專業(yè)的工程師幫您穩(wěn)定好每一批產(chǎn)品,如果您有遇到什么需要幫助解決的,可以點(diǎn)擊右邊的工程師,或者點(diǎn)擊銷售經(jīng)理給您精準(zhǔn)的報(bào)價(jià)以及產(chǎn)品介紹
    相關(guān)閱讀