關於獨立按鍵與矩陣按鍵的程式(51微控制器)
阿新 • • 發佈:2019-02-19
發一個51微控制器的鍵盤掃描程式,演算法簡單有效
再給大家分享一個不錯按鍵程式(來自ourdev)
/****************************************
鍵盤_不採用定時器_不延時
特點:
再給大家分享一個不錯按鍵程式(來自ourdev)
/****************************************
鍵盤_不採用定時器_不延時
特點:
按鍵在鬆手後有效,靈敏度高,消耗資源少,執行效率高
//獨立鍵盤.無按鍵動作時其返回值key_value=0,否則返回按鍵號key_value
uchar key_value;
void Key_Scan()
{
unsigned char temp=0;
static unsigned char temp_code=0;//
static unsigned char key_press=0;//
static unsigned char key_flag=0;//
temp=P3&0x0f;//
if(temp!=0x0f)//?????
{
key_press++;
if(key_press==10)//連續10次(10ms)低電平有效,則認為按鍵有效
{
key_press=0;
key_flag=1;//
temp_code=temp;//
}
}
else//鬆手以後進行按鍵操作
{
if(key_flag==1)//
{
key_flag=0;
switch(temp_code)//
{
case 0x0e: key_value=1;key_flag_s1=(key_flag_s1+1)%4;
break;
case 0x0d: key_value=2; key_flag_s2=(key_flag_s2+1)%4;
break;
case 0x0b: key_value=3;key_flag_s3=(key_flag_s3+1)%4;
break;
case 0x07: key_value=4;key_flag_s4=(key_flag_s4+1)%4;
break;
}
}
}
}