*第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
按照你的程序的执行顺序,到这儿就死循环了,但是你的中断允许标志还没有打开
你的中断向量不正确,中断服务也不正确。
第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