![]() |
發(fā)布時間: 2017-11-25 22:40
正文摘要:單片機(jī)io接了上拉電阻的話,外部5v的壓降全部加載到1k電阻上,輸出5ma電流 如果沒有上拉電阻的話,外部電壓全部加載到數(shù)碼管上電流不應(yīng)該更大嗎 主要是不太理解p0口置1有無上拉電阻時,電路中的電流究竟是怎么來的 ... |
P0為什么要上拉電阻原因有: 1。 P0口片內(nèi)無上拉電阻 2。 P0為I/O口工作狀態(tài)時,上方FET被關(guān)斷,從而輸出腳浮空,因此P0用于輸出線時為開漏輸出。 3。 由于片內(nèi)無上拉電阻,上方FET又被關(guān)斷,P0輸出1時無法拉升端口電平。 |
zl2168 發(fā)表于 2017-11-26 19:18 感覺到了,現(xiàn)在就是想回頭來把不太理解的都搞明白,之前都是編個程序就完事了,電路為什么這么設(shè)計不太了解 |
angmall 發(fā)表于 2017-11-26 18:27 圖中不是接了排阻上方外部5v電源嗎,與接地P2口難道 不能行成壓差嗎,P0口懸空的時候 |
先學(xué)理論,打基礎(chǔ),否則,問題多多,事倍功半。 |
但是如果沒有這個上拉電阻的話,P0口置1時,處于懸空狀態(tài),電流怎么來的? |
angmall 發(fā)表于 2017-11-26 08:57 可不可以這樣理解,P0口置1時處于懸空狀態(tài),電流直接由外部5V電源經(jīng)過圖上交叉的節(jié)點(diǎn)和數(shù)碼管流向接地的P2口,P0口置0時接地,電流不會經(jīng)過數(shù)碼管直接流量P0內(nèi)部的地。 但是如果沒有這個上拉電阻的話,P0口置1時,沒有電阻的電流同樣是由外部電源經(jīng)過中間節(jié)點(diǎn)流向數(shù)碼管嗎 |
P0口沒有內(nèi)部上拉電阻,相當(dāng)于開漏輸出,只有接地與不接地兩種狀態(tài)。用于驅(qū)動LED等負(fù)載可以不加上拉電阻,相當(dāng)于在LED負(fù)極串聯(lián)開關(guān)。但是要驅(qū)動芯片之類時,無法輸出1,必須加上拉。 |
傳統(tǒng)的51單片機(jī)P0口的電流驅(qū)動能力較弱。如果用來驅(qū)動數(shù)碼管(多段的LED),建議增加外部的驅(qū)動器:用51單片機(jī)的P0口驅(qū)動外部驅(qū)動器,再由外部驅(qū)動器驅(qū)動數(shù)碼管。這時P0口可以不用上拉電阻。 (外部驅(qū)動器可以是三極管或集成電路) |
樓主看一下單片機(jī)的內(nèi)部結(jié)構(gòu)吧! 你看了片子內(nèi)部結(jié)構(gòu)就知道除了P0口外 其他3口都接了上拉電阻 所以 一旦P0口要用作I\O口使用 就必須接上拉電阻 對于共陰極數(shù)碼管,需要高電平才能驅(qū)動 P0為什么要上拉電阻原因有: 1。 P0口片內(nèi)無上拉電阻 2。 P0為I/O口工作狀態(tài)時,上方FET被關(guān)斷,從而輸出腳浮空,因此P0用于輸出線時為開漏輸出。 3。 由于片內(nèi)無上拉電阻,上方FET又被關(guān)斷,P0輸出1時無法拉升端口電平。 4、上拉電阻是用來解決總線驅(qū)動能力不足時提供電流的。一般說法是拉電流, 驅(qū)動能力與功耗的平衡。以上拉電阻為例,一般地說,上拉電阻越小,驅(qū)動能力越強(qiáng),但功耗越大,設(shè)計是應(yīng)注意兩者之間的均衡。 不過,加1K上拉后,電流并不是5V/1K=5mA。因?yàn)閘ed一般會有2V左右的壓降,這樣1K電阻兩端只有3V左右的電壓,流過的電流只有3mA左右! |
單片機(jī)是5V供電的話,IO口的電壓就是0V或5V。當(dāng)IO口為0V時,數(shù)碼管電流不是5毫安,計算方法為供電電壓(5V)-IO口電壓(0V)-數(shù)碼管電壓(0.7v),再除以1K |
Powered by 單片機(jī)教程網(wǎng)