223
Листинг 9.1. Продолжение
mov |
r3, tmp3 |
mov |
r4, r2 |
mov |
r5, r3 |
mov |
r6, r4 |
mov |
rl, r5 |
inc |
tmp |
rjmp |
awe |
ее арифметическое |
|
лор |
|
clr |
r8 |
clc |
|
add |
tmp2, r2 |
adc |
r9, r8 |
add |
tmp2, r4 |
adc |
r9, r8 |
add |
tmp2, r6 |
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
;Подпрограмма вычитания двухбайтного числа arifm: nop
;вычитание значения АЦП от набранного значения
sub dl, SI /Вычитание младшего байта
;прозерка на ноль старшего байта clz
срх d2, О breq loki
224
Глава 9
Листинг 9.1. Продолжение
clr tmp
rol tmp
sub d2, S2 ;Вычитание старшего байта с заемом
sub d2, tmp loki: nop ret
;подпрограмма проверки контактоз SS:
nop |
|
clr |
tmp3 |
in |
tmp3, B |
nop |
|
ldi |
tmp, content>C |
and |
tmp3, tmp |
nop |
|
clz |
|
cpi |
tmp3, |
breq |
vper 1 |
nop |
|
clz |
|
cpi |
tmp3, |
breq |
nazad |
nop |
|
clz |
|
cpi |
tmp3, content>C |
breq |
stopic |
nop |
|
nop |
|
rcall |
onestep |
nop |
|
rjmp |
qlo |
nop |
|
real 1 |
zadstep |
nop |
|
rjmp |
qlo |
nop |
|
rcall |
stop |
nop |
|
ret |
;проверка контактов 00001100
/проверка SI
;проверка S2
;проверка S1S2
stopic: qlo:
/Подпрограмма движения влево полный шаг onevlev: пор clr tmp
ldi tmp, content>A ;десять шагоз
clr par
cln
els
Робот "Охотник за светом"
225
-Листинг 9 1. Продолжение
sfg:
prn2 :
hk] :
sld:
cpi |
par, 508 |
breq |
?rn2 |
ldi |
ZH, high (2*progl) |
ldi |
ZL, Low(2*progl) |
Add |
ZL, par |
LPM |
|
mov |
prgl, adr |
out |
PORTB, prgl |
ldi |
ZH, high(2*prog2) |
ldi |
ZL, Low(2*prog2) |
Add |
ZL, par |
LPM |
|
mov |
prg2, adr |
swap |
prg2 |
out |
PORTA, prg2 |
rcall |
zader |
inc |
par |
rjmp |
sfg |
nop |
|
clr |
par |
cln |
|
dec |
tmp |
brmi |
hk] |
rjmp |
sfg |
nop |
|
ret |
|
юграмма |
. движения вправо i |
■av: |
nop |
clr |
tmp |
ldi |
tmp, content>A |
clr |
par |
cln |
|
els |
|
nop |
|
cpi |
par, |
breq |
prv |
ldi |
ZH, high(2*progl) |
ldi |
ZL, Low(2*progl) |
Add |
ZL, par |
LPM |
|
mov |
prg2, adr |
swap |
prg2 |
out |
PORTA, prg2 |
ldi |
ZH, high (2*prog2) |
ldi |
ZL, Low(2*prog2) |
:один шаг ШД2 эперед
;один шаг ШД1 назад
/десять шагов
;один шаг ШД1 вперед
г один шаг ШД2 назад
226
Глава 9
Листинг 9.1. Продолжение
prv:
Add |
ZL, par |
LPM |
|
mov |
prgl, adr |
out |
PORTB, prgl |
rcall |
zader |
inc |
par |
rjmp |
sld |
nop |
|
clr |
par |
cln |
|
dec |
tmp |
brmi |
nert |
rjmp |
sld |
nop |
|
ret |
nert:
;подпрограмма движения вперед onestep: nop
sldl:
prvl:
nertl:
clr |
tmp |
ldi |
tmp, content>A |
clr |
par |
cln |
|
els |
|
nop |
|
cpi |
par, |
breq |
prvl |
ldi |
ZH, high(2*progl |
ldi |
ZL, Low(2*progl) |
Add |
ZL, par |
LPM |
|
mov |
prg2, adr |
out |
PORTB, prg2 |
swap |
prg2 |
out |
PORTA, prg2 |
rcall |
zader |
inc |
par |
rjmp |
sldl |
nop |
|
clr |
par |
cln |
|
dec |
tmp |
brmi |
nertl |
rjmp |
sldl |
nop |
|
ret |
/десять ^агоз
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |