最近進(jìn)度比較慢,馬上要學(xué)習(xí)中斷和計(jì)時(shí)器了。遇到一個(gè)很郁悶的問(wèn)題,矩陣按鍵線反轉(zhuǎn)法在proteus中用現(xiàn)成的模塊就是實(shí)現(xiàn)不了,自己畫的矩陣模塊可以正常使用。不知道什么原因。
行列掃描---按鍵識(shí)別
原理比較簡(jiǎn)單:P2端口的低四位D0---D3置1,高四位D4-D7分別置0,順序執(zhí)行P2口的值
P2 端口的值 0xef 0xdf 0xbf 0x7f,利用按鍵底層驅(qū)動(dòng)中Key_Scan()函數(shù),得到返回鍵值
#define KEYPAD P2
KEYPAD = 0xef;
switch(Key_Scan())
{
case 1:
LEDBuf[3]=1;break;
case 2:
LEDBuf[3]=2;break;
case 3:
LEDBuf[3]=3;break;
case 4:
LEDBuf[3]=4;break;
default: break;
}
KEYPAD = 0xdf;
switch(Key_Scan())
{
case 1:
LEDBuf[3]=5;break;
case 2:
LEDBuf[3]=6;break;
case 3:
LEDBuf[3]=7;break;
case 4:
LEDBuf[3]=8;break;
default: break;
}
.........
線反轉(zhuǎn)法--按鍵識(shí)別
1.首先,我們將所有行設(shè)置為邏輯0,將所有列設(shè)置為邏輯1。
P2口的低四位連接矩陣按鍵4行上,高四位連接矩陣按鍵4列上
2.每當(dāng)我們按下一個(gè)按鈕時(shí),對(duì)應(yīng)于該按鈕的列和行都會(huì)短路,并使對(duì)應(yīng)的列達(dá)到邏輯電平0??梢源_定列號(hào)
3.同理我們將所有列設(shè)置為邏輯0,將所有行設(shè)置為邏輯1。按下一個(gè)按鈕時(shí),該按鈕的列和行都會(huì)達(dá)到邏輯0.可以確定行號(hào)
4.把行號(hào)和列號(hào)通過(guò)邏輯與操作連接起來(lái),和行列編碼數(shù)組比較,得到按鍵返回值
#include "Key.h"
u8 Key_Scan()
{
u8 temp,temp2,keycode,i;
static u8 KeyNum = 0;//初始化顯示0
u8 KEYCODE[]= //按鍵行列編碼
{0XEE,0XDE,0XBE,0X7E,
0XED,0XDD,0XBD,0X7D,
0XEB,0XDB,0XBB,0X7B,
0XE7,0XD7,0XB7,0X77};
KEYPORT = 0xf0;//4列置1,4行置0
temp = KEYPORT ;//讀P2口
if(temp!=0xf0)//判斷是否有按鍵按下
{
DelayXms(10);
if(temp!=0xf0)//再次判斷是否有按鍵按下
{
temp=KEYPORT & 0xf0;//取高4位,取列數(shù)
KEYPORT = 0x0f;//低4位寫1,高四位取0,線反轉(zhuǎn)
temp2 = KEYPORT & 0x0f;//取低四位,取行號(hào)
keycode = temp | temp2;//高四位和第四位(行列)組合到一起
for(i=0;i<16;i++)
{
if(keycode == KEYCODE[i])
{
KeyNum = i;
return KeyNum;
}
}
}
}
return KeyNum;
}
-
中斷
+關(guān)注
關(guān)注
5文章
905瀏覽量
42706 -
計(jì)時(shí)器
+關(guān)注
關(guān)注
1文章
432瀏覽量
33673 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64694 -
按鍵識(shí)別
+關(guān)注
關(guān)注
0文章
10瀏覽量
7059 -
矩陣按鍵
+關(guān)注
關(guān)注
0文章
28瀏覽量
8503
發(fā)布評(píng)論請(qǐng)先 登錄
消除按鍵抖動(dòng)的兩種方法分享
pcb庫(kù)封裝常用的兩種方法
STM32操作矩陣鍵盤的兩種方法
關(guān)斷檢流放大器的兩種方法
檢查電池剩余電量的兩種方法
AODV協(xié)議中解決斷鏈問(wèn)題的兩種方法

使用jdbc連接上oracle的兩種方法
語(yǔ)音識(shí)別的兩個(gè)方法_語(yǔ)音識(shí)別的應(yīng)用有哪些
矩陣鍵盤的按鍵識(shí)別方法_矩陣鍵盤掃描程序
STM32操作矩陣鍵盤的兩種方法——掃描和中斷

簡(jiǎn)述安裝打印機(jī)驅(qū)動(dòng)的兩種方法

評(píng)論