xxpp2011 发表于 2020-5-9 10:51 解决了,谢谢大佬 |
xxpp2011 发表于 2020-5-7 21:59 大佬,我按照你的程序修改了,但是现在反应开关按下只能显示一次了,按下其他开关没有 |
unsigned char times=0; void display() {if(key1==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[1]; dula=0; delayms(5); } if(key2==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[2]; dula=0; delayms(5); } if(key3==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[3]; dula=0; delayms(5); } if(key4==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[4]; dula=0; delayms(5); } if(key5==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[5]; dula=0; delayms(5); } if(key6==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[6]; dula=0; delayms(5); } } main() { while(1) { if(times<5) display(); } } |
gwy666 发表于 2020-5-8 20:26 //可能是按键按下一次识别了多次,你在每个if里面加一个判断按键松开的语句就好了。 if(key6==0) { times++; beep=0; wela=1; P0=0x3f; wela=0; P0=0xff; dula=1; P0=table[6]; dula=0; delayms(5); while(key6==0); //其他几个if下对应加上这句 } |