📄 zh9.asm
字号:
.device AT90S8535
.equ sph =$3E
.equ spl =$3D
.equ OCR1BH =$29
.equ OCR1BL =$28
.equ TCCR1A =$2F
.equ TCCR1B =$2E
.equ PORTA =$1B
.equ DDRA =$1A
.equ PINA =$19
.equ PORTB =$18
.equ DDRB =$17
.equ PINB =$16
.equ PORTD =$12
.equ DDRD =$11
.equ PIND =$10
.equ ADMUX =$07
.equ ADCSR =$06
.equ ADCH =$05
.equ ADCL =$04
.def ZH =r31
.def ZL =r30
.org $0000
rjmp reset
reset: ldi r16,$02 ;栈指针置初值
out sph,r16
ldi r16,$5f
out spl,r16
ldi r16,$07 ;第7路ADC
out ADMUX,r16
ldi r18,$e5 ;允许ADC,启动ADC,自由模式
out ADCSR,r18 ;64分频作A/D时钟
ldi r16,$03 ;8分频
out TCCR1B,r16
ldi r16,$23 ;OC1B口10位正向PWM输出
out TCCR1A,r16
sbi DDRD,4 ;PD4(OC1B)引脚定义为输出
rcall t2ms
;**********************************************************
aa: in r16,ADCL ;读A/D结果放入r17、r16中
in r17,ADCH
out OCR1BH,r17 ;设占空比为$200/$3FF
out OCR1BL,r16
rjmp aa
;**********************************************************
t2ms: ldi r24,101 ;延时2ms子程序
push r24
del2: push r24
del3: dec r24
brne del3
pop r24
dec r24
brne del2
pop r24
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -