51微控制器4 4矩陣鍵盤如何同時實現單擊 雙擊的功能

2021-03-10 22:10:59 字數 2164 閱讀 4161

1樓:匿名使用者

一般地,我們的鍵盤抄檢測都有一個按bai鍵碼儲存位元組,一般du情zhi況下,只要檢測到有效按dao鍵,那麼這個儲存位元組的按鍵碼就有效,也就是單擊。何為雙擊呢?雙擊就是在監測到該按鍵後在該按鍵要有作用(這個作用就是單擊)之前又檢測到該按鍵,然後就當作了雙擊。

那怎麼實現這一判斷呢?我們只要加一個軟計數器,當檢測到有效按鍵後,該計數器開始向下計數,如果計數器自然減到了0那麼就是單擊生效;如果在該計數器值沒有減到0之前又檢測到該按鍵,那麼就是雙擊立馬有效同時計數器歸零。這個計數器肯定是ms級的,也就是要在定時器裡工作,只要它不為0,那麼定時器中斷服務就對它減1操作,因此計數器本身同時就是一個開關量,而觸發它的是檢測到有效按鍵。

2樓:匿名使用者

什麼單bai擊雙擊的,是一個鍵按連按du兩次還是兩個zhi鍵一起按dao?

一個鍵連按兩回次的話,就檢答測到按鍵後等待彈起,延時一個時間後再次檢測有無按鍵,若有判為雙擊,無判為單擊。

兩個鍵一起按的話,檢測鍵盤按下後,繼續掃描其他行線有無按鍵,若有的話就判為複合鍵,否則為單鍵,等待彈起時需要掃描全部行線是否鬆開。

鍵盤處理程式最好分為幾個模組:

一是按鍵掃描模組

二是延時模組

三是鍵盤處理模組

通常:先用掃描模組得出按鍵**,輸出成鍵值,等到按鍵彈起後再進入鍵盤處理模組,這樣的話不會出現很多複雜問題。

還有,如果你的微控制器帶有ad的話,做鍵盤是最方便的,直接測量埠電壓就可得出按鍵,而且都是按照單鍵處理,按鍵數量和按鍵組合方式都很靈活的,想怎麼做都可以。

3樓:匿名使用者

在單擊的動作當中計數不就行了麼,用定時器或者中斷來做。

4樓:

啥意思?一個鍵按一下和按兩下的功能不一樣嗎?

51微控制器 c語言程式設計 4*4矩陣鍵盤如何實現等待按鍵鬆開功能?

5樓:

利用定時器,對鍵盤進行掃描。

6樓:匿名使用者

if(key_l!=0xf0)

抄 {delay_nms(5);

key_l=p1;

……在第襲4行加 while( key_l!=0xf0 );

等待按鍵釋放,按

bai鍵不放開就du一直在此處等待,zhi知道按鍵釋放,此語句執行完。dao再往下執行

7樓:獨小林

現延時一下再鬆開 可能要好些

8樓:匿名使用者

微控制器c語言程式設計師

9樓:當空金羽

p1口不能直接加入邏輯判斷,可以先讀出p1口值:temp=p1,再用 while(temp!=0xf0);判斷。

51微控制器矩陣鍵盤如何實現兩個鍵同時按下的時候顯示其他數字,用c語言程式實現,

10樓:匿名使用者

定義一個按鍵緩衝區

用普通的按鍵掃描程式,當掃描到有按鍵按下的時候內。按鍵鍵的值寫入緩衝容區。繼續掃描直到完成。

然後返回緩衝區地址就可以得到多個按鍵的資料了。

這樣只要定義16位元組的緩衝區全部按鍵都能檢測到。(一般不需要那麼多6個足夠)

還有一種方式 是 如果只返回2個按鍵的話。

可以這樣

常規按鍵掃描 返回範圍在0-15也就是0-f讀取到一個值後把這個值左移4位

再繼續讀取。當讀取到第二個值的時候與上第一個值。就能獲取2個按鍵的值了。

11樓:匿名使用者

原理跟單鍵按下去顯示數字是一樣的呀。。。

51微控制器 如何4*4矩陣鍵盤輸入按鍵 繼電器輸出訊號

12樓:玄秀英惠嫻

這個原理挺簡單的,不過我也好久沒用了,具體的記得不是那麼清楚。版你拿本微控制器的書(應該講權原理的書的都可以),找到編碼鍵盤那塊,看一會就會了~~

基本原理:當你按鍵按下後,鍵盤程式進行行列掃描,就可以確定為哪一個按鍵,然後跳到相應的子程式(你這邊就是控制繼電器了)!

補充回答:

那你就進行相應的設定,開外部中斷等,然後就把下面的鍵盤和轉移程式放到中斷裡面(即一般情況時程式停在等待中斷處,當你中斷按鈕按下後,然後就進入子程式,等待你的鍵盤數字按鍵。。。)

51微控制器c語言程式設計4 4矩陣鍵盤如何實現等待按鍵鬆開功

利用定時器,對鍵盤進行掃描。if key l 0xf0 抄 delay nms 5 key l p1 在第襲4行加 while key l 0xf0 等待按鍵釋放,按 bai鍵不放開就du一直在此處等待,zhi知道按鍵釋放,此語句執行完。dao再往下執行 現延時一下再鬆開 可能要好些 微控制器c語言...

51微控制器pwm波形頻率問題,51微控制器pwm波形輸出問題

很多微控制器帶pwm模組,可以出很工整的pwm波,非用定時器做也可以,比較耗資源.定時器做pwm好處是任意的io都可以輸出且沒有通道個數的限制.定時器用作pwm你需要兩個中斷,一個是pwm週期中斷 所有通道置低 一個是pwm的開關點中斷 置高電平 有些微控制器還是難以實現一個定時器兩種中斷,另一個做...

51微控制器三極體如何控制繼電器,51微控制器如何驅動12V繼電器 用三極體實現的電路引數怎麼求?

12v的繼電器這樣控制不對,實際中,如此接,微控制器就燒了。p20口至少接個電阻出來才不會燒,但高低都控制不了繼電器。用個npn,繼電器接12v與c之間,網上有很多圖。電路錯誤,繼電器不受控.應該選用npn三極體,12v接繼電器一腳,繼電器另一腳接npn三極體c極,三極體e極接地.微控制器 上電 還...