单片机中断返回及时间问题

我要问的内空在这里:程序的执行过程是怎么的。RRT:RETI这个是中断返回后接下来执行那个程序。10个的光冲是怎么到出来的。谢谢。。。 请阅读下列程序。写出程序运行结果。40、如8031单片机时钟频率6MHz,在P1.0口接一个红外LED发光二极管,P1.0低电平 时亮。运行以下程序后,INT0每中断一次(两次中断间隔时间足够大),LED将发送 宽度为__0.4__ms的光脉冲__10___个。 ORG 0000H LIMP BEG ORG 0003H ;外中断0中断入口 MOV R7.#20 SETB TRl RETI ORG 001BH ;定时器1中断人口 CPL P1.0 DJNZ R7.RRT CLR TRl SETB Pl.0RRT:RETIBEG: MOV TMOD.#20H MOV THl,#56 ;产生400US等待 MOV TLl,#56 MOV IE.#89H SJMP $
2026年09月15日 20:50
有1个网友回答
网友(1):

程序一开始 就进入了 BEG 设定了定时器的初值以后 MOV IE,#89H 允许全局中断和TIME1 INT0中断.然后要做的就是死循环 直到外部中断的发生 在中断中 给R7了一个20(这个标志着随后定时器的中断次数)随后开定时器 并退出中断 这时定时器将按照开始给的值跑400us 然后发生TIME0中断 翻转IO口

if(R7 != 0) JMP RRT
else 顺序执行 关TIME0 关LED 返回

因为R7 = 20 然后自减 所以 我们可以理解 进入TIME0中断了20次 也可以想到P10被翻转了20次 亮10次灭10次 最后1次 关LED 关TIME0 当再有INT0发生时定时器又被打开了 如此循环

请问楼主这是哪来的题目 .... 出这题的人很无聊!请给分 谢谢!