#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;//如果条件成立跳出while函数,但是没有跳出if(Trg&key_pc2)函数,所以一直display2(0)不知道我的理 //解对不对-------毕竟我的外号小白 } } display2(1); while(1) { if(num>20) { num=0; break; } } } } void ms() { TCNT1H=0XFF; TCNT1L=0X82; num++; }
主函数这么写
init();
int kkk=-1;while (1);{ KeyRead(); if (Trg&key_pc2) kkk=2; if (Trg&key_pc1)
kkk=1;
if(kkk==1)
display2(0)
if(kkk==2) display2(1); }
嗨,依照您的需求,改為以下即可
#define key_pc1 0X02 #define key_pc2 0X04 void KeyRead( void ) { unsigned char ReadData=PINC^0x06; Trg=ReadData&(ReadData^Cont); Cont=ReadData; } void delay() { while(1) { if(num>20) { num=0; break; } } } void main() { init(); while(1) { KeyRead(); if(Trg&key_pc2) { delay(); KeyRead(); if(Trg&key_pc2) { while(1) { display2(0); KeyRead(); if(Trg&key_pc1) { delay(); KeyRead(); if(Trg&key_pc1) { display2(1); break; } } } } } } } void ms() { TCNT1H=0XFF; TCNT1L=0X82; num++; }
以上供參考