51单片机执行完外部中断0后,想让他返回主函数的开头从新执行,继续检测中断执行中断在返回主函数开头

51单片机执行完外部中断0后,想让他返回主函数的开头从新执行,继续检测中断执行中断在返回主函数开头,请问如何实现?如果在中断函数中最后调用软件复位函数可以吗... 51单片机执行完外部中断0后,想让他返回主函数的开头从新执行,继续检测中断执行中断在返回主函数开头,请问如何实现?如果在中断函数中最后调用软件复位函数可以吗 展开
 我来答
wjfhsym
2014-08-07 · TA获得超过945个赞
知道小有建树答主
回答量:475
采纳率:85%
帮助的人:304万
展开全部
你主函数中除了初始化的语句外,其它的处理部分都放在WHILE(1)的循环中啊,然后 外部中断中设置一个标志位,举例说明,比如。下面例子,是外中断一次,P0取反一次,你如果还想有其它数据处理,可以把语句写在WHILE(1)中。中断执行后,判断FLAG,然后会自动回到主函数中。

void main(void)
{
flag=0;
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1; //负跳变来触发外中断
P0=0xff;
while(1)
{
if(flag)
{

可以在此添加语句。
}

可以在此添加语句。 }
}

void it0(void) interrupt 0 using 0
{

P0=~P0; //每产生一次中断请求,P0取反一次。
flag=1;
}
追问
如果返回开头执行是不是把flag=0改成flag=1就可以了
追答
怎么样都可以,我写if(flag),只是举例而已,中断后不可能返回主函数第一句(初始化语句),只能从WHILE ,或者 判断 标志位那开始。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jmhyys
2014-08-07 · TA获得超过524个赞
知道小有建树答主
回答量:1052
采纳率:62%
帮助的人:284万
展开全部
这个思路不对吧?中断来了自然就去执行中断函数了,还要到主函数开头等待吗?
追问
执行完中断不是返回主函数中断的位置继续执行主函数吗,我想让它直接主函数返回开头
追答
实在要返回开头,,试试GOTO看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式