串行中断服务程序
时间: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
这个程序是怎么执行的,能实现要求的条件吗?
{
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的功能。