微控制器為什麼P1口輸出低電平小燈才亮

時間 2021-09-10 12:09:58

1樓:0427付強

這與實際的電路連線有關,能夠構成led的電流回路,就能夠點亮led。

下面這個電路圖,就是低電平點亮的電路圖:

當i/o口輸出高電平時,led兩端的電位相同,因此電壓為0v,不能構成電流回路,所以led不亮。當i/o口輸出低電平時,led左側電位為0,而右側則在r1的上拉作用下電位提高,因此led兩端有正向電壓,可以點亮發光。

mcs-51微控制器的i/o口具有比較強的灌電流能力,但拉電流能力卻很弱,所以並不適合用輸出高電平的方法點亮led,大多采用這種負邏輯的驅動方法。

2樓:匿名使用者

你應該好好看看書咯…… 排阻連線到微控制器的口上只是增加微控制器埠電平的穩定性,也就是將埠上拉!其實p1口可以不接排阻的,因為內部已經有上拉電阻了,而p0是必須要接的,因為它是漏極開路!

你說的那種情況會亮!

但是你應該養成這種習慣,這就是常說的上拉,你要是做電機控制之類的,你就更加清楚,會有干擾,電機會抖動,但是加了上拉電阻,訊號就能相對穩定!但是你要就是接二極體那肯定是沒問題了,因為那點干擾你根本看不出來!

3樓:匿名使用者

因為發光二極體正極接的是vcc,負極是微控制器的i/o口,發光二極體要有一個電勢差它才會亮,如果i/o口是高電平的話發光二極體兩端沒有電勢差,所以不會亮。只有當發光二極體的負極是低電平是它才會有電勢差,才會工作。

樓主的第二個問題也是正確的,只要形成一個足夠的電勢差,二極體就能工作,不過電池的話就要形成閉合迴路才行。

微控制器p1口的8個埠p1.0~p1.7分別接led燈l1~l8,程式設計使8盞燈按照下列要求點亮。 70

4樓:雨田丫

#include

#define uchar unsigned char#define uint unsigned intsbit k1=p3^0;

void delay(uint i)

void main()}}

sw1接通第1種效果;斷開為第2種效果。

5樓:匿名使用者

這個簡單

unsigned char code table[0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff];

main()}

為什麼微控制器輸出低電平時燈會亮,微控制器的第一個實驗為什麼輸入高電平的時候Led燈不亮,而要輸入低電平才會亮啊

無人機 燈亮是因為兩側有電壓差,led是一般0.7v左右,是有高電平減低電平組成的電壓差 1共陽極接法 當led陽極接電路板上的高電位,陰極接微控制器引腳,微控制器引腳輸出高電平,沒有電壓差,燈不亮 微控制器引腳輸出低電平,有電壓差,燈亮。你所說的情況 2.共陰極接法 當led陰極接電路板上的低電位...

微控制器p0口預設高電平,預設p0口都是1嗎?按鍵按下p0口變成

微控制器復位後,所有io口都為 1 所以p0口的值當然是ffh,都為高電平。至於按鍵按下p0口是否變成0,要看原理圖。 苗涵瑤貳聖 因為傳統的51微控制器的p0口是漏極開路,內部無上拉電阻,所以po口預設的是高阻態!一般p0口做普通io口用時要加上拉電阻,上拉電阻的大小1k 10k不等 微控制器p0...

如何給微控制器IO口輸入高電平,微控制器 為什麼IO口輸入的時候要置成高電平後才能讀取正確 ?

方法 1.p1口做輸入輸出口前要先寫值,1為輸入,0為輸出,且要接上拉電阻,不如換到其他口。2.if countsingle 1 改為if countsingle 1 3.最好先讀取埠值再判斷。 最基本的51微控制器的io要讀之前一定得先寫 1 否則讀的值是隨機的。if countsingle 1 ...