我用BA1FB的简易下载线,在小马软件中测试不能通过,但是可以把HEX成功下载到简易实验板上。我的实验板就一块M8和接在PB0和PB1上的两个LED,今天的实验中出现怪事,ISP下载线在线的时候同样是交替闪灯两个不同的程序,一个会影响工作一个不会,好生奇怪,希望有朋友帮忙分析。我还不会用软件仿真,无法分析。
第一个下载线接在实验板上不影响连续工作:
.include "m8def.inc"
.def dt=r22
.org 0
rjmp reset
reset:
ldi r16,$02
out sph,r16
ldi r16,$5f
out spl,r16
ldi r16,$ff
out ddrb,r16
ldi r16,$0
out portb,r16
start:
ldi r16,0b11111110
out portb,r16
rcall de500
ldi r16,0b11111101
out portb,r16
rcall de500
rjmp start
de500:ldi dt,50
rcall delay
ret
delay: push dt
del1: push dt
del2: push dt
del3:dec dt
brne del3
pop dt
dec dt
brne del2
pop dt
dec dt
brne del1
pop dt
ret
接下来尝试第二个程序:
.include "m8def.inc"
.def dt=r22
.org 0
rjmp reset
reset:
ldi r16,$02
out sph,r16
ldi r16,$5f
out spl,r16
ldi r16,$ff
out ddrb,r16
ldi r16,$0
out portb,r16
start:
cbi portb,0
sbi portb,1
rcall de500
sbi portb,0
cbi portb,1
rcall de500
rjmp start
de500:ldi dt,50
rcall delay
ret
delay: push dt
del1: push dt
del2: push dt
del3:dec dt
brne del3
pop dt
dec dt
brne del2
pop dt
dec dt
brne del1
pop dt
ret
两个程序的差别的是一个用立即数传递PB0和PB1的数据,另一个用置位和清零命令,后者复位后能连续闪几下就全暗了,要拔掉下载线才能连续闪烁工作。
恳请朋友们相助。谢谢先!