单片机串口接收中断后,返回主程序重新执行,该如何设定????keil环境下~~

单片机串口接收中断后,返回主程序重新执行,该如何设定????keil环境下~~,第1张

可以定义一个全局变量标志,例如flag,初值为0。

一旦进入中断,就置位,flag=1。

程序里加个对flag的判断:if(flag) {flag=0return}//标志清零,返回主程序。

不过不知道你这程序是否复杂,如果子程序一层套一层的就可能比较麻烦,要加好多flag的判断。

1. 正式产品的C51程序应该是一个死循环。如果不是死循环,执行完main后,执行RET,将会将堆栈里的数据当做地址压入PC,程序跑错。最后会回到地址0000H,重新开始,进入main。你仿真在00H做中断,就会发现他回去了。

2. 你说的不清楚,跳转还是会跳转的。程序运行结果正确就说明没有错。除非你程序错误。如果你是在仿真时看到没有跳转,还是在那一行,那是他还有数据要处理,看汇编就知道了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12095084.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存