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

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 ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz