这是我的代码。我需要在板上放置一个上拉电阻,以便 INT0 标志将我发送到转换,然后在 PORTB 上打印它。我在 PC0 上使用 ADC0,但它不起作用。PORTB 上只打印了一个值。你能帮助我吗?
.include "m328pdef.inc"
.org 0x0000 jmp startProgram
.org 0x0002 jmp int0_int
.org 0x002A jmp adcComplete
startProgram:
.org 0x0033
// Configuracion de Stack Pointer y Timer0
ldi R16, High(RAMEND)
out SPH, R16
ldi R16, Low(RAMEND)
out SPL, R16
// Configuracion INT0
ldi r16, 0x02
sts EICRA, R16
ldi r16, 0x01
out EIMSK, R16
sts EIFR, R16
// Configuracion del ADC
ldi R16, 0x60
sts ADMUX, R16
ldi r16, 0xFF
sts ADCSRA, R16
ldi r16, 0x02
sts ADCSRB, R16
ldi r16, 0x01
sts DIDR0, R16
SEI
// Inicializando Puerto B
ldi R16, 0xFF
out DDRB, R16
ldi R16, 0x04
out DDRD, R16
// Rutina de espera del ADC
loop:
rjmp loop
int0_int:
reti
adcComplete:
lds R16, ADCH
cpi R16, 63
brlo low_adc
cpi R16, 127
brlo med_adc
cpi R16, 191
brlo high_adc
cpi R16, 191
brsh full_adc
reti
low_adc:
ldi R17, 0xFF
out PORTB, R17
reti
med_adc:
ldi R17, 0x3F
out PORTB, R17
reti
high_adc:
ldi R17, 0x0F
out PORTB, R17
reti
full_adc:
ldi R17, 0x03
out PORTB, R17
reti