Предыдущая Следующая

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

 

Робот "Охотник за светом"


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_89.html on line 1113

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_89.html on line 1113

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book8_89.html on line 1113