行掃瞄法類似列掃瞄法:話不多說!如下
矩陣鍵盤如下圖:
行掃瞄涉及到與運算:與運算符號為& ,計算規則是:有0全為0,全1才為1
如:1111
0000 和 1011
0000進行與運算
1111
0000
1011
0000
----
-------
運算結果: 1011
0000
行掃瞄法:假設按下的是12號鍵
第1步:識別鍵盤有無鍵按下
第2步,識別出哪個按鍵被按下。採用逐行掃瞄法,在某一時刻只讓1條行線處於低電平,其餘所有行線處於高電平。
當第1行為低電平,其餘各行為高電平時,因為是鍵3被按下,第1列的列線仍處於高電平;
當第2行為低電平,其餘各行為高電平時,第1行的列線仍處於高電平;直到讓第4行為低電平,
其餘各行為高電平時,此時第1行的列線電平變為低電平,據此,可判斷第4行第1列交叉點處的按鍵,
即12號鍵被按下。
#include
typedef
unsigned
char u8;
#define key_press p1
//控制p1的口
unsigned
char code smg=
;// 顯示段碼值0~f
unsigned
char
keyscan()
;//行掃瞄函式,返回相應的鍵值
unsigned
char
keypro()
;//根據行掃瞄函式返回的鍵值,確定對應的按鍵,並返回0-15 即0-f
unsigned
char value;
//儲存鍵值
void
delay
(int ms)
//延遲函式
}void
main()
}unsigned
char
keyscan()
key_press=
0xbf
;//掃瞄第二行
if(key_press!=
0xbf)
key_press=
0xdf
;//掃瞄第三行
if(key_press!=
0xdf)
key_press=
0xef
;//掃瞄第四行
if(key_press!=
0xef)}
return value;
}unsigned
char
keypro()
}
微控制器 矩陣鍵盤實現列掃瞄,數碼管輸出0 F
列掃瞄法類似行掃瞄法 話不多說,如下!矩陣鍵盤如下圖 列掃瞄涉及到與運算 與運算符號為 計算規則是 有0全為0,全1才為1 如 1111 0000 和 1011 0000進行與運算 1111 0000 1011 0000 運算結果 1011 0000 行掃瞄法 假設按下的是3號鍵 第1步 識別鍵盤有...
微控制器驅動數碼管
數碼管的原理?數碼管是分段控制點亮和熄滅的led段,數碼管分為共陽極以及共陰極,共陽極就是說數碼管的led段共乙個電壓正極,共陰極就是說所有的led段共乙個電壓負極。一般方法,乙個io控制公共段,共陽極為例子,給公共段施加乙個正電壓,其餘led段由io分開控制,想顯示多少,只需點亮對應的led段,即...
矩陣鍵盤 數碼管
在沒有數字顯示的開始,順序為矩陣鍵盤後,依次顯示的數碼管0 f,6同時數字控制靜態展示。數字控制和矩陣式鍵盤 首先關閉全部的數碼管的段選不讓數碼管顯示不論什麼數字。然後位選中全部的數碼管,接下來僅僅須要選中全部的數碼管,以後的操作的僅僅須要送段選資料即可了,接著進入while 大迴圈不停的掃瞄鍵盤是...