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

/Подпрограмма перевода времени вправо -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 ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz