/Подпрограмма перевода времени вправо -IFF time: nop
ldi tmp, SOI
sub tmp3, tmp
cln
ldi tmp, $ FF
sub tmp2, tmp cln ret
.•Подпрограмма перевода времени влево -3FF timo: nop
ldi tmp,
sub tmp3, tmp
cln
ldi tmp, $FF
sub tmp2, tmp cln ret
Управление шаговым двигателем
73
Листинг 3.1. Продолжение
/Подпрограмма арифметических действий
fku:
plus :
: nop |
||
mov |
Hbt, tmp3 |
;старший разряд |
mov |
Lot, tmp2 |
/младший разряд |
грка на |
плюс |
|
cln |
||
cpi |
Hbt, |
|
breq |
fku |
;равно |
brge |
plus |
/больше, равно |
nop |
||
els |
/сброс знака |
|
cpi |
Lbt, |
|
brge |
plus |
/больше, равно |
nop |
||
rjmp |
minus |
|
nop |
||
ldi |
D, |
;положительный результат |
rjmp |
gop |
|
nop |
||
mov |
Hbt, tmp3 |
/старший разряд |
mov |
Lbt, tmp2 |
/младший разряд |
■рка на |
минус |
|
cln |
||
els |
||
cpi |
Hbt, |
|
brge |
nol |
/больше, равно |
nop |
||
cln |
||
els |
/сброс знака |
|
cpi |
Lbt, $F6 |
|
brge |
nol |
/больше, равно |
nop |
||
лор |
||
ldi |
D, |
/отрицательный результат |
rjmp |
gop |
|
nop |
||
clr |
D |
nol:
пор
gop: пор ret
/Подпрограмма "Влево".
vlevo: пор
clr tmp
ldi tmp, content>A
clr par
Полный шаг
/десять шагов
74
Глава 3
Листинг 3.1. Продолжение
els |
|
пор |
|
cpi |
par, |
breq |
prn2 |
ldi |
ZH, high (2*progl) |
ldi |
ZL, Low(2*progl) |
Add |
ZL, par |
LPM |
|
mov |
prgl, adr |
out |
PORTB, prgl |
rcall |
zader |
inc |
par |
rjmp |
sfg |
nop |
|
clr |
par |
cln |
|
dec |
tmp |
brmi |
hkj |
rjmp |
sfg |
nop |
|
ret |
.•Подпрограмма "Вправо". Полный шаг
nop |
|
clr |
tmp |
ldi |
tmp, content>A |
clr |
par |
cln |
|
els |
|
nop |
|
cpi |
par, |
breq |
prv |
ldi |
ZH, high(2*prog2) |
ldi |
ZL, Low(2*prog2) |
Add |
ZL, par |
LPM |
|
mov |
prg2, adr |
out |
PORTB, prg2 |
rcall |
zader |
inc |
par |
rjmp |
sld |
nop |
|
clr |
par |
cln |
|
dec |
tmp |
brmi |
nert |
rjmp |
sld |
Управление шаговым двигателем
75
Листинг 3.1. Продолжение
nert: пор
ret
/Подпрограмма "Стоп" stop: пор
clr tmp
out DDRB, tmp
out PORTB, tmp /обнулить порт В
nop
ret
;Подпрограмма задержки включения zader:
goo: dm:
goq: dv:
nop |
||
wdr |
||
clr |
M |
|
clr |
Y |
|
ldi |
Y, |
$AF |
cpi |
tmp3, content> |
|
brne |
goo |
|
ldi |
M, |
|
add |
M, |
tmp3 |
nop |
||
nop |
||
mov |
M, |
tmp3 |
nop |
||
cpi |
tmp2, content> |
|
brne |
goq |
|
ldi |
X, |
|
add |
X, |
tmp2 |
nop |
||
nop |
||
mov |
x, |
tmp2 |
nop |
||
wdr |
||
nop |
||
dec |
Y |
|
brpi |
dx |
|
cln |
||
dec |
X |
|
brpl |
dv |
|
cln |
||
dec |
M |
|
brne |
dm |
|
ret |
/Код дзкжения по часовой стрелке .org 0 progl:
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |