51微控制器,在按下鍵盤,然後鬆開之後,為什麼電平會恢復

時間 2022-03-14 01:30:13

1樓:小蟲小冰塊

首先宣告本人不是高手,其次p2是不可以位操作的,即使你在p2.4接入乙個按鍵,當你按下按鍵時,p2.4被強制拉成低電平,當你鬆開時當然自動復位,不過想讓他保持,你可以在中斷中加上一條語句如:

p2=0xf7;,這樣可以保持在中斷時你的p2.4是低電平,其他的具體情況具體對待、、、

2樓:申稅炸蛋

請先搞清楚微控制器io口的結構。

微控制器io口有讀操作和寫操作,分別由不同的mos管進行聯通,並且io口連線有鎖存器,並不是直接就是io口連線io暫存器各個位。也就是說io口在寫的時候和讀的時候經過的電路是不同的,io口在讀的時候讀的是鎖存器的值,而鎖存器在標準狀態下時屬於弱上拉,能被外部電平拉低,當撤銷外部低電平後恢復高電平。

3樓:

所有io口都這樣嗎?

估計剛好是你選的那個io口本身內建了上拉電阻什麼的.這個要仔細察看一下規格書.

可以嘗試在使用前初始化,不用的時候,既然都預設有上拉,那就直接給個低電平保留.

4樓:匿名使用者

不知道你對51微控制器的i/o埠的硬體結構了解多少。以p2口來說,當把它作為普通i/o埠來使用時,實際上它是一種準雙向 i/o 口。當要讀取外部資訊時必須要作為輸入埠,而作為輸入埠時為了正確讀取資訊必須使p2.

4內部的乙個mos管處於關斷狀態,所以先要向其寫1,這就使其變成了高電平,所以當你按鍵鬆開以後這個寫入的1依然存在,p2.4恢復高電平。建議你了解一下硬體結構!

微控制器按鍵直接接地後,按下按鍵時i/o口的電平是0鬆開後會回到高電平嗎?

5樓:小莫姐閨密和小煥欣

微控制器的i/o腳一般有10k上拉電阻上拉電壓是5v,低電平輸出.

可驅動小功率led和三極體

6樓:匿名使用者

這要看你用的是什麼微控制器的什麼io口了。比如51微控制器,它的p0口外面必須要加上來電阻才能得到高電平,如果你將按鍵接到p0口上,沒有接上拉電阻的情況下,你按鍵鬆開後就不能得到高電平,但p1,p2,p3口可以不用外接上拉電阻也能得到你想要的高電平。所以一般按鍵都不放在p0口上。

7樓:**飄渺迷人

對的........按下是0,,,,鬆開是1 (使 用io時,,,先向io置1)

51微控制器在鍵盤檢測中,比如我要讓按下按鍵且等我釋放按鍵後才算按下一次按鍵,請問怎麼程式設計為好?比如

8樓:匿名使用者

如果任務量不大,等也無妨,這樣的響應速度最快。但總感到彆扭不是?

可以這樣解決,利用乙個定時器每20毫秒中斷一次,在中斷程式中查詢按鍵狀態,連消抖都一併解決了。如果連續倆次檢測到按鍵按下,即認為按鍵按下,如果連續兩次檢測不到按鍵按下,則認為按鍵釋放。這樣你是按下有效還是釋放有效都可以了。

希望對你有幫助。

9樓:

標記一下,,,我也想知道,,,

51微控制器手動復位,是按下去的時候(沒鬆開)微控制器就工作,還是在鬆開按鍵的一瞬間工作(下降沿有效)?

10樓:

是在鬆開之後工作,不是鬆開的一瞬間就工作,鬆開之後c1放一會電才開始工作,不過人感覺不出來,感覺就是鬆開一瞬間就工作了。

你那個不清楚是否可以,我想了乙個你可以試一下。

11樓:

當mcs-5l系列微控制器的復位引腳rs出現2個機器週期以上的高電平時,微控制器就執行復位操作。如果rst持續為高電平,微控制器就處於迴圈復位狀態。所以是在鬆開之後工作,而且是鬆開之後電容c1放一會電,復位引腳為低電平後才開始工作。

12樓:狼牙

當mcs-5l系列微控制器的復位引腳rst(全稱reset)出現2個機器週期以上的高電平時,微控制器就執行復位操作。如果rst持續為高電平,微控制器就處於迴圈復位狀態。

屬於電平復位,不是脈衝復位

微控制器有上電自動復位跟手動復位

微控制器鍵盤 能自動復位高電平麼

13樓:匿名使用者

不能這麼說哦,你按下按鍵io變為低電平,說明:你的按鍵一端接到io口,另一端接到gnd了,而微控制器板子上的鍵盤一般是自恢復的,也就是你按著不鬆就接地了,鬆開手又復為原來的狀態了。重要的是,復位不一定是高電平,一般情況下,是不需要給那個io任何電平了。

相當於懸空。除非你接上拉電阻。

14樓:

埠預設就是高電平,按鍵按下,埠短接到地,變成低電平。鬆開當然又恢復了~~

這有什麼好疑問的、⊙﹏⊙b汗

**********===不一定短接到地,看你按鍵怎麼接的,一般都一端接 微控制器io口,另一端接地

15樓:匿名使用者

好辦呀,你電路上加上拉電阻就可以了。

51微控制器中如何通過乙個按鍵實現暫停與恢復?需要乙個程式設計的思想

16樓:一棵無所不知的小白菜

1、建立專案檔案。

2、按鍵:s1=p3^2,點亮: led=p1^5。

3、建立c語言主函式。

4、建立迴圈效果,檢測效果。

while(1)

5、建立選擇效果。

6、當按下時,即暫停與恢復。

17樓:筆桿子與小尺子

有以下幾種情況:

1.迴圈查詢按鍵。當按鍵按第一次時間,進入第一層迴圈查詢語句內部,執行恢復。

不跳出該層迴圈,繼續查詢按鍵。當第二次按下時間,進入第二層迴圈查詢語句內部,執行暫停。迴圈結束。

若想反覆暫停和恢復,就在外面再加一層while(1)類似的死迴圈,反覆執行其內部的兩層迴圈查詢語句。

2.用乙個標誌變數,記住按鍵的狀態。初始化為個值,如「暫停」,按鍵之後檢查標誌變數,是「暫停」就執行「恢復」,再讓它變為「恢復」說明當前已經執行了恢復。反之亦然。

3.掉電暫停。這樣需要按鍵能觸發cpu工作。所以,需要按鍵接到外部中斷上面。中斷後可以恢復cpu工作。在中斷中再判斷是否要讓cpu掉電與否。

不知道這種方法你能接受不?還是用外部中斷。此按鍵觸發中斷後,關掉所有其他的中斷,也即ea=0(最好先用個變數記住ea,方便恢復),然後就一直在中斷中等待該按鍵第二次按下再恢復ea,最後退出中斷。

18樓:

就是使用51的中斷就可以了!

你的其他12個按鍵也可以使用中斷來處理,只是把那個暫停鍵設為級別最高,不管什麼情況下改建按下就到該鍵的子程式執行(注意此時要關閉中斷功能、只是判斷該暫停鍵是否第二次按下),若按下就跳到原來暫停前的位置即可,並開啟中斷!

看是這個意思嗎!

19樓:

你說的暫停是指的,程式不執行其他操作?若是,請接著看

設定乙個標誌,當程式始終停滯在這個位置,或者是不執行其他程式,這個標誌設為1時,此時執行空語句;當按鍵時,觸發中斷,把標誌清零。

20樓:匿名使用者

推薦暫停 用 掉電模式

21樓:匿名使用者

可以參考:

c語言的也有,在空間裡面找找即可。

51微控制器 獨立按鍵按下去 再放開才算按鍵一次 計算按鍵次數 程式應該怎麼寫?

22樓:禿賊

你好!因為按鍵操作涉及暫存器配置和按鍵防抖,因此寫了你也不一定用得上。而且你這個的邏輯比較簡單,建議自己寫。主要注意幾個地方就可以了:

按鍵i/o口電平的配置:要結合硬體電路確認按鍵是低電平觸發還是高電平觸發。在程式中設定正確的i/o口電平。

i/o口的輸入輸出狀態的配置:i/o口作為按鍵輸入必須是準雙向模式或輸入模式,這個不同微控制器配置暫存器方式不同但大同小異。

按鍵防抖:在按鍵按下時有時會有短暫的接觸不良,因此會多次判斷按鍵按下和斷開,因此一般在按鍵按下或斷開時增加幾十毫秒的防抖處理,具體就是連續多個迴圈判斷按鍵是否是乙個狀態,如果狀態不變,再進行下一步處理。

我想用51微控制器,矩陣鍵盤,lcd1602寫個簡易計算器程式

c語言的語句可以這樣寫 include void main 由於1620液晶模組支援ascii碼,所以只要將str中的內容送到1602就行了。至於1602的操作我就不寫了 其實我也沒用過,但知道怎麼用,應該不難 做而論道 void w lcd x1 dat uint sec w lcd com 0x...

用51微控制器和C語言程式設計 利用矩陣鍵盤依次顯示1,2,3,4,512的平方,顯示在數碼管上

這是我以前寫的 你對照一下吧 字型太小累眼睛 我的這個 絕對可用 沒有錯誤 只是i 0口不 一樣 主要是你矩陣鍵盤那塊有問題 你對照我的 很快就找出來了 include define uchar unsigned char define uint unsigned int sbit dula p2 ...

關於51微控制器矩陣鍵盤移位輸入的疑問,為什麼我這樣寫在低四位數碼管顯示的都是同按下的對應數字

在每一次段選顯示數字之後 位選開了,一定要關閉,再送下乙個資料。段選和位選要分開啊 查志強 1.位定義最好用有意義的英文 哪怕拼音也好 方便檢查和閱讀2.矩陣鍵盤的掃瞄有這麼幾種 行列掃瞄,反轉掃瞄,中斷掃瞄 按下時要去抖,功能實現一般要等鍵按完 彈起來 後才去實現功能 3.數碼管的動態掃瞄的程式設...