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

📄 key.h

📁 温度传感器
💻 H
字号:
/**************************************************
4x4键盘库说明:
扫描得到的键值为nkeynumber,如果键值与实物的数字要排列不相符合,
只需改变SWItCH的跳转值即可。
扫描过程说明:先送一个行号0,其它为1,然后判断一次列号。如此将
四个行号都送一次0后,即可判断键值。
**************************************************/
#ifndef _key_h_
#define _key_h_


/***************延时程序***************/
void delay10ms()
{unsigned int k;
for(k=50;k>0;k--)
;
}
/***************键盘扫描***************/
unsigned char kbscan()
 {unsigned char i,j,nkeynumber=16;
  unsigned char pin1;
  
 for(i=0;i<4;i++)
 for(j=0;j<4;j++)
      {      P1=0xff&(~(0x01<<(3-i)));
             delay10ms();
             pin1=P1;
             if(((pin1>>(4+j))&0x01)==0)
             {nkeynumber=i+j*4;}
      }
      return (nkeynumber);

}
/***************************防抖动处理**********************************************/
unsigned char kbscan1()
{   unsigned char u;
    u=kbscan();
    while ((u==kbscan())&&(u!=16)) //在没有按键时返回值是16,在有按键时返回值与前一次一样就循环,
    { ;
    }
    
switch(u)
    
 {  case 0x00: return(15);  break;
    case 0x01: return(14);  break;
    case 0x02: return(13);  break;
    case 0x03: return(12);  break;  
    case 0x04: return(11);  break;
    case 0x05: return(10);  break;
    case 0x06: return(9);  break;
    case 0x07: return(8);  break;
    case 0x08: return(7);  break;
    case 0x09: return(6);  break;
    case 0x0a: return(5); break;
    case 0x0b: return(4); break;
    case 0x0c: return(3); break;
    case 0x0d: return(2); break;
    case 0x0e: return(1); break; 
    case 0x0f: return(0); break;
  }
    return (16);
    
}

#endif

⌨️ 快捷键说明

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