关于中断返回的问题,新手求教。。搞不明白了

2019-07-15 19:52发布

        ORG 0000H        AJMP START        ORG 000BH        AJMP tiME0        ORG 0030HSTART:   MOV P1,#0FFH              MOV TMOD,01H              MOV TH0,#15H              MOV TL0,#0A0H             SETB EA              SETB TR0              SETB ET0              SJMP $ LOOP: AJMP LOOP TIME0:   PUSH ACC             PUSH PSW             CPL P1.0             MOV TH0,#15H             MOV TL0,#0A0H             POP PSW             POP ACC        RETIEND 困惑的问题就是 当RETI中断返回后,它返回的是哪个语句,返回到哪里。。。            
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
依然落叶飘零
1楼-- · 2019-07-15 20:32
这段代码中RETI是定时器中断返回,他是定时器溢出触发的中断,它返回的不是固定语句。他返回的是触发中断的下一跳语句。例如主程序运行到一条语句LOOP1的时候,定时器刚好溢出了,触发中断,那么他返回的就是这条语句的下一条语句。至于每次返回在什么地方就要看他每次运行到哪里刚好定时器触发中断。
我是阿拿
2楼-- · 2019-07-15 22:43
依然落叶飘零 发表于 2014-5-7 10:58
这段代码中RETI是定时器中断返回,他是定时器溢出触发的中断,它返回的不是固定语句。他返回的是触发中断的 ...

还是不太明白,可不可以拿我写出来的程序讲解一下
依然落叶飘零
3楼-- · 2019-07-15 22:44
你还有有点不理解中断的概念,他和函数返回是不一样的,函数返回是返回到调用它的地方,而中断是不确定在什么时候时候触发的。主程序运行到哪里刚好中断,那个执行完中断后就返回到哪里。你程序因为SJMP $这条语句,程序一直运行在这里,因此中断返回都返回到这里。例外LOOP: AJMP LOOP这条语句不要,他和SJMP $是一样的意思,运行不到这里的。
我是阿拿
4楼-- · 2019-07-16 00:47
依然落叶飘零 发表于 2014-5-8 09:04
你还有有点不理解中断的概念,他和函数返回是不一样的,函数返回是返回到调用它的地方,而中断是不确定在什 ...

我写的那个例子,如果中断结束后,程序又重新计时开始了么?定时计数器自动重新开始的么?
依然落叶飘零
5楼-- · 2019-07-16 01:09
 精彩回答 2  元偷偷看……
a422061641
6楼-- · 2019-07-16 04:07
依然落叶飘零 发表于 2014-5-9 13:31
楼主还是对中断的概念有点不理解。首先单片机CPU是执行程序的指令,而定时器计数是不占用CPU的,也就是只 ...

看电影和吃药有趣,看完之后茅塞顿开!

一周热门 更多>