⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.c

📁 本人将一个4*4的矩阵键盘的扫描以及其防抖程序代码写出来了
💻 C
字号:

/*键盘扫描*/
unsigned char KeyScan(void){
   unsigned char key,key0;
   unsigned char key_sign1;
   unsigned char keypress;
   keyped_sign=0;
   key_sign1=0;
   while(key_sign1!=1){
   PTT=0x0F;
 	 keypress=PTT;
 	 if(keypress!=0x0F){
 	   Delay(500);
 	   PTT=K_ROW1;
 	   keypress=PTT;
 	   key=keypad(keypress,K_ROW1);
 	   if(key!=0xFF){
 	    key_sign1=1;key0=key;
 	   }
 	   PTT=K_ROW2;
 	   keypress=PTT;
 	   key=keypad(keypress,K_ROW2);
 	   if(key!=0xFF){
 	    key_sign1=1;key0=key;
 	   }
 		 PTT=K_ROW3;
 	   keypress=PTT;
 	   key=keypad(keypress,K_ROW3);
 	   if(key!=0xFF){
 	    key_sign1=1;key0=key;
 	   }
 		 PTT=K_ROW4;
 	   keypress=PTT;
 	   key=keypad(keypress,K_ROW4);
 	   if(key!=0xFF){
 	    key_sign1=1;key0=key;
 	   }
 	  } 
   }
   keyped_sign=1;
   return(key0);
 }
   unsigned char keypad(unsigned char keypress,unsigned char k_row){
      unsigned char key1;
      if(keypress!=k_row){
        key1=which_key(keypress);
      } 
      else{
        key1=0xFF;
      }
      return(key1);
   }
   unsigned char which_key(unsigned char keypress){
    unsigned char keynum;
    switch(keypress){
      case 0xE7: keynum=1;break;
      case 0xEB: keynum=2;break;
      case 0xED: keynum=3;break;
      case 0xEE: keynum=4;break;
      case 0x77: keynum=5;break;
      case 0x7B: keynum=6;break;
      case 0x7D: keynum=7;break;
      case 0x7E: keynum=8;break;
      case 0xB7: keynum=9;break;
      case 0xBB: keynum=0;break;
      case 0xBD: keynum=LEFT;break;
      case 0xBE: keynum=RIGHT;break;
      case 0xD7: keynum=UP;break;
      case 0xDB: keynum=DOWN;break;
      case 0xDD: keynum=CONFIRM;break;
      case 0xDE: keynum=CANCLE;break;
      default  : keynum=0xFF;
    }
    return (keynum);
   }
 /*键盘释放*/  
 void KeyRelease(void){
    unsigned char release,keypress;
    release=0;
    while(release!=1){
       PTT=0x0F;
       keypress=PTT;
       if(keypress==0x0F){
         Delay(1000);
         PTT=0x0F;
         keypress=PTT;
         if(keypress==0x0F){
          release=1;
         }
       }
    }
 }
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -