1. 程式人生 > >關於獨立按鍵與矩陣按鍵的程式(51微控制器)

關於獨立按鍵與矩陣按鍵的程式(51微控制器)

發一個51微控制器的鍵盤掃描程式,演算法簡單有效 
                                      再給大家分享一個不錯按鍵程式(來自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;