1樓:華錄_起點
51微控制器的p1/p2口內部有上拉,你直接輸入高電平,應該可以識別到。
如果程式判斷不出,你可以測試一下埠電壓,如果電壓過低導致微控制器無法識別,那就需要接外部上拉了,保證輸入高電平的時候能夠被識別出來。
2樓:灬隨緣灬
當io口出現高電平的時候就可以讀取了,高於3.6伏就是高電平了。程式中可以使用if判斷當pi或者p2等於ffh的時候執行某種操作。
3樓:
微控制器引腳作為輸入和輸出是由程式來決定的,與外圍電路和埠狀態無關。
比如你想做輸出,就直接給p1口賦值。p1 = 0xfe; mov p1,#0feh
如果你想讓p1口做輸入,直接讀取p1口就行了 a=p1; mov a,p1
不用考慮io口狀態,直接讀就是了。
你想判斷外部是否是高電平,比如p1.0讀到一個高電平的時候p2.2輸出0:
if(p1_0)
p2_2 = 0;
明白了嗎?
4樓:
51不用設定方向,這樣的話就看外部電平的拉高拉低的能力了,如果是強上拉,就能拉高階口,如果比較弱,就拉不上來了
51微控制器怎麼讀取p0,p1口的值,是要先給一個高電平才能讀取嗎?c程式怎麼寫?
5樓:匿名使用者
為了保險一般需要先給送一個「高」,再讀取io口,這是針對那些沒有加上拉電阻的io口而採取的辦法,如果加了上拉電阻,是不用這麼麻煩的,可以直接讀取io口的值。
uncsigned char dat0,dat1;
//p0=0xff;p1=0xff;
dat0=p0;
dat1=p1;
6樓:
是的可以先在初始化寫一句
p1=1;
就可以讀了
p0記得接上拉電阻
51微控制器p1口做輸入口時,要求判斷高電平是否輸入,要對p1口怎麼設定?謝謝!
7樓:匿名使用者
其實輸入高電平是不太符合51微控制器的使用。不過應該可以採用查詢的方法。譬如,你把需要檢測的腳置1,然後在查詢,如果是1,輸入就是高電平,如果是0,輸入就是低電平。
為安全起見,建議你置1查詢就好了。
8樓:匿名使用者
要判bai斷的是高電平,置1不行du,要先zhi把p1口置0。不會是dao整個p1口都做輸入?專我想應該是p1口的某一位吧
屬。如果我理解正確的話,比如p1.1口檢測是否有高電平輸入,如果有點亮p2.0控制的led燈。
sbit p1_1 = p1^1;
sbit p2_0 = p2^0;
p1_1=0;
p2_0=1;
while(!p1_1)
如果是這個io口:
p1=0;
while(!p1)
9樓:匿名使用者
設定p1=0xff,然後輪詢p1,只要p1不等於0x00,p1的8個腳中一定有一個不是低電平
51微控制器怎麼初始化io口為低電平?
10樓:匿名使用者
1、首bai先注意51微控制器上電的
du時候會有個復位的操zhi作,復位的時候dao不執行微控制器內部回程式,復位之後答51微控制器的所有io口都為高電平;
2、在微控制器復位之後在main函式裡執行程式,如果要使io口初始化為低電平,就要在while迴圈的上方把io置低;例如:
一般程式的結構是這樣的:
void main()
}3、基於上面的原理,在設計微控制器外圍電路的時候,為了不讓外圍電路誤動作,一般把外圍電路設定成微控制器io口低電平的時候 盡心動作,
比如: 點亮led燈的時候,,一般把led的負極接io口,,這樣微控制器上電的時候,沒有進入程式之前,led是不會亮的,
11樓:匿名使用者
比如設定p1.0口為低電平,常見寫法就是這樣:sbit p1_0 = p1^0; p1_0 = 0;第一句先定義好p1.0口的名字,然後直接用複製語句賦0即可們1好方便的。
12樓:硬體開發
51微控制器io初始抄
化方式如下,在主程襲序裡bai面main裡面直接初始化du如下,微控制器所有zhi的io都是低電平。
int main(void)}
13樓:沙沙智宇
p0,p1,p2,p3四個8位準雙向i/o引腳;(作為i/o輸入時,要先輸出高電平)
對相應p口賦值。如:p0 = 0xff
14樓:匿名使用者
直接用置位語句:clr p*.*
或口操作: mov p0,#00h
15樓:黑幕
埠賦值 px(0/1/2/3) = 0x00;
先sbit 定義一下,就可以位操作了
16樓:匿名使用者
p0=0;(p0^0=0;p0^1=0;。。。。略去,下同)p1=0;
p2=0;
p3=0;
看需要哪個口,設定為0就行。
17樓:匿名使用者
只要在住迴圈程式之前抄加入i/o口設定代bai碼,就可以初du始化i/o口為低電平。
如果需要某一i/o口復zhi位後全部dao輸出低電平,則初始化方法為:
main()
}2.如果需要i/o口的某一位輸出低電平,則初始化方法為:
main()}
典型51微控制器的P0,P1,P2,P3口都有哪些功能
墨汁諾 p0口第一個功能是資料介面,第二個功能是地址低八位,p2口第二個功能是地址高八位。另外除了p0口沒有內部上拉電阻外,其他三個都有內部上拉電阻。p1就沒多少功能,就是個準雙向i o口。最重要的就是p3口了,他除了是個準雙向i o口外,第二功能很重要 p3.0 rxd 序列資料接收端 p3.1 ...
51的微控制器中,P0口作為段選,而P2口作為位選,需要挺多數碼管顯示的。不夠用,如何擴充套件
樑絲祺 親,只能選用擴充套件方案。但138太麻煩了。建議你選用74154,是一個4 16線的譯碼器。這是他的資料手冊。你的數碼管一共都加起來是12位,也就是只要能提供出去12個訊號就行了。74154的4個輸入端a0a1a2a3可以分別連線微控制器的32腳,21腳,22腳,23腳,但你原來和第一個數碼...
簡述MCS 51微控制器P0 P3口的功能
一般p0做資料口和地址的低八位。p2做地址的高八位。如果沒有外部擴充套件儲存器可以作為一般的i o使用。p1一般作為普通i o用。p3有第二功能,所以一般做特殊情況使用,比如序列通訊,按鍵中斷,定時中斷等。課本上都有較詳細的介紹。 一般情況下,四個口都可以當作基本的資料輸入輸出引腳當然,裡面有些引腳...