/* 独立键盘 */
/********************************************************
#define S7 0x01
#define S6 0x02
#define S5 0x04
#define S4 0x08
bit Key_flg;
u8 Trg,Cont;
void Key_ThreeLine()
{
u8 ReadData = P3 ^ 0xff;
Trg = ReadData & (ReadData ^ Cont);
Cont = ReadData;
}
void Key_Scan()
{
if(Key_flg)
{
Key_flg = 0;
Key_ThreeLine();
switch(Trg)
{
case S7:break;
case S6:break;
case S5:break;
case S4:break;
}
}
}
************************************************************/
/* 矩阵键盘 */
/********************************************************
#define S7 0x81
#define S6 0x82
#define S5 0x84
#define S4 0x88
#define S11 0x41
#define S10 0x42
#define S9 0x44
#define S8 0x48
#define S15 0x21
#define S14 0x22
#define S13 0x24
#define S12 0x28
#define S19 0x11
#define S18 0x12
#define S17 0x14
#define S16 0x18
bit Key_flg;
u8 Trg,Cont;
u8 Get_KeyValue()
{
u8 key = 0xff;
P3 = 0xf0;P4 = 0xff;
if(P44 == 0) key = 0x70;
if(P42 == 0) key = 0xb0;
if(P35 == 0) key = 0xd0;
if(P34 == 0) key = 0xe0;
P3 = 0x0f;P4 = 0x00;
if(P33 == 0) key |= 0x07;
if(P32 == 0) key |= 0x0b;
if(P31 == 0) key |= 0x0d;
if(P30 == 0) key |= 0x0e;
return key;
}
void Key_ThreeLine()
{
u8 ReadData = Get_KeyValue() ^ 0xff;
Trg = ReadData & (ReadData ^ Cont);
Cont = ReadData;
}
void Key_Scan()
{
if(Key_flg)
{
Key_flg = 0;
Key_ThreeLine();
switch(Trg)
{
case S7:break;
case S6:break;
case S5:break;
case S4:break;
case S11:break;
case S10:break;
case S9:break;
case S8:break;
case S15:break;
case S14:break;
case S13:break;
case S12:break;
case S19:break;
case S18:break;
case S17:break;
case S16:break;
}
}
}
************************************************************/