![]() |
發布時間: 2020-3-23 21:00
正文摘要:按鍵點亮LED燈條,鍵號越大點亮的越多。在主函數中 , P2=LED2;P3=LED3; 放在if(key!=-1)中才可以保持按鍵值,否則按鍵彈上去后就恢復到原始狀態,為什么放直接在while(1)中就不行呢 |
xianfajushi 發表于 2020-3-24 08:37 如果直接放在外面,LED只有在按下鍵不松開的時候才亮,鍵彈上來后就又恢復到原始滅的狀態 |
本帖最后由 DEVOTION 于 2020-3-24 10:38 編輯 黎明初至 發表于 2020-3-24 08:47 hcode的初值是0xfe,設在for循環外面的,如果 按下的行不是P1.0,就會執行else,hcode的值左移 |
你的邏輯編寫有問題,key_scan()中仔細看看 for(j=0;j<4;j++) { P1=hcode; if((P1&0xf0)!=0xf0) { zcode=~P1; //取反判斷行坐標 for(i=0;i<16;i++) { if(zcode==table) return i; } } else hcode=_crol_(hcode,1); } 循環下 P1=hcode;每次都重新賦值,那4次掃描有什么不同。 |
單獨把 P2=LED2; P3=LED3;放在 if(key!=-1)外應該可以,出蝦米問題? |