求助关于51单片机两级中断嵌套的问题

[复制链接]
1671|3
 楼主| cleverland1991 发表于 2013-4-8 18:29 | 显示全部楼层 |阅读模式
  ORG 0000H
  AJMP MAIN
ORG 0003H
LJMP INTR
ORG 0013H
LJMP INTR1
ORG 0100H
MAIN:MOV SP,#60H
           MOV IE,#85H
          MOV IP,#01H
            MOV P1,#00H
   HERE:SJMP HERE
   INTR:MOV R2,#5
     D1:SETB P1.0
           ACALL DEL
           CLR P1.0
          ACALL DEL
            DJNZ R2,D1
           RETI
  INTR1:MOV R3,#5
     D1:SETB P1.1
           ACALL DEL
             CLR P1.1
          ACALL DEL
           DJNZ R3,D1
            RETI
    DEL:MOV R6,#200
    DEL1:MOV R5,#250
     DEL2:DJNZ R5,DEL2
                DJNZ R6,DEL1
                   RET
                  END
程序如上,出现的问题是执行完高级中断INT0后,回不到低级中断INT1中,求解呀,纠结了好久。                                  
betbet 发表于 2013-4-8 18:52 | 显示全部楼层
本帖最后由 betbet 于 2013-4-8 18:58 编辑

中断0与中断1调用了同一个延时函数引起的吧,两个中断分别搞两个专用的延时函数估计就好了。另外那个叫“D1”的分支怎么有两个的。。
 楼主| cleverland1991 发表于 2013-4-8 22:30 | 显示全部楼层
哦,第二个写错了应该是D2.,谢谢你!我试一下。
 楼主| cleverland1991 发表于 2013-4-11 15:06 | 显示全部楼层
我弄明白了,原来中断返回的时候寄存器中内容发生了变化,而程序中又没有保存寄存器的内容。谢谢回帖哦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部