nop ;rjmp TIME_CMPB - прерывание от таймера
nop ;rjmp TIME_0VF1 - прерывание от таймера
nop ;rjmp TIME_OVF0 - прерывание от таймера
nop ;rjmp UCI_START - прерывание от USI
nop ;rjmp UCI_OVF - прерывание от USI
nop ;rjmp EE_RDY - прерывание от таймера
nop ;rjmp ANA_COMP - прерывание от компаратора
nop ;rjmp ADC - прерызание от АЦП
.org 20
|
;настройка |
порта В |
|
|
RESET: nop |
||
|
clr |
tmp |
|
|
ldi |
tmp, $0F |
;PBO-3 -зыход |
|
out |
DDRB, tmp |
|
|
out |
PORTB, tmp |
/обнулить порт В |
|
clr |
tmp |
|
|
ldi |
tmp, $F0 |
;PA4-7 -зыход |
|
out |
DDRA, tmp |
|
|
clr |
tmp |
|
|
out |
PORTA, tmp |
.•обнулить порт А |
|
;настройка |
программного стека |
|
|
ldi |
tmp, low(RAMEND) |
.•указатель стека |
|
out |
SP, tmp |
.•полный стек |
;Начало программы
nStart: пор
;сброс всех значений
clr tmp
clr tmp2
clr tmp3 ,-зход в подпрограмму опроса АЦП1
nop
ldi adcl, $40 ;источник п/.тания, ADCO, ldi adc2, SC5 .-одиночное, запуск, 1/32 .•опрос уровня освещенности real! adcn
Робот "Охотник за светом"
221
Листинг 9.1. Продолжение
mov dl, tmp2 /загрузка младшего разряда
mov d2, tmp3 /загрузка старшего разряда
/зход в подпрограмму опроса АЦП2 пор
ldi add, $40 /источник питания, ADC0, ldi adc,2, $С5 /одиночное, запуск, 1/32 /опрос уровня освещенности rcall adcn
mov SI, tmp2 /загрузка младшего разряда
mov S2, tmp3 /загрузка старшего разряда
/вычитаниеи F=D-S nop
rcall arifm /подпрограмма ариметических действий
nop
/проверка области значений +-10 /освещенность местности - день
brbs 2, min /переход по "отрицательное"
пор els cpi
$0А
brio pram пор
rjmp vlevo nop cln els cpi
F, $0A
breq pram nop
brge vpravo nop
rjmp nStart nop
vlevo: nop
rcall SS nop
ldi Fl, $0A nus: nop
rcall onevlev nop
rcall zader
nop
clz
dec Fl brio nus nop
/переход по "меньше +10"
/переход по "больше, положительное"
/переход по "меньше -10"
/переход по "больше, отрицательное"
;переход влево /10 шагов
/подпрограмма "ШД1 шаг, ЩЦ2 2 шага" /подпрограмма задержки
222
Глава 9
|
Листан |
г $М, П] |
эодолжение |
||11Ш111|111111М11^^И111111111^в1 |
|
rjmp |
nStart |
||
|
vpravo |
nop |
;переход влево |
|
|
rcall |
SS |
||
|
nop |
|||
|
ldi |
Fl, $0A |
;10 шагов |
|
|
nip: |
nop |
||
|
rcall |
onevprav |
;подпрограмма "ШД1 2 шага, ШД2 |
|
|
nop |
|||
|
rcall |
zader |
;подпрограмма задержки |
|
|
nop |
|||
|
clz |
|||
|
dec |
Fl |
||
|
brio |
nip |
||
|
nop |
|||
|
rjmp |
nStart |
||
|
pram: |
nop |
;переход влево |
|
|
rcall |
SS |
||
|
nop |
|||
|
ldi |
Fl, $0A |
;10 шагоз |
|
|
not: |
nop |
||
|
rcall |
onestep |
;подпрограмма "ШД1 шаг, ШД2 2 |
|
|
nop |
|||
|
rcall |
zader |
;подпрограмма задержки |
|
|
nop |
|||
|
clz |
|||
|
dec |
Fl |
||
|
brio |
not |
||
|
nop |
|||
|
rjmp |
nStart |
;переход в начало программы |
|
|
;Подпрограммы обработки данных |
|||
|
;Настройка АЦП |
|||
|
adcn: |
nop |
||
|
nop |
|||
|
clr |
tmp |
||
|
awe: |
nop |
||
|
cpi |
tmp, $04 |
||
|
brsh |
ass |
||
|
out |
ADMUX, adcl |
;коммутация зходоз АЦП |
|
|
clr |
tmp2 |
||
|
clr |
tmp3 |
||
|
out |
ADCSR, adc2 |
;запуск АЦП на преобразование |
|
|
;Сохранение |
данных АЦП |
||
|
in |
tmp2, ADCL |
||
|
in |
tmp3, ADCH |
||
|
mov |
r2, Lmp2 |
||
Робот "Охотник за светом"
| Реклама: |
| Продажа apple ipad 2 16gb. |