#define key_pc1 0X02
#define key_pc2 0X04
void KeyRead( void )
{
unsigned char ReadData=PINC^0x06;
ReadData=PINC^0x06;
Trg=ReadData&(ReadData^Cont);
Cont=ReadData;
}
void main()
{
init();
while(1)
{
KeyRead();
if(Trg&key_pc2)
{
while(1)
{
display2(0);
if(Trg&key_pc1)
break;
}
}
display2(1);
while(1)
{
if(num>20)
{
num=0;
break;
}
}
}
}
void ms()
{
TCNT1H=0XFF;
TCNT1L=0X82;
num++;
}
按下key_pc2后能显示 display2(0),但是再按key_pc1后不能跳出while,不能显示display2(1)。而且按键好像有问题,还没按动一下就跳了,我按网上在后面加了20ms的消抖啊 |