#include<reg51.h>
//k2~k4 分别控制le1~le4
void delay(unsigned int x)
{
while(x--);
}
void key_event (unsigned char d)
{
switch(d)
{
case 14: P1^=(1<<0); break; //k1
case 13: P1^=(1<<1); break;//k2
case 11: P1^=(1<<2); break;//k3
case 7: P1^=(1<<3); break; //k4
//
default: P1^=(1<<7); break;
}
}
void key()
{
static char i;
unsigned char a;
unsigned char b;
a=P2;//0000aaaa ,00007654 3210;
a>>=4;//a=a>>4;
if(a!=15)//至少有个键按下
{
if(i==0)
{
delay(1000);
b=P2;
b>>=4;
if(a==b)
{
key_event(b) ;
i=1;
}
}
}
else
{
i=0;
}
}
void main()
{
while(1)
{
key();
}
}
谢谢
你好为什么要a==b按键才有效呢