51微控制器P1 P2口初始化置低電平的時候怎樣讀取外部高電平

時間 2021-09-10 12:09:58

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微控制器p0p1p2p3口,到底有啥區別啊,他們的基本功能

獅子最愛冥王星 51微控制器p0 p1 p2 p3口區別如下 一 意思不同 p0口作輸出口用時,需加上拉電阻。p0口有複用功能。當對外部儲存器進行讀寫操作時,p0口先是 提供外部儲存器的低8位地址,供外部儲存器地址鎖存器鎖存,然後充當資料線,用於寫出或讀入數 據。p1口 p2口只是普通io口。二 功...

51微控制器程式設計題微控制器P1 0 1 7口接發光二極體(愛心圖樣)試編寫流水燈的彙編程式使發光二極體逐個亮

啟動入口 org 0000h 復位啟動 ljmp start org 000bh t0中斷 ljmp t0int org 0100h ljmp start 主控程式 start mov sp,80h 初始堆疊值mov tmod,01h 定時器0工作於方式1,50毫秒 12.000mhz mov th...

51的微控制器中,P0口作為段選,而P2口作為位選,需要挺多數碼管顯示的。不夠用,如何擴充套件

樑絲祺 親,只能選用擴充套件方案。但138太麻煩了。建議你選用74154,是一個4 16線的譯碼器。http wenku.baidu.com view 5262f0c04028915f804dc25e.html 這是他的資料手冊。你的數碼管一共都加起來是12位,也就是只要能提供出去12個訊號就行了。...