51微控制器關於上拉電阻問題,51微控制器P0口為什麼要接上拉電阻?

時間 2021-10-14 22:54:42

1樓:房志佟佳瑛

「微控制器p口接了上拉電阻靠高電平來點亮led」,是指在p口接一個上拉電阻到vcc,同時接led正極,led負極接地嗎?如果是這樣,不妥。上拉電阻在此沒有用,不需要,有害。

p口輸出低電平時,將led「短路」,不亮。同時,有一個「灌電流」自vcc經上拉電阻進入p口,做的是無用功。

p口輸出高電平時,應該接近vcc。led的正向電壓一般2~3v。由於是直接接了led的正極,又沒有限流電阻,本該會有很大的電流,但是p口的負載能力有限,輸出的高電平被拉低了,所以沒有出現過大的電流。

但是,對p口和led都是不利的。這時的上拉電阻只是起到幫助p口為led供電的作用。但是,上拉電阻一般數值較大,作用甚微。

「這時有電流流進p口麼?」---沒有,相反是「流出」,稱為「拉電流」。

一般i/o口的低電平負載能力都高於高電平負載能力,所以應儘量使用p口低電平時點亮led。這樣的電路接法是:p口接led負極,led正極經限流電阻接vcc.

如果感覺led點亮和所處理的事件有效似乎相反的話,程式中在寫埠時取反就行了,這在mcu中是易如反掌的事。

為了讓mcu「輕鬆」地工作,最好是不要用足它的負載能力,也就是外接驅動三極體等。同時也解決了反相的問題。

實踐中有由於mcu負載過重而導致邏輯紊亂的例項。

2樓:幸運的荊靖柔

按說不用上拉電阻都可以的 因為at89s52微控制器的話就是p0口是集電極開路輸出...其他三口內部都有上拉電阻.......這裡是用來作為中斷源的 .....

所以還是做好接一個上拉電阻......這裡根本就沒有要驅動的東西 所以上拉電阻一般選擇10k或者100k都可以 的

3樓:匿名使用者

一樓說的不錯,上拉電阻值可以是4.7k 10k,,不能太小弄個幾ω,

4樓:城市獵人

這裡的上拉電阻和電源vcc相連,其作用是為了提高抗干擾的能力,保證在開關沒有被按下時,p3.0的輸入電平維持在高電平。

如果開關被按下,那麼p3.0就是低電平了,這樣就不會出現誤判斷。

如果p3.0不接上拉電阻,p3.0引腳有可能受到干擾,而出現瞬間的低電平,

這樣就會發生誤判斷了。

thanks

51微控制器p0口為什麼要接上拉電阻?

5樓:

p0口和其它三個口的內部電路是不同的,如下圖

p0口是接在兩個三極體d0和d1之間的,而p1-p3口的上部是接一個電阻的。p0口的上面那個三極體d0是在進擴充套件儲存器或擴充套件匯流排時使用movx指令時才會控制它的導通和截止,在不用此指令時都是截止的。在平常我們使用如:

p0_1=0 p0_1=1這些語句時控制的都是下面那個三極體d1。

我們先假設p1口接一個74hc373,來看一看它的等效圖

當at89s51的p1口上接了74hc373後就等於接了一個負載,如上圖右邊。一般來說這些數位電路的輸入阻抗都很大,都在幾百k到上兆歐姆,而p1口內的電阻r一般在幾十k以內。

如上圖,當我們發出指令p1=0時,三極體d導通,見中間的等效圖,這時p1點的電位為0。

當發出p1=1的指令後,三極體d截止,見右邊等效圖,因為rx的阻值要比r的阻值大得多,因此p1點的電位是接近電源電壓的。即高電平。

我們再來看看p0口接負載時的圖

當p0=0時,等效圖是中間的,三極體d1導通,p0點的電位為0。

而當p0=1時,等效圖是右邊的,三極體d1截止,而上面的三極體d0始終是截止的,這樣p0點就等效於懸空了,它處在不穩定狀態,p0點又是rx的高阻抗輸入點,很容易受到外界和周圍電路的干擾從而直接影響到74hc373的輸出狀態。因此就得加上個電阻。如下圖

加上電阻rc後,電路的狀態就和p1口一樣了,這個電阻rc就是上拉電阻。

但你如果只是為了讓p0口驅動個發光管,那電路可以直接簡化成下圖那樣。s51內部的電流最好不超過15ma,如果發光管的電壓為2.2v那電阻就是(5-2.

2)÷15=0.18k,也就是180歐姆。

當p0=0時p0點為低電位,發光管亮起,流過d1的電流約為15ma。

當p0=1時,p0點為懸空,但發光管和180歐電阻都是低阻抗元件,p點電位就為高電位,再說也無任何輸出影響,因此這樣電路是可以的。

51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8004微控制器,後來隨著flash rom技術的發展,8004微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的相容機型推出,今後很長的一段時間內將佔有大量市場。

51微控制器是基礎入門的一個微控制器,還是應用最廣泛的一種。需要注意的是51系列的微控制器一般不具備自程式設計能力。

6樓:蔚藍語風

也不會怎樣額額,要看你實現什麼功能了。

如果你要驅動數碼管,或者讓二極體亮,需要的電流是5~10ma ,但是p0口輸出電流不到1個毫安,是無法點亮發光二極體的。醬紫數碼管二極體之類的就永遠亮不起來了

上拉電阻接法如上圖,如果接上上拉電阻,阻值為1k,然後數碼管下端如果是低電平,5-0=5v

5v除以1k=0.5ma,正好可以點亮燈

7樓:匿名使用者

因為p0口內部沒有上拉,其它口有,你對比書本上兩都的io結構圖就知道了。

8樓:生活如歌

因為51微控制器p0口內部是漏極開路型(作i/o口用時)。

上拉電阻一般用10k,一端接p0口中,一端接vcc,通常都用排阻方便些。

不接上拉電阻的話輸出會不正常,比如輸出高電平時得不到高電平

為什麼51微控制器需要接上拉電阻?怎麼接?

9樓:匿名使用者

只有p0口需要上拉。因為p1\p2\p3口在內部已經上拉了,不上拉,p0口不能輸出高電平。當p0口高電平有效時要外接上拉提供驅動電流。

10樓:匿名使用者

51微控制器,一般抄只有p0口才需bai要外加上拉電阻,其它du三個埠晶片內部已經設定有上zhi拉dao功能,無需外接上拉電阻。p0口作為i/o口輸出的時候時 輸出低電平為0 輸出高電平為高組態(並非5v,相當於懸空狀態)。也就是說p0 口不能真正的輸出高電平,給所接的負載提供電流,因此必須接上拉電阻(一電阻連線到vcc),由電源通過這個上拉電阻給負載提供電流。

一般上拉電阻大小可以在3.3k-10k之間都可以,由你需要的電流而定,但不能太小。

11樓:匿名使用者

只有p0口作輸出時,才加上拉電阻,一般用472(4.7k)、103(10k)排阻。

其他口不用,一般微控制器都採用灌入式電流,也就是低電平有效,不驅動功率大的元器件,因為微控制器驅動能力有限。

12樓:匿名使用者

這要用到數電的知識,如果不上拉的話,會受到外界的干擾,加一個上拉電阻,使得微控制器的i/o口處於高阻態,可以防止外界訊號的干擾!

關於51微控制器的中斷,關於51微控制器的中斷。

廣東人讀書好 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷...

51微控制器呼叫子程式問題,怎樣51微控制器呼叫兩個子程式

直接跳回主程式,再初始化。怎樣51微控制器呼叫兩個子程式 5 天蠍神經俠侶 mov r0,08h mov a,0feh loop mov p1,a lcall del rr a djnz r0,loop 使用djnz 指令。為0執行下一指令,不為0跳轉。就可以呼叫內兩個容子程式了 估計是進入到倒計時...

關於51微控制器的跑馬燈設定問題,關於51微控制器跑馬燈程式碼的修改。。。

蘇羽奇偶 自己看程式修改一下 include include 延時子程式 void delayms unsigned char ms 主程式 main 穿假鞋打街球 中斷程式void int0 void interrupt0 void int1 void interrupt2 延時程式void de...