写了个单片机矩阵按键的程序,灵敏,但不知道如何实现判断按键已经松手了,松手后执行另一条程序!
/***************************************************************/
uchar KeyRvs(void)
{
uchar temH, temL,tem ,key1,key;
P1 = 0xf0; temH = P1;//低四位先输出0;读入,高四位含有按键信息
P1 = 0x0f; temL = P1;//然后反转输出0;读入,低四位含有按键信息
tem=temH+temL;
switch(tem)
{
case 0xee: key = 1; break;
case 0xde: key = 2; break;
case 0xbe: key = 3; break;
case 0x7e: key = 10; break; //A
case 0xed: key = 4; break;
case 0xdd: key = 5; break;
case 0xbd: key = 6; break;
case 0x7d: key = 11;break; //B
case 0xeb: key = 7; break;
case 0xdb: key = 8; break;
case 0xbb: key = 9; break;
case 0x7b: key = 12;break; //C
case 0xe7: key = 15;break; //F
case 0xd7: key = 0; break;
case 0xb7: key = 14;break; //E
case 0x77: key = 13;break; //D
// case 0xff: key = 16;break; //
}
return key;
}
|