请高手帮忙,51单片机执行定时器0的中断程序后,需要大约15秒才能返回主程序断点处继续运行? 太奇怪了?

请高手帮忙看看这段小程序,51单片机响应定时器0的中断程序后,需要大约15秒才能返回主程序断点处继续运行?太奇怪了?这是什么原因?用仿真器仿真也是这样的结果,肯定不是芯片... 请高手帮忙看看这段小程序,51单片机响应定时器0的中断程序后,需要大约15秒才能返回主程序断点处继续运行? 太奇怪了?这是什么原因? 用仿真器仿真也是这样的结果,肯定不是芯片的问题,我换了块新的芯片仍然有这种现象。请各位高手指点,谢谢大家。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP D0
ORG 0030H
MAIN:
CLR P0.0;
MOV TMOD,#00000000B
MOV TH0,#0FFH
MOV TL0,#0FBH
SETB EA
SETB ET0
SETB TR0
LCALL DELAYTIME
CLR P1.0
LCALL DELAYTIME
SETB P1.0
LCALL DELAYTIME
CLR P1.0
LCALL DELAYTIME
SETB P1.0
CLR P1.3
SJMP $

D0:
CLR TR0
CLR P1.5
LCALL DELAYTIME
SETB P1.5
LCALL DELAYTIME
CLR P1.5
LCALL DELAYTIME
SETB P1.5
CLR P1.7
RETI

DELAYTIME:
MOV R0,#3
DELAYTIME1:
MOV R1,#0
DELAYTIME2:
MOV R2,#0
DJNZ R2,$
DJNZ R1,DELAYTIME2
DJNZ R0,DELAYTIME1
RET
END
又精确测试了一下,中断返回需要大约36秒才能返回到主程序继续运行,远远超出之前估计的15秒,我就是不理解,为什么中断返回需要这么长的时间,按理说应该很短暂的(应该就是几个机器周期而已啊)?
展开
 我来答
吴权泰
2012-02-09 · TA获得超过210个赞
知道小有建树答主
回答量:105
采纳率:100%
帮助的人:73.6万
展开全部
我懂了,经过我的仿真,当程序第一次进入DELAYTIME时,执行到R0=03,R0=00,R2=F0时,T0中断到了,这时中断程序调用了DELAYTIME,当执行完中断服务程序,这是R0变成了0,返回到之前的延时函数,此时R0=0,R1=0,R2=0,所以你的延时程序就变成了256*256*256=16秒了,所以成了你说的15秒后才执行完。 所以以后写中断程序注意断点的保护,把中断程序里有修改掉的寄存器先压栈保护,结束之前弹出来,这样就没事了。还有你在中断程序结束前没重新开启T0。还有在你的程序最好多点注释,这样看着不吃力。
追问
非常感谢,朋友!

请问朋友,您使用的是什么仿真器?

我的仿真器是硕飞的,无法仿真到这种程度,感觉我的这个仿真器不怎么好用,跟踪仿真的时侯无法检测到定时器0中断。
追答
我用的是Proteus 仿真软件。要跟踪中断程序,你得在中断程序入口设一个断点,然后点全速运行,这样才会进入中断程序,否则单步执行是进不去中断的。
zhxiufan
推荐于2017-10-18 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
不是几个周期,你在服务程序中有3个延时子程序调用,每一个延时如果是12M晶振的话,大约390毫秒,所以返回时间理论上约1.2秒左右。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c44e0b3
2012-02-09 · 超过20用户采纳过TA的回答
知道答主
回答量:107
采纳率:100%
帮助的人:19.8万
展开全部
汇编我有好几年没看,看到生疏,或许看错了,
你的主程序运行完了就等待了,你怎么检测它返回主程序了,你在等待这里做异个信号出来(可以把中段中的P1.7置0以后延时一下,在主程序等待这里他把重新置1看看)
看P1.7下降沿,到上升沿的时候历时多久
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
47okey
2012-02-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2410万
展开全部
不明白定时中断子程序里为什么要关掉TR0,关掉下次就进不去了。
D0:
CLR TR0 ;????????????
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式