请问一下 关于51单片机的中断

2019-07-15 16:05发布

主函数正在执行程序,突然外部中断了,此时主函数这边被压入堆栈,跑去执行中断函数
我希望运行完中断函数后,不跳回主函数正在执行的那段,而是从主函数另一个指定位置开始执行,怎么做?
比如:
  1. void main()
  2. {
  3.         while(1)                //主函数的大循环内,有很多行代码,这里先忽略
  4.         {
  5.                 ....                //不知程序运行到什么地方,这时外部中断被触发了  
  6.                 ......                //假设这里是中断点---被压入堆栈
  7.                 .......
  8.         }
  9. }
  10. void init() interrupt 0
  11. {
  12.         .....
  13.         ......                   //我希望程序运行完成中断函数后,不返回主函数的大循环内,而是跳到while(1)的上一条语句
  14.         .......                       
  15. }
复制代码


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
yh3263016
1楼-- · 2019-07-17 11:37
解决问题没有,我也想要这样的代码
sxzu
2楼-- · 2019-07-17 16:27
的确可以这么玩,中断嵌套的感觉,发挥了ASM灵活访问寄存器的有点
QWER_DF
3楼-- · 2019-07-17 19:49
 精彩回答 2  元偷偷看……
123longa123
4楼-- · 2019-07-17 20:53
学习了
music_mc
5楼-- · 2019-07-18 02:13
QWER_DF 发表于 2017-7-29 20:58
楼主在用定时器时,进入中断函数需不需要判断TF0==1?? 或者例如
void timer_0()interrupt 1
{

TF0不需要检测
TH0和TL0也不需要重装初值

一周热门 更多>