微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 串行中断服务程序

串行中断服务程序

时间:10-02 整理:3721RD 点击:
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

这个程序是怎么执行的,能实现要求的条件吗?

可以实现一次吧!
KWFLAG=2;之后呢!就永远啦!
http://bbs.elecfans.com/jishu_472128_1_1.html
我这个串口程序里面有段串口通讯程序,你可以参考一下。他还带回删功能。

条件语句应该用的不正确吧

缺条件,就是让KWFLAG=2后恢复0或者1的功能。

上一篇:微型四轴飞行器
下一篇:单片机密码锁

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top