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

nop /rjmp EE_RDY - прерывание от таймера

nop /rjmp ANA_COMP - прерывание от компаратора

nop /rjmp ADC - прерывание от АЦП

.org 20

/настройка порта В RESET: пор

clr tmp

70

Глава 3

Листинг 3.1. Продолжение

out

DDRB, tmp

 

out

PORTB, tmp /обнулить порт 3

clr

tmp

 

ldi

tmp, content>F /РВ0-

■3 -зыход

out

DDRB, tmp

 

clr

tmp

 

out

PORTA, tmp /РА0-

•вход

out

DDRA, tmp

 

/настройка программного стека

 

ldi

tmp, low(RAMEND)

/указатель

out

SP, tmp

; полный ст<

;Начало программы

 

nStart:

nop

 

/сброс всех

значений

 

clr

tmp

 

clr

tmp2

 

clr

tmp3

 

clr

Hbt

 

clr

Lbt

 

clr

prgl

 

clr

prg2

 

clr

D

 

/вход в подпрограмму опроса АЦП

 

rcall

adcn ; подпрограт

т АЦП

nop

   

rcall arifm /подпрограмма арифметических действий D пор

/логические действия cln els

cpi D, breq vlev nop

brge vprav /равно 10. Ветка "Стоп" nop

rcall stop /переход к подпрограмме "Останов" nop

rjmp rr /ветка "Влево" vlev: nop

rcall timo

nop

rcall vlevo /переход к подпрограмме "Злезо" nop

Управление шаговым двигателем

71

Листинг 3.1. Продолжение

rjmp г г пор

;ветка "Вправо" vprav: пор

rcall time

пор

rcall vpravo rr: nop

rjmp nStart

;переход к подпрограмме "Вправо" ;переход в начало программы

;Подпрограммы обработки данных ;Настройка АЦП adcn:

пор

   

пор

   

clr

tmp

 

пор

   

cpi

tmp,

 

brsh

ass

 

clr

tmp3

 

ldi

tmp3, ObOOOOOOOO

;напряжение

out

ADMUX, tmp3

;коммутация

clr

tmp2

 

clr

tmp3

 

ldi

tmp2, ОЫ1000101

;одиночное,

out

ADCSR, tmp2

;запуск АЦП

ВХОД ADC0

запуск, 1/32

.•Сохранение данных АЦП

пор

   

пор

   

пор

   

пор

   

пор

   

пор

   

пор

   

пор

   

in

tmp2, ADCL

in

tmp3, ADCH

mov

r2,

tmp 2

mov

r3,

tmp3

mov

r4.

r2"

mov

r5,

r3

mov

r6,

r4

mov

r7.

r5

inc

tmp

 

rjmp

awe

 

;задержка

;чтение младшего регистра данных АЦП ;чтение старшего регистра данных АЦП

;среднее арифметическое ass: пор

72

Глава 3

Листинг 3.1. Продолжение

clr г8 clc

add tmp2, r2

adc r9, r8

add tmp2, r4

adc r9, r8

add tmp2, гб

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


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



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz