|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
弱弱的問,關(guān)于51單片機的I/O口問題,請高手進來看看~ |
| 作者:wwwlhjcom 欄目:技術(shù)交流 |
在學(xué)習(xí)單片機的過程中,經(jīng)常看到對于I/O口的說明上有:P1口,對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作為輸入口。做輸入口使用的時候,因為內(nèi)部有上拉電阻的存在,某個引腳被外部信號拉低時會輸出一個電流。 疑惑如下:1:假設(shè)P1.3作為輸入,外接其他芯片的輸出; 那么是不是得執(zhí)行 SETB P1.3后,P1.3才能接收其他芯片的輸入進來的信號?假設(shè)其他芯片輸出的是高電平,那么P1.3的電平是1還是0?是輸出電流還是電流輸入?如果其他芯片輸出的是低電平(0),那么P1.3的電平和電流又是如何的呢? 2:P1.4作為輸出,輸出到其他芯片的輸入。 做輸出口的時候沒有看到教材如何說 難道得執(zhí)行指令 CLR P1.4才能作為輸出口?要是從P1.4輸出高電平到其他芯片,如何做?SETB P1.4?那這個時候P1.4不是被寫“1”了嗎?成了輸入口??? 希望好心人幫忙解答新手的疑問,非常感謝!。! |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2006/4/13 1:59:00 發(fā)布:
re: 1、將P1.3設(shè)置為1后,外面輸入信號為高,它就是高;外面輸入信號是低,它就是低。 2、作為輸出時,可輸出高和低。作為輸出時,我們假設(shè)后面的負(fù)載電阻非常大(例如認(rèn)為是開路的),那么我們輸出高,它就是高;輸出低,它就是低。 輸出高電平時,輸出電流能力弱,即跟1是完全一樣的,外面的電路可以拉低它,從而IO口看起來就是低,但內(nèi)部還是想輸出高的,只要外部一釋放,它又回到 高了。輸出低時,會有較大的電流。負(fù)載想拉高它,不容易。 |
|
| 3樓: | >>參與討論 |
| 作者: hhrfjz 于 2006/4/13 8:43:00 發(fā)布:
RE 圈圈說的好!支持! |
|
| 4樓: | >>參與討論 |
| 作者: wwwlhjcom 于 2006/4/13 13:30:00 發(fā)布:
續(xù)問第2,謝謝你,請再來看看 也就是說讀某個引腳上輸入的信號的時候(該引腳作為輸入),需要先把這個端口置1;而寫信號給某個引腳的時候(即該引腳作為輸出),不需要給這個端口置1,但是有可能想要輸出是高卻有可能是低對嗎?(是不是反映了這個端口的驅(qū)動能力?是不是驅(qū)動能力強的,就不容易被拉低?) 謝謝圈圈,希望再給個回答! |
|
| 5樓: | >>參與討論 |
| 作者: wwwlhjcom 于 2006/4/13 14:13:00 發(fā)布:
另外,作為輸入端口使用的時候,如果要先執(zhí)行置1指令, 另外,作為輸入端口使用的時候,如果要先執(zhí)行置1指令,例如 SETB P1.3,然后才能讀取輸入信號 那么 當(dāng)執(zhí)行SETB p1.3后,這個時候P1.3應(yīng)該是高電平吧?(還是低電平?) 然后外部信號輸入到P1。3,如果輸入的是高電平,那么P1。3是高電平,如果輸入的是低電平,那么在P1。3端口上是不是發(fā)生了從高----低 電平的負(fù)跳變?? 謝謝回答! |
|
| 6樓: | >>參與討論 |
| 作者: computer00 于 2006/4/13 14:52:00 發(fā)布:
它是準(zhǔn)雙向IO口,輸入和輸出是同時的。 即,任何時候都是同時可以輸入或者輸出的。 輸入時,讀到的就是IO口上的電平值。 如果你要驅(qū)動這個IO口,并使它的電平按照你的驅(qū)動器電平變化,那么當(dāng)然它的阻抗越大越好,即越容易驅(qū)動。 而輸出置1時,具有比較大的阻抗;而輸出置0時,具有比較小的阻抗,即不容易驅(qū)動。 |
|
| 7樓: | >>參與討論 |
| 作者: toso9012 于 2006/4/14 14:04:00 發(fā)布:
學(xué)習(xí)中,向 00 致敬! |
|
| 8樓: | >>參與討論 |
| 作者: qm_gao 于 2006/4/15 1:05:00 發(fā)布:
敬禮! 完了我再自己去好好體會體會 |
|
| 9樓: | >>參與討論 |
| 作者: 赤鑄 于 2006/4/15 23:48:00 發(fā)布:
雖然問題比較初級,但樓主發(fā)現(xiàn)了根本矛盾 而且表達清楚了,所以加個褲子 |
|
| 10樓: | >>參與討論 |
| 作者: 風(fēng)行樹舞 于 2006/4/25 10:42:00 發(fā)布:
PIC 用PIC單片機是要這樣的``我想51也是吧``不過51要我記得不用自己來設(shè)置啊 |
|
| 11樓: | >>參與討論 |
| 作者: mcdog 于 2006/4/26 10:53:00 發(fā)布:
我的理解 I/O是相對的,主要從你思考的角度去理解。 1?蓮碾娏鞣较蛏峡。 2。從信號上看,控制端為輸出,被控制端為輸入。 3。從讀/寫上看,讀(引腳電平信號)的時候為輸入,寫的時候為輸出(一個電平)。由于寫入‘0’后,狀態(tài)被鎖存,在讀(引腳電平信號)的時候,必須先把這個鎖存器里的‘0’清除,才能讀到真正的外部信號。 請結(jié)合引腳原理圖來看。 |
|
| 12樓: | >>參與討論 |
| 作者: binbinwb 于 2006/4/26 17:07:00 發(fā)布:
單片機是host端,其實是對寄存器的訪問 |
|
| 13樓: | >>參與討論 |
| 作者: robshine 于 2006/4/26 22:44:00 發(fā)布:
那對P0口呢? 內(nèi)部沒有上拉電阻 p0內(nèi)部沒有上拉,我在書上看到(是清華的書),p0作為數(shù)據(jù)口時可以不加上拉。前幾天我在做一個小的液晶顯示時,電路都搭好了,檢查完了,通電液晶就是不顯示,找了好半天,我在p0外接上LED(低電平驅(qū)動亮)來做檢查,當(dāng)通電后LED都亮,就沒熄滅過,估計是電平?jīng)]被拉高,復(fù)位了也是這樣,最后給接了8個電阻上去,啥都沒動,嘿,一切正常了! 這回我可嚴(yán)重懷疑書本了。那這個意思是不是說以后不管做什么,內(nèi)部沒上拉的外部都要接上? |
|
| 14樓: | >>參與討論 |
| 作者: computer00 于 2006/4/26 23:10:00 發(fā)布:
你用的是IO模式吧?用總線模式,它才不需要上拉電阻。 |
|
| 15樓: | >>參與討論 |
| 作者: jason_30 于 2006/4/28 9:10:00 發(fā)布:
i don't know 偶不懂單片機 |
|
| 16樓: | >>參與討論 |
| 作者: robshine 于 2006/4/29 18:28:00 發(fā)布:
哦,還分總線模式和IO模式...我好好看看書去... |
|
| 17樓: | >>參與討論 |
| 作者: 457878 于 2006/4/29 20:49:00 發(fā)布:
51的IO 是全自動的 記住一件事,作為輸入時,先"IO = 1";就行了。 |
|
| 18樓: | >>參與討論 |
| 作者: fbj21ic 于 2006/4/30 9:55:00 發(fā)布:
unnecessiry 取決于你在實際情況的應(yīng)用,沒那么復(fù)雜 |
|
| 19樓: | >>參與討論 |
| 作者: cf100 于 2006/4/30 15:53:00 發(fā)布:
呵呵,簡單問題復(fù)雜化 51的I/O口,輸出時,就輸出,就只有OUTPUT的功能。你讓它高就高,讓它低就低,當(dāng)成純輸出,這時考慮上拉下拉沒意義。 I/O口輸入時,就輸入,就只有INPUT的功能。其輸出電路是DISABLE的,這時外電路拉高就高,拉低就低。 |
|
| 20樓: | >>參與討論 |
| 作者: gfs0521 于 2006/4/30 17:15:00 發(fā)布:
51的IO口比較靈活, 作為輸入時,上電初始化和要讀IO口狀態(tài)之前先送1,讀取數(shù)據(jù)會可靠點 |
|
| 21樓: | >>參與討論 |
| 作者: ZHANGWR 于 2006/5/1 14:48:00 發(fā)布:
00的分析是對的 對于摟主來說,做個實驗具體加一個負(fù)載,并且改變負(fù)載的阻值試一試,就能弄明白。玩單片機的,可要養(yǎng)成勤于動手的好習(xí)慣哦。 |
|
| 22樓: | >>參與討論 |
| 作者: dengm 于 2006/5/2 9:12:00 發(fā)布:
51 的pin of PORT 1 to 3, 當(dāng)從0(低電平)變1(高電平)有短 時的2k歐姆左右的上拉! |
|
| 23樓: | >>參與討論 |
| 作者: wwwlhjcom 于 2006/7/16 16:57:00 發(fā)布:
謝謝大家,這個注冊ID密碼忘記了,最近才找到,遲到的謝謝! |
|
| 24樓: | >>參與討論 |
| 作者: 初學(xué)單片機 于 2008/1/13 19:54:01 發(fā)布:
對于P1口我還是有點疑問.高手指教.具體情況如下: 是不是每次輸入時都要先寫1啊? 如果不是,請看下面的矛盾: 假設(shè)P1.4第一次輸入的是0,我們可以讀取0,此時鎖存器的/Q端是1,P1.4口是低電平,那么下次輸入1時,讀取的不還是0嗎? |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |