nop /rjmp EE_RDY - прерывание от таймера
nop /rjmp ANA_COMP - прерывание от компаратора
nop /rjmp ADC - прерывание от АЦП
.org 20
/настройка порта В RESET: пор
clr tmp
70
Глава 3
Листинг 3.1. Продолжение
out |
DDRB, tmp |
|
out |
PORTB, tmp /обнулить порт 3 |
|
clr |
tmp |
|
ldi |
tmp, content>F /РВ0- |
■3 -зыход |
out |
DDRB, tmp |
|
clr |
tmp |
|
out |
PORTA, tmp /РА0- |
•вход |
out |
DDRA, tmp |
|
/настройка программного стека |
||
ldi |
tmp, low(RAMEND) |
/указатель |
out |
SP, tmp |
; полный ст< |
;Начало программы |
||
nStart: |
nop |
|
/сброс всех |
значений |
|
clr |
tmp |
|
clr |
tmp2 |
|
clr |
tmp3 |
|
clr |
Hbt |
|
clr |
Lbt |
|
clr |
prgl |
|
clr |
prg2 |
|
clr |
D |
|
/вход в подпрограмму опроса АЦП |
||
rcall |
adcn ; подпрограт |
т АЦП |
nop |
rcall arifm /подпрограмма арифметических действий D пор
/логические действия cln els
cpi D, breq vlev nop
brge vprav /равно 10. Ветка "Стоп" nop
rcall stop /переход к подпрограмме "Останов" nop
rjmp rr /ветка "Влево" vlev: nop
rcall timo
nop
rcall vlevo /переход к подпрограмме "Злезо" nop
Управление шаговым двигателем
71
Листинг 3.1. Продолжение
rjmp г г пор
;ветка "Вправо" vprav: пор
rcall time
пор
rcall vpravo rr: nop
rjmp nStart
;переход к подпрограмме "Вправо" ;переход в начало программы
;Подпрограммы обработки данных ;Настройка АЦП adcn:
пор |
||
пор |
||
clr |
tmp |
|
пор |
||
cpi |
tmp, |
|
brsh |
ass |
|
clr |
tmp3 |
|
ldi |
tmp3, ObOOOOOOOO |
;напряжение |
out |
ADMUX, tmp3 |
;коммутация |
clr |
tmp2 |
|
clr |
tmp3 |
|
ldi |
tmp2, ОЫ1000101 |
;одиночное, |
out |
ADCSR, tmp2 |
;запуск АЦП |
ВХОД ADC0
запуск, 1/32
.•Сохранение данных АЦП
пор |
||
пор |
||
пор |
||
пор |
||
пор |
||
пор |
||
пор |
||
пор |
||
in |
tmp2, ADCL |
|
in |
tmp3, ADCH |
|
mov |
r2, |
tmp 2 |
mov |
r3, |
tmp3 |
mov |
r4. |
r2" |
mov |
r5, |
r3 |
mov |
r6, |
r4 |
mov |
r7. |
r5 |
inc |
tmp |
|
rjmp |
awe |
;задержка
;чтение младшего регистра данных АЦП ;чтение старшего регистра данных АЦП
;среднее арифметическое ass: пор
72
Глава 3
Листинг 3.1. Продолжение
clr г8 clc
add tmp2, r2
adc r9, r8
add tmp2, r4
adc r9, r8
add tmp2, гб
adc r9, r8 clc
Isr r9
ror tmp2 ;младший ^айт
Isr r9
ror tmp2
clr r9
clc
add tmp3, r3
adc r9, r8
add tmp3, r5
adc r9, r8
add tmp3, r7
adc r9, r8 clc
Isr r9
ror tmp3 ; старший байт
Isr r9
ror tmp3
nop
ret
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |