熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時間: 2020-5-7 21:29
正文摘要:現(xiàn)在是按下key1后出現(xiàn)上面的情況,其他幾個按鍵也一樣。我現(xiàn)在想實(shí)現(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 單片機(jī)教程網(wǎng)