串行中断服务程序

2019-07-15 17:29发布

void   ZHX1010_int(void)interrupt4
{
uchar key1;
if(RI) //如果为接收中断
{
  key1=SBUF;//读接收寄存器数据
  RI=0;//清接收标志位
  if((KWFLAG==0)&&(key1=KEYWORD[0])) //密码正确时,置标志位key_FLAG为1
  {
   KWFLAG=1;
  }
   else  if ((KWFLAG ==1)&&(key1!=KEYWORD[1])) //密码正确第二位错误时清标志位
    {
   KWFLAG=0;
     }
     else  if ((KWFLAG==1)&&(key1==KEYWORD[1])) //密码正确时,置标志位key_FLAG为2
     {
      KWFLAG=2;
     }
}
}


其中
uchar     KEYWORD[2]={0xaa,0xbb};


当第一个密码正确时,设置标志位为1,当第一位正确第二位错误时,清标志位,只有当两个密码都正确时才设置标志位为2


这个程序是怎么执行的,能实现要求的条件吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。