微控制器中,怎樣設計鍵盤復合鍵,微控制器設計中乙個按鍵有多個功能是如何實現的

2022-03-26 06:13:34 字數 4637 閱讀 7891

1樓:匿名使用者

復合鍵就是給個按鍵標誌位,比如按下為1,沒按為0 。如果 復合鍵為2 個以上功能 ,就要以0、1、2.。。賦值標誌。然後程式中判斷哪個值就轉哪個功能 。

2樓:匿名使用者

鍵盤復合鍵,是要實現第二功能鍵嗎?就像電腦上的shift 鍵的功能嗎?

這需要是矩陣鍵盤,獨立按鍵比較少就沒有什麼意義了。

其實,與識別單鍵的原理是一樣的,只要識別出類似的shift 鍵按下,同時又有其它鍵也按下,就可以實現第二功能鍵啦。

3樓:蝸牛p科技

一、概述

鍵盤在微控制器應用系統中,實現輸入資料、傳送命令的功能,是人工干預的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。

編碼鍵盤:由硬體邏輯電路完成必要的鍵識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數,同時產生一選通脈衝通知微處理器,一般還具有**跳和同時按鍵保護功能。

這種鍵盤易於使用,但硬體比較複雜,對於主機任務繁重之情況,採用8279可程式設計鍵盤管理介面晶元構成編碼式鍵盤系統是很實用的方案。

非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其他操作如鍵的識別,決定按鍵的讀數等僅靠軟體完成,故硬體較為簡單,但占用cpu較多時間。有:獨立式按鍵結構、矩陣式按鍵結構。

二、鍵盤系統設計

首先,確定鍵盤編碼方案:採用編碼鍵盤或非編碼鍵盤。隨後,確定鍵盤工作方式:

採用中斷或查詢方式輸入鍵操作資訊。然後,設計硬體電路。非編碼鍵盤系統中,鍵閉合和鍵釋放的資訊的獲取,鍵抖動的消除,鍵值查詢及一些保護措施的實施等任務,均由軟體來完成。

(一)非編碼鍵盤的鍵輸入程式應完成的基本任務

1.監測有無鍵按下;鍵的閉合與否,反映在電壓上就是呈現出高電平或低電平,所以通過電平的高低狀態的檢測,便可確認按鍵按下與否。

2.判斷是哪個鍵按下。

3.完成鍵處理任務。

(二)從電路或軟體的角度應解決的問題

1.消除抖動影響。鍵盤按鍵所用開關為機械彈性開關,利用了機械觸點的合、斷作用。由於機械觸點的的彈性作用,乙個按鍵開關在閉合和斷開的瞬間均有一連串的抖動.

2.採取串鍵保護措施。串鍵:是指同時有乙個以上的鍵按下,串鍵會引起cpu錯誤響應。

通常採取的策略:單鍵按下有效,多鍵同時按下無效。

3.處理連擊。連擊:

是一次按鍵產生多次擊鍵的效果。要有對按鍵釋放的處理,為了消除連擊,使得一次按鍵只產生一次鍵功能的執行(不管一次按鍵持續的時間多長,僅取樣乙個資料)。否則的話,鍵功能程式的執行次數將是不可預知,由按鍵時間決定。

連擊是可以利用的。連擊對於用計數法設計的多功能鍵特別有效。

三、鍵盤工作方式

單片及應用系統中,鍵盤掃瞄只是cpu的工作內容之一。cpu忙於各項任務時,如何兼顧鍵盤的輸入,取決於鍵盤的工作方式。考慮儀表系統中cpu任務的份量,來確定鍵盤的工作方式。

鍵盤的工作方式選取的原則是:既要保證能及時響應按鍵的操作,又不過多的占用cpu的工作時間。

鍵盤的工作方式有:查詢方式(程式設計掃瞄,定時掃瞄方式)、中斷掃瞄方式。

四、鍵盤電路結構

(一)獨立式按鍵介面設計

獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根i/o口線,每根i/o口線的按鍵工作狀態不會影響其他i/o口線上的工作狀態。因此,通過檢測輸入線的電平狀態可以很容易判斷哪個按鍵被按下了。

優點:電路配置靈活,軟體結構簡單。

缺點:每個按鍵需占用一根i/o口線,在按鍵數量較多時,i/o口浪費大,電路結構顯得複雜。

因此,此鍵盤是用於按鍵較少或操作速度較高的場合。

4樓:懂事電子設計

復合鍵是什麼樣的乙個按鍵?

微控制器設計中乙個按鍵有多個功能是如何實現的

5樓:單水鑫

這很簡單,1。如果有功能鍵這就不說了。2。

用時間來區分。3。按規定時間裡按下幾次。

4。連續按下「摩爾瑪」。5。

每按以下迴圈變換功能。6。在不同狀態下時,按鍵執行不同功能。

…………。

6樓:匿名使用者

主要是通過程式隔時掃瞄來進行。在程式中不同時段按鍵按下賦給不同的值,進行處理。

如何進行微控制器鍵盤電路的設計?

7樓:

一、概述

鍵盤在微控制器應用系統中,實現輸入資料、傳送命令的功能,是人工干預的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。

編碼鍵盤:由硬體邏輯電路完成必要的鍵識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數,同時產生一選通脈衝通知微處理器,一般還具有**跳和同時按鍵保護功能。

這種鍵盤易於使用,但硬體比較複雜,對於主機任務繁重之情況,採用8279可程式設計鍵盤管理介面晶元構成編碼式鍵盤系統是很實用的方案。

非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其他操作如鍵的識別,決定按鍵的讀數等僅靠軟體完成,故硬體較為簡單,但占用cpu較多時間。有:獨立式按鍵結構、矩陣式按鍵結構。

二、鍵盤系統設計

首先,確定鍵盤編碼方案:採用編碼鍵盤或非編碼鍵盤。隨後,確定鍵盤工作方式:

採用中斷或查詢方式輸入鍵操作資訊。然後,設計硬體電路。非編碼鍵盤系統中,鍵閉合和鍵釋放的資訊的獲取,鍵抖動的消除,鍵值查詢及一些保護措施的實施等任務,均由軟體來完成。

(一)非編碼鍵盤的鍵輸入程式應完成的基本任務

1.監測有無鍵按下;鍵的閉合與否,反映在電壓上就是呈現出高電平或低電平,所以通過電平的高低狀態的檢測,便可確認按鍵按下與否。

2.判斷是哪個鍵按下。

3.完成鍵處理任務。

(二)從電路或軟體的角度應解決的問題

1.消除抖動影響。鍵盤按鍵所用開關為機械彈性開關,利用了機械觸點的合、斷作用。由於機械觸點的的彈性作用,乙個按鍵開關在閉合和斷開的瞬間均有一連串的抖動.

2.採取串鍵保護措施。串鍵:是指同時有乙個以上的鍵按下,串鍵會引起cpu錯誤響應。

通常採取的策略:單鍵按下有效,多鍵同時按下無效。

3.處理連擊。連擊:

是一次按鍵產生多次擊鍵的效果。要有對按鍵釋放的處理,為了消除連擊,使得一次按鍵只產生一次鍵功能的執行(不管一次按鍵持續的時間多長,僅取樣乙個資料)。否則的話,鍵功能程式的執行次數將是不可預知,由按鍵時間決定。

連擊是可以利用的。連擊對於用計數法設計的多功能鍵特別有效。

三、鍵盤工作方式

單片及應用系統中,鍵盤掃瞄只是cpu的工作內容之一。cpu忙於各項任務時,如何兼顧鍵盤的輸入,取決於鍵盤的工作方式。考慮儀表系統中cpu任務的份量,來確定鍵盤的工作方式。

鍵盤的工作方式選取的原則是:既要保證能及時響應按鍵的操作,又不過多的占用cpu的工作時間。

鍵盤的工作方式有:查詢方式(程式設計掃瞄,定時掃瞄方式)、中斷掃瞄方式。

四、鍵盤電路結構

(一)獨立式按鍵介面設計

獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根i/o口線,每根i/o口線的按鍵工作狀態不會影響其他i/o口線上的工作狀態。因此,通過檢測輸入線的電平狀態可以很容易判斷哪個按鍵被按下了。

優點:電路配置靈活,軟體結構簡單。

缺點:每個按鍵需占用一根i/o口線,在按鍵數量較多時,i/o口浪費大,電路結構顯得複雜。

因此,此鍵盤是用於按鍵較少或操作速度較高的場合。

8樓:只注視著妳

學好語言。。。用來編寫程式。。。

微控制器如何實現多按鍵同時控制?

9樓:鍾清洪

微控制器核心決定了只能是單任務,如果使用實時系統的話,通過時間片可以實現虛擬多工,不過效率不高。象你這種情況其實,迴圈掃瞄按鍵就可以了

10樓:匿名使用者

沒太看懂你的問題。 c語言本來就是順序執行的,並行是不太可能的。 如果是按鍵掃瞄的話 可以把整個io口同時掃瞄(直接讀取p1),這樣應該為同時執行判斷。

11樓:

如果我沒有理解錯你的問題的話,應該是這樣的。假設使用c進行程式設計,那麼if(p1.0=0&&p1.1=0)then 就可以滿足你的需求了吧~

12樓:胖大海君

嘿嘿 俺來幫你解決

可以採用鍵盤中斷或定時掃瞄的方法,來實現對多按鍵同時控制的處理。

處理過程:

1 進入鍵盤處理程式後,先判斷p1.0是否是低電平??

2 如果是低電平 則繼續判斷p1.1是否是低電平? 是的話執行按鍵同時控制的處理**。

3 否則 執行p1.0被單獨按下的處理**。

4 如果當初p1.0是高電平, 則判斷p1.1是否是低電平? 是的話 執行p1.1被單獨按下的

處理**。

這點問題用軟體就可以解決的 不需要使用硬體電路資源(如單穩態電路等)

滿意就選滿意回答吧

13樓:

你的問題用軟體實現應該沒問題,

能用軟體解決的最好不用硬體,成本才是關鍵!

按鍵掃瞄處理:

key_vol=0;

if(a鍵壓下)

if(b鍵壓下)

if(c鍵壓下)

if(d鍵壓下)

....................................

.....................................

判斷鍵值(key_vol)的不同進入相關分支子程式。

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

隨便一本微控制器的書都會提到4 4矩陣鍵盤及程式,沒必要來這求助 需要了hi我。我給你郭天祥的。51微控制器 如何4 4矩陣鍵盤輸入按鍵 繼電器輸出訊號 微控制器如何控制4 4的矩陣鍵盤 比如p0.0到p0.3接鍵盤橫的線,4到7接豎的線。那麼先將橫行置0,然後讀取豎行的值。假如將p 0.0置0,讀...

微控制器中的psw計算,微控制器的psw是什麼

psw被稱作程式狀態寄bai存器,du用於記錄指令的執行狀zhi態。d7 daocy 進製 標誌,如果累加器a最高位專 有進製,cy置屬1否則為0 d6 ac輔助進製標誌,又叫半位元組進製標誌,即a的d3位有進製時ac置1,否則為0 d5 f0使用者標誌位,供使用者使用的軟體標誌 d4d3 rs1 ...

微控制器呼叫子程式,微控制器中如何呼叫寫好的子程式

ea 1,相當於enable all interrupt。表示允許中斷,不是呼叫timer0,而是允許timer0產生中斷,並執行timer0中斷函式中的內容。ea 1 應該是總中斷開 void time0 interrupt 1 是定時器中斷 時間到進入此函式 ea總中斷復允許,只有ea 1時,c...