矩阵键盘扫描函数-线反转法
时间:10-02
整理:3721RD
点击:
/*********************************
函数名:keyscan()
功能描述:矩阵键盘扫描(线反转法)
入口参数:无
返回值:key为0-15键码,返回88为错误码。
包含子函数:delayms(unsigned int xms)
*********************************/
keyscan()//矩阵键盘扫描函数 开始
{
unsigned char x,y,key;
P3=0x0f;
if (P3!=0x0f)
{
delayms(10);
if (P3!=0x0f)
{
x=P3&0x0f;
P3=0xf0;
y=P3&0xf0;
key=x|y;
while(P3!=0xf0);
switch (key)
{
case 0xee: key=0;
break;
case 0xde: key=1;
break;
case 0xbe: key=2;
break;
case 0x7e: key=3;
break;
case 0xed: key=4;
break;
case 0xdd: key=5;
break;
case 0xbd: key=6;
break;
case 0x7d: key=7;
break;
case 0xeb: key=8;
break;
case 0xdb: key=9;
break;
case 0xbb: key=10;
break;
case 0x7b: key=11;
break;
case 0xe7: key=12;
break;
case 0xd7: key=13;
break;
case 0xb7: key=14;
break;
case 0x77: key=15;
break;
default: key=88;
break;
}
return key; /*返回值为:按键码*/
}
}
}//矩阵键盘扫描函数 结束
函数名:keyscan()
功能描述:矩阵键盘扫描(线反转法)
入口参数:无
返回值:key为0-15键码,返回88为错误码。
包含子函数:delayms(unsigned int xms)
*********************************/
keyscan()//矩阵键盘扫描函数 开始
{
unsigned char x,y,key;
P3=0x0f;
if (P3!=0x0f)
{
delayms(10);
if (P3!=0x0f)
{
x=P3&0x0f;
P3=0xf0;
y=P3&0xf0;
key=x|y;
while(P3!=0xf0);
switch (key)
{
case 0xee: key=0;
break;
case 0xde: key=1;
break;
case 0xbe: key=2;
break;
case 0x7e: key=3;
break;
case 0xed: key=4;
break;
case 0xdd: key=5;
break;
case 0xbd: key=6;
break;
case 0x7d: key=7;
break;
case 0xeb: key=8;
break;
case 0xdb: key=9;
break;
case 0xbb: key=10;
break;
case 0x7b: key=11;
break;
case 0xe7: key=12;
break;
case 0xd7: key=13;
break;
case 0xb7: key=14;
break;
case 0x77: key=15;
break;
default: key=88;
break;
}
return key; /*返回值为:按键码*/
}
}
}//矩阵键盘扫描函数 结束
不错的文件,值得收藏
