📄 key.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 + -