AT89S51/52的P0口為什么要接一個上拉電阻
本文引用地址:http://www.ex-cimer.com/article/201611/320389.htm
P0口是接在兩個三極管D0和D1之間的,而P1-P3口的上部是接一個電阻的。P0口的上面那個三極管D0是在進擴展存儲器或擴展總線時使用MOVX指令時才會控制它的導(dǎo)通和截止,在不用此指令時都是截止的。在平常我們使用如:P0_1=0 P0_1=1這些語句時控制的都是下面那個三極管D1。
我們先假設(shè)P1口接一個74HC373,來看一看它的等效圖
當AT89S51的P1口上接了74HC373后就等于接了一個負載,如上圖右邊。一般來說這些數(shù)字電路的輸入阻抗都很大,都在幾百K到上兆歐姆,而P1口內(nèi)的電阻R一般在幾十K以內(nèi)。
如上圖,當我們發(fā)出指令P1=0時,三極管D導(dǎo)通,見中間的等效圖,這時P1點的電位為0。
當發(fā)出P1=1的指令后,三極管D截止,見右邊等效圖,因為Rx的阻值要比R的阻值大得多,因此P1點的電位是接近電源電壓的。即高電平。
我們再來看看P0口接負載時的圖
當P0=0時,等效圖是中間的,三極管D1導(dǎo)通,P0點的電位為0。
而當P0=1時,等效圖是右邊的,三極管D1截止,而上面的三極管D0始終是截止的,這樣P0點就等效于懸空了,它處在不穩(wěn)定狀態(tài),P0點又是RX的高阻抗輸入點,很容易受到外界和周圍電路的干擾從而直接影響到74HC373的輸出狀態(tài)。因此就得加上個電阻。如下圖
加上電阻Rc后,電路的狀態(tài)就和P1口一樣了,這個電阻Rc就是上拉電阻。
但你如果只是為了讓P0口驅(qū)動個發(fā)光管,那電路可以直接簡化成下圖那樣。S51內(nèi)部的電流最好不超過15mA,如果發(fā)光管的電壓為2.2V那電阻就是(5-2.2)÷15=0.18K,也就是180歐姆。
當P0=0時P0點為低電位,發(fā)光管亮起,流過D1的電流約為15mA。
當P0=1時,P0點為懸空,但發(fā)光管和180歐電阻都是低阻抗元件,P點電位就為高電位,再說也無任何輸出影響,因此這樣電路是可以的。
評論