1樓:做而論道
假如我給某一個io置0。外接高電平,--這樣做,io引腳極有可能燒燬。
如果我把io設定為1,外接低電平--這是可以的,io引腳就是低電平。
總之:想用引腳輸入,就先把引腳設定成1。引腳就能隨著外部變化。
想用引腳輸出,置成1、0均是輸出,但是外部就不要再送來訊號。
2樓:等待的幸福快樂
方法:把引腳設定為輸入狀態,輸出一個1就行。這是微控制器的設計者、生產廠家所規定的。
在這個前提下,外界,只有輸入低電平,才會改變引腳的狀態;輸入高電平,是沒有反應的。如果,外設一定要送來高電平,那就必須加上一個反相器,再連線到微控制器的引腳即可。
其中的 p0口 為匯流排式設計 電路形式 為 集電極開路 也就是說它的內部開關只能將 p0的io連線到gnd上 而不能連線到 vcc上 當向p0 寫「0」時 io口將連線到 gnd 而向p0寫「1」時 io將變成高阻狀態 也就是相當於斷開 什麼都沒連線 *此時若需要輸出 則必須增加外部上拉電阻 來實現高電平的 *此時若需要實現輸入(io讀取) 則直接讀取p0即可得到外部輸入的電平狀態。
至於 p1 2 3 其內部有上拉電阻 但一般情況下 都要在外部也配上上拉電阻 以實現穩定的 高電平輸出。
綜上所述 實際上 預設狀態輸出高 可以認為是輸出狀態 但p0是由外部上拉電阻實現的 「輸出」 p123 是由內部上拉 和外部上拉同時實現的輸出 也就是說 p123 內部來看是真正的輸出 而p0內部的狀態是高阻。
至於為何要高阻 是因為 p0 用於匯流排的資料交換 高阻結構 是匯流排埠必須的一種狀態。
3樓:
假如我給某一個io置0。外接高電平,那麼軟體檢查io 是高電平還是低電平。
會讀回0。
我把io設定為1,外接低電平 又是怎麼狀態。
也會讀回0
io該怎麼設定 --讀引腳上的電平,先把相應管腳置為1,再讀就能讀回正確的電平。
51微控制器引腳檢測高電平輸入的問題
4樓:做而論道
在網上看到這樣bai的一句
du話 「51微控制器的i/o 口檢測高低電zhi平是需要首dao先讓該埠置為內1的。此時容這個引腳才被設定為輸入」,
--正確。
也就是說如果上面的設計可以做到的話,那麼就需要一開始的時候給高電平嗎?
--必須先給埠置一。
--你的電路,是做不到的。
--你的電路,按鍵、不按鍵,送到引腳的訊號,都是高電平。
--你的電路,設計的不對,不符合微控制器的特點。
--按鍵,另一端,應該接地。
5樓:匿名使用者
51微控制器的引腳檢測到各個引腳的電壓高於1.8v就認為是有高電平輸入,低於0.7v就認為是低電平輸入,在0.7~1.8v之間,是一個未知區域,既不是高電平也不是低電平。
6樓:匿名使用者
51微控制器引腳檢測高電平輸入的問題,是什麼問題?看不見,怎麼回答?
7樓:匿名使用者
設計存在缺陷:復「51微控制器的制i/o 口檢測高低電平是需要首先讓該埠置為1的。此時這個引腳才被設定為輸入」 正確,此操作在io口初始化時設定;但是你的電路圖,讀取的始終為「1」;原因:
當設定為輸入時,微控制器內部有上啦電阻,把其io口引腳拉高;
改進:io口連線一下拉電阻 6.8k~10k之間即可
8樓:
大家常用的是,按鍵一端接地,另一端接io口 檢測,檢測端加上拉電阻。
9樓:匿名使用者
微控制器baiio與外部相連是線與的du關係,所以你的方法不行。單zhi
片機io口為高的時候你
dao讀取內的相應io口電平才是外部電平。
容如果你把相應io口置0,無論外部是0或1你讀取的永遠是0。所以你只有把io口置1,判斷if( p1^6==0)才能判斷是否鍵按下(當然你的按鍵得接地)。
51(stc89c52)微控制器,用io口判斷外部高低電平時io口在軟體、硬體上應該如何設定?謝謝!
10樓:匿名使用者
先從軟體上講,要bai判斷duio口高低電平,這對zhi於微控制器來說是輸入狀態,所以要dao
將io口設版置為輸入狀態權;再從硬體上講,電路有很多種,比較保險的作法是採用**管方式,io口接到三極體集電極並上拉電壓《這個電壓要取於微控制器工作電壓,有的微控制器是3.3v,有的微控制器是5.0v>,外部電平就通過電阻搭配接到三極體的基極
11樓:匿名使用者
不用設定,預設是為io口 直接先輸出p2.0為高,再讀入即可
51微控制器如何檢測高電平輸入,51微控制器引腳檢測高電平輸入的問題
做而論道 51微控制器,把引腳設定為輸入狀態,方法就是輸出一個1。這是微控制器的設計者 生產廠家所規定的。在這個前提下,外界,只有輸入低電平,才會改變引腳的狀態。輸入高電平,是沒有反應的。如果,外設,一定要送來高電平,那就必須加上一個反相器,再連線到微控制器的引腳。 這個電路和功能是可以實現的 c2...
如何給微控制器IO口輸入高電平,微控制器 為什麼IO口輸入的時候要置成高電平後才能讀取正確 ?
方法 1.p1口做輸入輸出口前要先寫值,1為輸入,0為輸出,且要接上拉電阻,不如換到其他口。2.if countsingle 1 改為if countsingle 1 3.最好先讀取埠值再判斷。 最基本的51微控制器的io要讀之前一定得先寫 1 否則讀的值是隨機的。if countsingle 1 ...
用51微控制器IO口驅動3mmLED燈,要加多大的限流電阻
1 你沒講清楚具體的連線方式 是io口的 高電平驅動燈亮,此時二極體加限流電阻接地 還是io的低電平驅動燈亮,此時二極體 加限流電阻接 5v。2學習51,數位電路切忌不要忘了電流,這兩種方式的電流是不一樣的,請到51 的資料手冊的引數裡面查詢,比如at89s52的英文手冊 找到直流特性 dc cha...