![]() |
發(fā)布時間: 2020-5-7 21:29
正文摘要:現(xiàn)在是按下key1后出現(xiàn)上面的情況,其他幾個按鍵也一樣。我現(xiàn)在想實現(xiàn)只有前5次按下開關(guān)會顯示,以后按下都沒有反應(yīng),程序改怎樣修改 #include<reg51.h> #define uchar unsigned char #define uint unsign ... |
xxpp2011 發(fā)表于 2020-5-9 10:51 解決了,謝謝大佬 |
xxpp2011 發(fā)表于 2020-5-7 21:59 大佬,我按照你的程序修改了,但是現(xiàn)在反應(yīng)開關(guān)按下只能顯示一次了,按下其他開關(guān)沒有 |
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 發(fā)表于 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下對應(yīng)加上這句 } |
Powered by 單片機教程網(wǎng)