打印

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

[复制链接]
1334|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

粉丝