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)外应该可以,出虾米问题? |