打印

请教

[复制链接]
1204|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
winger2008|  楼主 | 2007-11-10 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AC, ov, se, ps, vr
大家帮我看看这个51程序,
    org    0000h
    ajmp    main    
    org    0003h
    AJMP    IN2
    ORG    0013H
    AJMP    IN3
    org    0030h
main:    mov    ie,#85h
    mov    tcon,#05h
    mov    sp,#20h
    CLR    P3.1
    MOV    IE,10000101B
    MOV    IP,00000001B

START:    CLR    P2.4
rotate:    
    
    CPL    P2.4
    acall    delay
    ajmp    rotate
delay:    mov    r3,#0FFh
del:    mov    r4,#0FFh
    djnz    r4,$
    djnz    r3,del
    ret
    
IN2:    push    psw
    push    aCC
    setb    rs0
    CLR    rs1
    clr    ie0
    mov    r0,#09h
loop:    
    
    SETB    P2.4
    CLR    P2.3
    acall    delay
    acall    delay
    SETB    P2.3
    ACALL    DELAY
    acall    delay
    djnz    r0,loop
    pop    aCC
    pop    psw
    reti
IN3:    push    psw
    push    aCC
    setb    rs0
    CLR    rs1
    clr    ie1
    mov    r1,#0Fh
loop1:    
    
    SETB    P2.4
    SETB    P2.3
    CLR    P2.2
    acall    delay
    acall    delay
    SETB    P2.2
    ACALL    DELAY
    acall    delay
    djnz    r1,loop1
    pop    aCC
    pop    psw
    reti
    end


问题:当程序进入中断int0时,为什么当int1中断程序不能跳出并转入int1;
当程序进入int1时,为什么当int0中断程序不能跳出并转入int0
要实现进入int1中断的同时,如果发生int0中断程序转入int0,该怎么编写?
谢谢,请指教

相关帖子

沙发
maychang| | 2007-11-10 10:50 | 只看该作者

中断程序还能跳来跳去?那不是全乱了?

我猜想楼主的意思是:
当IN2中断例程被执行时,如果int1发生,在int0未执行完毕前得不到执行。
是不是这个意思?

使用特权

评论回复
板凳
winger2008|  楼主 | 2007-11-10 10:59 | 只看该作者

我的意思

我的意思是怎样能够实现中断的嵌套

使用特权

评论回复
地板
shura1206| | 2007-11-10 13:36 | 只看该作者

楼主的意思是不管优先级都能嵌套,对不?

 高级的嵌套在低级里,直接用就可以;
 低级的嵌套在高级里,可以在中断服务程序里置优先级.
 例如:
        ....
  main:
        ....
        mov ie,85h
        ....
  
  int0:
        setb px1
        ....
        reti

  int1:
        clr px1
        reti

使用特权

评论回复
5
winger2008|  楼主 | 2007-11-10 13:50 | 只看该作者

谢谢

谢谢,我试试,

使用特权

评论回复
6
ayb_ice| | 2007-11-10 14:03 | 只看该作者

51的中断嵌套是硬件完成的

使用特权

评论回复
7
shura1206| | 2007-11-10 14:10 | 只看该作者

可满足楼主要求的超强单片机

建议楼主用长沙启芯的LSX051系列单片机;
可同时支持2道程序运行,这样2个中断程序可以一起运行;

  main:
         mov ie,c5h     ;开中断赋能
         ...

  int0:
         reti
  int1:
         reti

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝