矩陣式鍵盤工作原理

2022-08-20 12:27:03 字數 2325 閱讀 6721

矩陣式鍵盤的結構與工作原理:

1. 在鍵盤中按鍵數量較多時,為了減少i/o口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過乙個按鍵加以連線。

這樣,乙個埠(如p1口)就可以構成4*4=16個按鍵,比之直接將埠線用於鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用埠線則只能多出一鍵(9鍵)。由此可見,在

2. 需要的鍵數比較多時,採用矩陣法來做鍵盤是合理的。

3. 矩陣式結構的鍵盤顯然比直接法要複雜一些,識別也要複雜一些,上圖中,列線通過電阻接正電源,並將行線所接的微控制器的i/o口作為輸出端,而列線所接的i/o口則作為輸入。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。

行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態就可得知是否有鍵按下了。具體的識別及程式設計方法如下所述。

4. 矩陣式鍵盤的按鍵識別方法

確定矩陣式鍵盤上何鍵被按下介紹一種「行掃瞄法」。

行掃瞄法行掃瞄法又稱為逐行(或列)掃瞄查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。

1. 判斷鍵盤中有無鍵按下將全部行線y0-y3置低電平,然後檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位於低電平線與4根行線相交叉的4個按鍵之中。

若所有列線均為高電平,則鍵盤中無鍵按下。

2. 判斷閉合鍵所在的位置在確認有鍵按下後,即可進入確定具體閉合鍵的過程。其方法是:

依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平後,再逐行檢測各列線的電平狀態。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。

下面給出乙個具體的例子:

圖仍如上所示。8031微控制器的p1口用作鍵盤i/o口,鍵盤的列線接到p1口的低4位,鍵盤的行線接到p1口的高4位。列線p1.

0-p1.3分別接有4個上拉電阻到正電源+5v,並把列線p1.0-p1.

3設定為輸入線,行線p1.4-p.17設定為輸出線。

4根行線和4根列線形成16個相交點。

1. 檢測當前是否有鍵被按下。檢測的方法是p1.

4-p1.7輸出全「0」,讀取p1.0-p1.

3的狀態,若p1.0-p1.3為全「1」,則無鍵閉合,否則有鍵閉合。

2. 去除鍵抖動。當檢測到有鍵按下後,延時一段時間再做下一步的檢測判斷。

3. 若有鍵被按下,應識別出是哪乙個鍵閉合。方法是對鍵盤的行線進行掃瞄。p1.4-p1.7按下述4種組合依次輸出:

p1.7 1 1 1 0

p1.6 1 1 0 1

p1.5 1 0 1 1

p1.4 0 1 1 1

在每組行輸出時讀取p1.0-p1.3,若全為「1」,則表示為「0」這一行沒有鍵閉合,否則有鍵閉合。

由此得到閉合鍵的行值和列值,然後可採用計算法或查表法將閉合鍵的行值和列值轉換成所定義的鍵值

4. 為了保證鍵每閉合一次cpu僅作一次處理,必須卻除鍵釋放時的抖動。

鍵盤掃瞄程式:

從以上分析得到鍵盤掃瞄程式的流程圖如圖2所示。程式如下

scan: mov p1,#0fh

mov a,p1

anl a,#0fh

cjne a,#0fh,next1

sjmp next3

next1: acall d20ms

mov a,#0efh

next2: mov r1,a

mov p1,a

mov a,p1

anl a,#0fh

cjne a,#0fh,kcode;

mov a,r1

setb c

rlc a

jc next2

next3: mov r0,#00h

retkcode: mov b,#0fbh

next4: rrc a

inc b

jc next4

mov a,r1

swap a

next5: rrc a

inc b

inc b

inc b

inc b

jc next5

next6: mov a,p1

anl a,#0fh

cjne a,#0fh,next6

mov r0,#0ffh

ret鍵盤處理程式就作這麼乙個簡單的介紹,實際上,鍵盤、顯示處理是很複雜的,它往往佔到乙個應用程式的大部份**,可見其重要性,但說到,這種複雜並不來自於微控制器的本身,而是來自於操作者的習慣等等問題,因此,在編寫鍵盤處理程式之前,最好先把它從邏輯上理清,然後用適當的演算法表示出來,最後再去寫**,這樣,才能快速有效地寫好**。

矩陣式鍵盤的工作原理

矩陣式鍵盤中,行 列線分別連線到按鍵開關的兩端,行線通過上拉電阻接到 5v上。當無鍵按下時,行線處於高電平狀態 當有鍵按下時,行 列線將導通,此時,行線電平將由與此行線相連的列線電平決定。這一點是識別矩陣按鍵是否被按下的關鍵。然而,矩陣鍵盤中的行線 列線和多個鍵相連,各按鍵按下與否均影響該鍵所在行線...

物資計畫「矩陣式」管理

矩陣式 管理 物資計畫管理作為物資管理的 龍頭 在供電公司生產執行中占有舉足輕重的地位。陵城區供電公司堅持 集中 統 一 精益 高效 原則,以公司年度固定資產投資計畫 綜合計畫 財務預算為基礎,執行國網公司統一標準,建立起物資計畫 矩陣式 物資計畫 矩陣式 管理 物資計畫管理作為物資管理的 龍頭 在...

矩陣式管理的案例分析

實踐是檢驗真理的唯一標準。不論是以國際級的諮詢巨頭麥肯錫作招牌,還是以國際化為標榜,實施的結果進一步的證明,管理真的不能生搬硬套,相反還是要以有效性為原則,針對企業需要解決的真正問題去進行方案設計。那麼,在當時的情況下,光明乳業真正需要解決的問題是什麼呢?也許真的不應該是組織結構問題,而應該是如何解...