在採用微控制器的i/o口作為輸入口或輸出口時需要考慮哪些因素?
1樓:墨汁諾
p0口在作bai為io口的時候。
要接上拉電阻;du
四個io口作輸zhi入口對其進行讀操作時要先dao寫1。
電壓的大回小(包括它能感知的最小答電壓作為高電平),電流的驅動能力例如51的p0口若作為io口使用就要加上拉電阻,不然的話高電平是高阻態的形式。還有就是io口預設是不是作為io口,有的io口有第二功能的。
2樓:網友
輸入:過壓。
輸出:短路/過載。
51微控制器的準雙向i/o口在使用前必須進行寫1操作,但上電時,微控制器預設為高電平,即還需要進行寫1操作不?
3樓:網友
51微控制器的準雙向i/o口在使用前並不一定要進行寫1操作,從來沒見過有這方面的硬性規定。根據應用的實際需要,寫0也是完全可以的。但上電覆位時,微控制器確實將io置1。
4樓:做而論道
51微控制器的準雙向i/o口在使用前必須進行寫1操作,--只是在《讀》io口之前,需要寫1。
但上電時,微控制器預設為高電平,即還需要進行寫1操作不?
不用了。只是當做輸入介面來用,才有寫 1 這個說法。
寫過一次 1 (或復位後自動置 1),就可以正確輸入資料了。
但是,如果寫了 0,那麼,接著輸入的資料,將有可能是不準確的。
所以,應該強調的是:《千萬不要寫 0。》!
寫 1,完全沒有必要這麼重視。
因為開機時,自動就寫了1。
我想問問關於51微控制器i/o口的問題!!
5樓:做而論道
51微控制器置1是輸入狀態,-也是輸出狀態,但是也可以輸入。
是呈現高阻態的,就是i/o口內部結構的開關是斷開的,不接地,--p0 口,確實是這樣的。
但還接乙個上拉電阻吧!(都帶上拉電阻)。
p0 口沒有上拉電阻。
p1p2p3,都有上拉電阻。
但是電阻很大,幾百k,上拉作用有限。
那我接低電平的外圍器件不就會輸出電流了嗎?
p1p2p3,都有輸出電流。
很小的電流。
但這是輸入狀態啊!不矛盾嗎?
誰說是輸入狀態?他是瞎說。
此時是輸出1。
但是引腳內部的上拉能力有限,因此,這時就可以當輸入使用。
而且微控制器的io口的輸出電壓也是5v啊,就是通過這個原理輸出的嗎?
5v?誰說輸出5v了?
引腳上拉能力有限,難以保證5v。
你外部接地了,就是0v。這就是輸入低電平。
那同理,我置0,是輸出狀態吧!
置。一、清零,都是輸出。
只是,置一後,可以輸入。
內部開關閉合,接地,電平拉低,上拉電阻也接地了,拉低了,上拉電阻不對外輸出。
但怎麼輸出1呢?不是接地了嗎?怎麼輸出1啊?
《我置0》,你就是輸出0,怎麼會想到輸出1?
輸出狀態才能輸出1和0嗎?
置。一、清零,都是輸出。
輸入狀態不能輸出嗎?
輸入狀態,隱含在輸出1的時候。
6樓:5嶽之首
你是不是學過別的微控制器。。或者學過a51。。
51微控制器io口置1就輸出1,置0就輸出0。。至於讀,你的變數寫在左邊,比如。
x = p1;
這種情況下編譯器解析為讀p1口。。。
確實有些微控制器存在io口控制位,控制io口的方向,即輸入還是輸出,但是51沒有。。編譯器是靠io口暫存器在等號哪一邊決定的輸入還是輸出。
如果在a51的情況下,要加一句。
mov p1,0xff
再讀引腳。mov r0,p1
據說這叫準雙向口 要先寫1才能讀。。。我對硬體也不太懂。。
c語言已經把這個給你省略了,編譯的時候是自動實現的。
7樓:網友
你在**看到的,「」51微控制器置1是輸入狀態「」,這麼說肯定不對的,首先51微控制器的io口是準雙向的。 當作輸入引腳用時,準雙向口讀外部資料,要麼先鎖存為 『1』,要麼在外部接個上拉,才可讀到外部正確的狀態,鎖存為 『1:這只是代表你讀外部資料時,應先置1,並不是你說的置1是輸入。
你理解反了。
8樓:網友
51微控制器io口是雙向的既可以做輸入也可以做輸出,1是指高電平,0是低電平,你置1或0時並不是說如開關斷閉,只是微控制器io口輸出高或低電平而已。
9樓:網友
輸入狀態也可以輸出的,不過這個輸出是電源單純的供電,而不是微控制器輸出的訊號,並且和電路結構有關而不是受微控制器控制,比如有的微控制器reset復位後開發板上的led預設狀態都是亮的,就是因為即使沒有輸出,但是由於上拉或者下拉使led亮了,這個相當於電源直接給led供電,而不是微控制器輸出。
微控制器i\o口使用----急急急急-----**等,有追加
10樓:做而論道
微控制器用p1口作為輸入、輸出口模擬控制轉彎燈顯示;
分別連線撥動開關sw1、sw2;
分別連線led1、led2、led3、led4指示燈。
sw1作為左轉彎開關,sw2作為右轉彎開關,led1、led2作為左轉彎燈,led3、led4作為右轉彎燈。
實現只有sw1為高電平時led1、led2閃爍,閃爍頻率為1s,只有sw2為高電平時led3、led4閃爍,閃爍頻率為1s,sw1、sw2同時為高電平時,led全亮,sw1、sw2同時為底電平時,led全滅。
org 00h
mov p1, #0ffh ;關閉顯示、準備輸入。
begin:
mov a, p1 ;取。
anl a, #03h ;只有低2位是按鍵資料。
rl a ;乘以2
mov dptr, #_jtab ;散轉表起始位址。
jmp @a+dptr ;散轉指令, 跳到表中。
jtab: ;散轉表。
ajmp prg0 ;表中都是2位元組轉移指令。
ajmp prg1 ;共4條。
ajmp prg2
ajmp prg3 ;散轉表結束。
prg0: ;k1k2=00轉到此處。
mov p1, #3fh ;輸出全1, 發光二極體全滅。
ajmp _begin
prg1: ;k1k2=01轉到此處。
mov p1, #33h ;左轉彎, l1、l2亮。
acall delay ;延時秒。
mov p1, #0ffh ;輸出全1, 發光二極體全滅。
acall delay ;延時秒。
ajmp _begin
prg2: ;k1k2=10轉到此處。
mov p1, #0fh ;右轉彎, l3、l4亮。
acall delay ;延時秒。
mov p1, #3fh ;輸出全1, 發光二極體全滅。
acall delay ;延時秒。
ajmp _begin
prg3: ;k1k2=11轉到此處。
mov p1, #03h ;輸出全0, 發光二極體全亮。
ajmp _begin
delay: ;延時秒子程式。
mov r5, #5 ;延時時間可以重新調整。
dl1:mov r6, #
dl2:mov r7, #
dl3:djnz r7, dl3
djnz r6, dl2
djnz r5, dl1
retend
微控制器對外輸入/輸出引腳(i/o)共有()根。
11樓:小董懂點科技
單敗檔片機對外輸行搭入/輸出引腳檔枯拿(i/o)共有()根。
正確答案:32
51微控制器輸入輸出問題,本人初學者,不懂,還望大家多多指教
這位同copy學,很明顯可以看得出你是初學者。其實微控制器跟c語言在電腦上程式設計是差不多的。你看你只是一開始時給p2賦了個初值,到了後面你即沒有語句重新給p2賦值,又沒有中斷程式來給p2賦值,你的p2值又怎麼會有改變呢?即使你外部電路接好了,但是,你的程式並沒有告訴微控制器要去檢測這些引腳的訊號。...
微控制器引腳輸入輸出問題和引腳屬性
51微控制器,所有io口都可以作為輸入和輸出,但不是 同時 作為輸入時,要先向其埠寫1 然後再讀取 如程式中設定p0 0xf0,然後在外部將p0 7接地,也就是置為零,此時讀取p0的話,得到p0 0x70 即最高位確實是0 但p0口內部沒有上拉電阻的,如果io口外部不經電阻接電源的話,雖然你置1了,...
微控制器高阻態問題,關於微控制器i o口的高阻態問題
呵呵,這個問題真的有點意思啊,還真沒碰到過能輸出高阻的微控制器呢,呵呵。估計樓主是搞錯意思,gps的高頻訊號是會對系統造成干擾的 天線 或者 布板的走線 地線 等等 這邊設定成高阻的意思估計是 原來是 輸出的io口 在輸出完畢後為了保證這個io不產生多餘的 高頻干擾 將它再設定成 輸入 並選中內部上...