標(biāo)題: 新手關(guān)于單片機(jī)P0口上拉電阻的問(wèn)題搞不懂,請(qǐng)網(wǎng)友們給小弟指導(dǎo)指導(dǎo),謝謝大家了! [打印本頁(yè)]

作者: tanghao8887    時(shí)間: 2018-10-19 17:57
標(biāo)題: 新手關(guān)于單片機(jī)P0口上拉電阻的問(wèn)題搞不懂,請(qǐng)網(wǎng)友們給小弟指導(dǎo)指導(dǎo),謝謝大家了!
單片機(jī)的P0口沒(méi)有上拉電阻,默認(rèn)為高電平,那么我把數(shù)碼管的8個(gè)段全部接在加了10k上拉電阻的P0口,這時(shí),按理說(shuō)數(shù)碼管的8個(gè)段全部都接入正級(jí)了,好,我就用38譯碼器控制它的位(負(fù)級(jí)),有四位,那么,按理來(lái)說(shuō),我只要使數(shù)碼管的某一位為負(fù)級(jí),那么,這一位上的8個(gè)段都要亮啊,無(wú)論輸入什么樣的段碼,都會(huì)亮8,因?yàn)閜0口的上拉電阻是直接給全部段位供電的,我在想,P0口應(yīng)該沒(méi)有能力輸出高電平才對(duì)啊,P0口不是只能輸出低電平嗎?這只是我想象的,但是,為何在實(shí)際動(dòng)態(tài)顯示中,這個(gè)P0口還是會(huì)控制每一個(gè)斷碼輸出相應(yīng)的數(shù)字,這個(gè)P0口不是沒(méi)有輸出高電平的能力嗎?他的高電平全是靠上拉給的,他為什么還能控制相應(yīng)的段碼按照設(shè)置的方法點(diǎn)亮呢?不應(yīng)該是全亮么?所以我想不通這個(gè)問(wèn)題,我來(lái)問(wèn)問(wèn)大家,小弟新人,請(qǐng)大神們不要笑話,指導(dǎo)我一下,謝謝!
作者: 木木de    時(shí)間: 2018-10-19 18:24
1.不是所有的單片機(jī)P0都是沒(méi)有內(nèi)部上拉的(STC的很多51單片機(jī)就有內(nèi)部上拉)
2.你控制38譯碼器去位選?(你的數(shù)碼管是共陰還是共陽(yáng)?)這個(gè)決定了你如何去控制。
3.傳統(tǒng)51內(nèi)部沒(méi)有上拉,你外接上拉10K,就可以輸出高電平和低電平了。10K電阻很大,驅(qū)動(dòng)能力弱。需要輸出大一點(diǎn)的電流的話,上拉電阻需要減小。

作者: tanghao8887    時(shí)間: 2018-10-19 18:36
905377346 發(fā)表于 2018-10-19 18:24
1.不是所有的單片機(jī)P0都是沒(méi)有內(nèi)部上拉的(STC的很多51單片機(jī)就有內(nèi)部上拉)
2.你控制38譯碼器去位選?( ...

是共陽(yáng)極數(shù)碼管!
作者: sxhwdz    時(shí)間: 2018-10-19 19:53
P0口內(nèi)部不能拉高,當(dāng)P0口輸出為高時(shí),靠上拉電阻給數(shù)碼管陽(yáng)極供電,相應(yīng)發(fā)光管亮。當(dāng)P0口輸出為低時(shí),拉高電阻原先流往數(shù)碼管陽(yáng)極的電流就被P0口拉低旁流,數(shù)碼管相應(yīng)段就滅了。
作者: mengzhixinheng    時(shí)間: 2018-10-22 10:26
百度OD門或者OC門就知道了。
作者: goinwin    時(shí)間: 2018-10-24 02:14

“單片機(jī)的P0口沒(méi)有上拉電阻,默認(rèn)為高電平,那么我把數(shù)碼管的8個(gè)段全部接在加了10k上拉電阻的P0口”——P0口通過(guò)10K電阻的高電平?jīng)]有驅(qū)動(dòng)能力的,如果工作電壓位5V,經(jīng)過(guò)10K上拉電阻只能輸出最大0.5毫安的電流能力,如果加上負(fù)載的內(nèi)阻其輸出電流就更小了!但是電平還是能高電平的!如果你“我在想,P0口應(yīng)該沒(méi)有能力輸出高電平才對(duì)啊,P0口不是只能輸出低電平嗎?”那么我們還需要這P0口干嘛呢??當(dāng)P0口低電平時(shí)可以認(rèn)為相當(dāng)于內(nèi)置三極管導(dǎo)通了這樣P0口就有一定的輸出驅(qū)動(dòng)能力了!但是由于工藝以及其他原因,仍然會(huì)限制在幾毫安到十幾毫安!
其實(shí)你用了共陽(yáng)數(shù)碼管,把段位接到P0口那就不需要10K的上拉電阻了!你“就用38譯碼器控制它的位”應(yīng)該就是數(shù)碼管的公共陽(yáng)極位,此時(shí)位應(yīng)該是高電平!那么高電平通過(guò)數(shù)碼管內(nèi)部分別接入發(fā)光二極管到對(duì)應(yīng)的P0口段位,其實(shí)也就起到上拉電阻的作用了!換句話說(shuō)就是P0口內(nèi)的三極管直接接到了數(shù)碼管的段位負(fù)極,只要在38譯碼器控制的位保持高電平,那么P0口某個(gè)引腳控制為低電平時(shí)對(duì)應(yīng)的數(shù)碼管段位就被點(diǎn)亮了!因?yàn)橄喈?dāng)于內(nèi)置三極管導(dǎo)通就把數(shù)碼管段位上的發(fā)光管接地了!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1