如何給微控制器IO口輸入高電平,微控制器 為什麼IO口輸入的時候要置成高電平後才能讀取正確 ?

時間 2021-08-30 10:29:12

1樓:匿名使用者

方法:1.p1口做輸入輸出口前要先寫值,1為輸入,0為輸出,且要接上拉電阻,不如換到其他口。

2.if(countsingle=1)改為if(countsingle==1) 。

3.最好先讀取埠值再判斷。

2樓:匿名使用者

最基本的51微控制器的io要讀之前一定得先寫『1』,否則讀的值是隨機的。

if(countsingle=1)

改為countsingle=1;

ifif(countsingle==1)

3樓:匿名使用者

你直接榮 for 就可以了 別問我具體的很久不寫了

例如檢測p1^1 高電平 首先定義 p1^1 = 0 for(p1^1=1;其他的動作=1)這樣迴圈就可以了

4樓:匿名使用者

4點建議

1.p1口做輸入輸出口前要先寫值,1為輸入,0為輸出,且要接上拉電阻,不如換到其他口

2.if(countsingle=1)改為if(countsingle==1)

3.最好先讀取埠值再判斷

4. 一樓說的用中斷也不錯

5樓:匿名使用者

你直接5v進去難道不怕燒了埠啊,多大的電流啊!

你要是用這種查詢電平方式就在埠上接個電阻上拉5v好了,控制電流在你的微控制器管教可承受的範圍內

6樓:做而論道

if(countsingle=1) //錯if(countsingle==1) //應該是「雙等號」。

後面還有一個錯的地方。

----------------------------------試試下面這個:

main()

if(passsingle == 1) }}

7樓:

應該用中斷來檢測吧,有高電平就觸發一次中斷,,可以麼?

微控制器..為什麼io口輸入的時候要置成高電平後才能讀取正確..?

8樓:匿名使用者

這個跟微控制器的埠有關,比如說p0口,p0口當io口時,cup發出控制訊號,使控制=0,這樣q非就和t2連起來了,當p0口中內容為0時,q非為1,t2導通,這時p0口是接地的,這時輸入高電平時會被拉低,導致誤讀,讀出為0,這顯然不對的,所以一般輸出1讓t2截止,這樣相當於讓p0口變成高阻狀態。

其他埠的原理是一樣的。

微控制器io口懸空是高電平嗎?

9樓:匿名使用者

未必。假設輸入電源是5v,懸空的時候電壓一般是3.3v,是一個「中間態」。可能被當作高電平,也可能當作低電平,看微控制器(datasheet)而定。

如果要io確保懸空是高電平,加一個上拉電阻至輸入電源即可。若要確保低電平,下拉電阻拉至地就行。上拉電阻取1k歐姆即可。

懸空是指沒有io訊號輸入。上拉電阻是解決懸空不定狀態的一種常用方法,絕不是io訊號,用來將輸入電平拉到5v或下拉到0v。它是確保數位電路準確性的一種機制方法。

輸入訊號和上拉電阻的關係、概念每本數位電路的書都會講到,lz好好理解下吧~

10樓:做而論道

51微控制器,p1,p2,p3口,內部有上拉電阻,所以io口懸空,預設就是高電平。

51微控制器,p0口做io口用的時候,內部沒有電阻,io口懸空,電平就不確定,易受干擾。

其它微控制器,要看datasheet。

11樓:匿名使用者

樓上說得不對,三態的時候,呈現高阻態,電瓶是完全被動的。

有些微控制器可以設定引腳的內部電阻以改變其磨人的電平。

微控制器IO口懸空是高電平嗎,單片中的IO口定義為高阻態,如果將其懸空,會給微控制器帶來什麼影響

未必。假設輸入電源是5v,懸空的時候電壓一般是3.3v,是一個 中間態 可能被當作高電平,也可能當作低電平,看微控制器 datasheet 而定。如果要io確保懸空是高電平,加一個上拉電阻至輸入電源即可。若要確保低電平,下拉電阻拉至地就行。上拉電阻取1k歐姆即可。懸空是指沒有io訊號輸入。上拉電阻是...

51微控制器如何檢測高電平輸入,51微控制器引腳檢測高電平輸入的問題

做而論道 51微控制器,把引腳設定為輸入狀態,方法就是輸出一個1。這是微控制器的設計者 生產廠家所規定的。在這個前提下,外界,只有輸入低電平,才會改變引腳的狀態。輸入高電平,是沒有反應的。如果,外設,一定要送來高電平,那就必須加上一個反相器,再連線到微控制器的引腳。 這個電路和功能是可以實現的 c2...

關於微控制器IO口電平轉換

做試驗啊,這個沒別的更好的辦法。入pinx的值會隨外部電路輸入高低電平變化而變化,因為它此時屬於輸入狀態,能讀入引腳電平 而所謂的高阻態只是相對於輸出來說的,輸出進入高阻態,並不影響輸入,即pinx的讀入。一次我搭了一個鍵盤電路,沒有使用上拉電阻,且ddrx portx分別配置為0 0,發現pinx...