📄 8515pwm.asm
字号:
;用AT90S8515的PWM控制直流电机调速
.include"8515def.inc" ;
.def temp=r16
.def temp1=r19
.def result=r17
.def temp2=r18
.org $0000
rjmp reset
.org $0030
reset: ldi temp,$02
out sph,temp
ldi temp,$5f
out spl,temp
ldi r20,$ff ;设置c口为输出
out ddrc,r20
ldi r20,$f0
out ddrb,r20
out portb,r20
clr r20
out portc,r20
adc: clr temp
loop1: out portc,temp
nop
nop
nop
in temp1,acsr
sbrs temp1,$05
rjmp naco
rjmp haco
naco: inc temp
brne loop1
ldi temp,$ff
haco: mov result,temp
ldi temp,0b00100001 ;上数达到OC1B=0下数达到OC1B=1。8位PWM模式。
out tccr1a,temp
ldi temp,0b00000010 ;采用CK/8分频。
out tccr1b,temp
ldi temp,$00 ;设置$0150
out ocr1bh,temp
out ocr1bl,result
rcall del
rjmp adc
del: ldi temp2,10 ;延时子程序
del1: push temp2
del2: push temp2
del3: push temp2
del4: dec temp2
brne del4
pop temp2
dec temp2
brne del3
pop temp2
dec temp2
brne del2
pop temp2
dec temp2
brne del1
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -