导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→各位高手帮我一把,看看程序为吗不会中断呀?[原创][jzkny]

 *第11108篇: 各位高手帮我一把,看看程序为吗不会中断呀?[原创]

  
楼 主:jzkny 2003年4月27日22:50
 各位高手帮我一把,看看程序为吗不会中断呀?[原创]
org 0000h
   clr p1.5
   sjmp zd0
   setb ea
   setb ex1
   org 0013h
   org 30h
   sjmp l13
 l13:  push psw
   jnb p1.0,zd1
   jnb p1.1,zd2
   jnb p1.2,zd3
   jnb p1.3,zd4
 l12:pop psw
   clr ea
   reti
 zd0:mov a,#0feh
l1: rr a
lcall l2
sjmp l1
l2:mov r2,#01h
l3:mov p0,a
lcall delay
mov p0,#0ffh
lcall delay
djnz r2,l3
ret
zd1:mov a,#0feh
l9: rl a
lcall l10
sjmp l9
l10:mov r2,#02h
l11:mov p0,a
lcall delay
mov p0,#0ffh
lcall delay
djnz r2,l11
ret
zd2:mov a,#0feh
l14: rr a
lcall l5
sjmp l14
l15:mov r2,#03h
l16:mov p0,a
lcall delay
mov p0,#0ffh
lcall delay
djnz r2,l16
ret
zd3:mov a,#0feh
l17: rr a
lcall l18
sjmp l17
l18:mov r2,#04h
l19:mov p0,a
lcall delay
mov p0,#0ffh
lcall delay
djnz r2,l19
ret
zd4:mov a,#0feh
l20: rr a
lcall  l21
sjmp l20
l21:mov r2,#05h
l22:mov p0,a
lcall delay
mov p0,#0ffh
lcall delay
djnz r2,l22
ret
delay:mov r3,#03h
l4:mov r4,#0c8h
l5:mov r5,#0c8h
l6:djnz r5,l6
l7:djnz r4,l5
l8:djnz r3,l4
ret
end
  
2楼:guest 2003年4月28日07:25
 你程序中在没有打开中断前就进入了死循环!
l1: rr a
lcall l2
sjmp l1
按照你的程序的执行顺序,到这儿就死循环了,但是你的中断允许标志还没有打开
  
3楼:Eastzsp 2003年4月28日08:16
 你的中断向量不正确,中断服务也不正确。
  
4楼:红心J 2003年4月28日09:53
 如果不用中断,可以这样
org 0000h
     SJMP MAIN
     org 30h
MAIN:clr p1.5
     mov a,#0feh
ZD00:RR A
     MOV R2,#5
     JNB P1.3,ZD01
     DEC R2
     JNB P1.2,ZD01
     DEC R2
     JNB P1.1,ZD01
     DEC R2
     JNB P1.0,ZD01
     DEC R2
     RL A
     RL A
ZD01:mov p0,a
     lcall delay
     mov p0,#0ffh
     lcall delay
     djnz r2,ZD01
     SJMP ZD00
     
delay:mov r3,#03h
   l4:mov r4,#0c8h
   l5:mov r5,#0c8h
   l6:djnz r5,l6
      djnz r4,l5
      djnz r3,l4
      ret
end
  
5楼:红心J 2003年4月28日11:06
 如果用中断,可以这样
org 0000h
     SJMP MAIN
     ORG 000BH
     LJMP A_T0
     ORG 0013H
     LJMP A_INT
     org 30h
MAIN:clr p1.5
     mov R7,#0feh
     MOV R0,#0
     MOV R1,#1
     MOV R2,#1
     MOV R5,#4
     MOV TMOD,#01H
     SETB TR0
     SETB ET0
     SETB IT1
     SETB EX1
     SETB EA
LOOP:ORL PCON,#1
     SJMP LOOP
A_INT:CLR EA
     MOV R2,#5
     JNB P1.3,A_I1
     DEC R2
     JNB P1.2,A_I1
     DEC R2
     JNB P1.1,A_I1
     DEC R2
     JNB P1.0,A_I1
     DEC R2
A_I1:SETB EA
     RET 
A_T0:MOV TL0,#220
     MOV TH0,#11
     DJNZ R5,A_TE
     MOV R5,#4
     DJNZ R1,A_TE
     MOV A,R2
     MOV R1,A
     DEC R0
     MOV A,R0
     MOV P0,#0FFH
     JB ACC.0,A_TE
     MOV A,R7
     CJNE R2,#2,A_T1
     RL A
     SJMP A_T2
A_T1:RR A
A_T2:MOV R7,A
     MOV P0,A 
A_TE:RETI

end


>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:S916G/GW/9803A 是什么ic芯片??

[下一篇主题]:[讨论]哪位能给个程序例子?