|
發(fā)布時間: 2020-3-23 21:00
正文摘要:按鍵點亮LED燈條,鍵號越大點亮的越多。在主函數(shù)中 , P2=LED2;P3=LED3; 放在if(key!=-1)中才可以保持按鍵值,否則按鍵彈上去后就恢復(fù)到原始狀態(tài),為什么放直接在while(1)中就不行呢 |
|
從道理來講,LED保存的值只有在按鍵按下時會被修改,因此,不存在按鍵判斷外被修改的可能,因此,是可以放在按鍵判斷外. 之所以看到按鍵按下與釋放不同的結(jié)果,是因為循環(huán)太快的緣故,當(dāng)放下按鍵時的值可能是隨機的. |
| 參與人數(shù) 1 | 黑幣 +50 | 收起 理由 |
|---|---|---|
|
| + 50 | 回帖助人的獎勵! |
xianfajushi 發(fā)表于 2020-3-24 08:37 如果直接放在外面,LED只有在按下鍵不松開的時候才亮,鍵彈上來后就又恢復(fù)到原始滅的狀態(tài) |
本帖最后由 DEVOTION 于 2020-3-24 10:38 編輯 黎明初至 發(fā)表于 2020-3-24 08:47 hcode的初值是0xfe,設(shè)在for循環(huán)外面的,如果 按下的行不是P1.0,就會執(zhí)行else,hcode的值左移 |
|
你的邏輯編寫有問題,key_scan()中仔細看看 for(j=0;j<4;j++) { P1=hcode; if((P1&0xf0)!=0xf0) { zcode=~P1; //取反判斷行坐標(biāo) for(i=0;i<16;i++) { if(zcode==table) return i; } } else hcode=_crol_(hcode,1); } 循環(huán)下 P1=hcode;每次都重新賦值,那4次掃描有什么不同。 |
| 單獨把 P2=LED2; P3=LED3;放在 if(key!=-1)外應(yīng)該可以,出蝦米問題? |
Powered by 單片機教程網(wǎng)