//键盘输入#pragma vector=PORT1_VECTOR__interrupt void keypush(void) { unsigned char pushkey; pushkey=P1IFG&(BIT1+BIT2+BIT3+BIT4); delay(20); if((P1IN&pushkey)==pushkey) { P1IFG=0; return; } if(pushkey&BIT1) { flag=1; //开始键按下标志,sign=0表示第一位密码输入 LED6ON; LED0OFF; P1IFG=0; return; } if(pushkey&BIT2) { delay(20); if(flag==1) { p++; flag=0; //结束键按下标志,结束键按下后,因flag值变化,输入点画此刻无效,知道再次开始输入第二个密码,flag变为有效值,可以继续检测 sign^=1; LED0ON; LED6OFF; if(p==2) { p=0; a
=' '; b[j]=' '; identify(); TACTL=MC_1+TACLR; waveout(code); waveout(code2); LED5ON; P1IFG=0; return; } } } if(pushkey&BIT3) { delay(20); if(flag==1) { if(sign==0) { a[i++]=0; } else if(sign==1) { b[j++]=0; } } } if(pushkey&BIT4) { delay(20); if(flag==1) { if(sign==0) { a[i++]=1; } else if(sign==1) { b[j++]=1; } } } P1IFG=0; return;}
此帖出自小平头技术问答
一周热门 更多>