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

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

67

кварцевого резонатора Q1. После установки конфигурации микроконтроллер сразу же приступает к выполнению программы управления ШД.

На выводы РВО, РВ1 (1 и 2 корпуса микроконтроллера) и РВ2, РВЗ (3 и 4 корпуса микроконтроллера) в определенной очередности поступают импульсы управления драйверами DDI и DD2. В свою очередь, драйверы в определенной последовательности коммутируют обмотки ШД.

Схема питания схемы от трех батареек 1,5 В типа АА и подключения обмоток ШД показана на рис. 3.4.

SL1 АА 1,5в ДА 1,5в ДА i.sb

Алгоритм работы

Блок-схема алгоритма работы схемы показана на рис. 3.5. Программа начинается с конфигурирования порта В. Далее устанавливается конфигурация чтения АЦП. После того как данные с АЦП считаны, арифметическая подпрограмма выделяет "ноль" регулятора переменного напряжения. Подпрограмма логики определяет направление вращения вала ШД. Поскольку "ноль" смещен, необходимо пересчитать значения временных промежутков по модулю. Далее основная программа разделяется на три ветви.

В зависимости от результата работы арифметической подпрограммы выбирается один из способов управления ШД. По заданному алгоритму управления в порт В и на драйвер обмоток ШД десять раз подается последовательность из восьми импульсов, после чего программа возвращается к конфигурированию АЦП, и цикл повторяется сначала.

Рис. 3.4. Схема питания и подключения обмоток ШД

68

Глава 3

Рис. 3.S. Алгоритм работы схемы управления ШД

Программа

Программа на ассемблере представлена в листинге 3.1, а шестна-дцатеричный код — в листинге 3.2. Соответствующие файлы cshag3. asm и cshag3.hex находятся на прилагаемом к книге компакт-диске в папке ПрограммыХОЗ - Шагозый двигатель.

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

.include "C:\Program Files\Atmel\AVR Tools\AVRStudio4\Appnotes\ tn26def.inc"

;Автор: Кравченко А.В.

;Дата: 17.07.2008

;Версия: 1.1.3

;Имя файла: Cshag.asm

/Микроконтроллер: AVR tiny26.

/Тактовая частота: 4,194мГц

;Питание: нестабилизированное 5 В

list

         

def

adr

=

rO

Рабочий

регистр

def

prgl

=

rl8

Рабочий

регистр

def

prg2

=

rl9

Рабочий

регистр

def

tmp

=

r21

Общий регистр

def

D

 

r22

Рабочий

регистр

def

tmp2

=

r20

Рабочий

регистр

def

tmp3

 

r24

Рабочий

регистр

def

Hbt

=

r25

Рабочий

регистр

def

Lbt

=

rl6

Рабочий

регистр

def

X

=

r2 5

Рабочий

регистр

def

Y

=

rl7

Рабочий

регистр

def

M

=

r23

Рабочий

регистр

def

par

=

r27

Рабочий

регистр

. cseg . org О

rjmp RESET

nop /rjmp EXT_INT0 - прерывание не используется

nop /rjmp EXT_PIN - прерывание не используется

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

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

np /rjmp TIME_OVFl - прерывание от таймера

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

nop /rjmp UCI_STRT - прерывание от USI

nop /rjmp UCI_OVF - прерывание от USI


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



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