寫了個單片機矩陣按鍵的程序,靈敏,但不知道如何實現判斷按鍵已經松手了,松手后執行另一條程序!
/***************************************************************/
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;
}
|