Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розділ 6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.52 Mб
Скачать

6.4. Застосування однокристального мікроконтролера 83c51fa для керування двигуном постійного струму

Двигуни постійного струму широко використовують у про­мислових і побутових пристроях. У багатьох випадках важ­ливим є прецизійне керування швидкістю обертання двигуна та можливість зміни напряму обертання. Наприклад, двигун постійного струму у побутовій техніці магнітного звукозапи­су має обертатися зі сталою швидкістю. Зміна напряму обер­тання досягається зміною полярності напруги, що подається або на колекторну обмотку або на обмотку збудження.

Використання ОМК 83C51FA дає змогу здійснювати ке­рування двигуном постійного струму з реалізацією широтно-імпульсної модуляції напруги, яка подається на обмотку збудження чи на колекторну обмотку. На базі ОМК 83C51FA можна запрограмувати до п'яти широтно-імпульсних моду­ляторів.

Однокристальний мікроконтролер 83C51FA — це 8-розрядний мікроконтролер, основою якого є архітектура 8051, але він має кілька нових функцій, зокрема існує масив програмних лічильників — РСА (Programmable Counter Array). Масив складається з 16-розрядного таймера PC А та п'яти окремих модулів. Таймер РСА має два 8-розрядних регістри — CL (молодший байт) та СН (старший байт), які до­ступні для всіх модулів. Причому таймер РСА можна за­програмувати на використання вхідних даних з чотирьох різних джерел. Максимальна частота лічення — 4 МГц, тоб­то 1/4 частоти генератора. Окремі виводи порту Р1викорис­товуються для взаємодії кожного модуля і таймера із зовніш­німи пристроями. Якщо виводи порту не використовуються для роботи модулів РСА, їх можна використати як лінії зви­чайного порту введення-виведення.

Модулі РСА можуть бути запрограмовані на режим захоп­лення події (capture) або режим порівняння,який має такі напрями: програмний таймер; режим високошвидкісного виведення, режим широтно-імпульсного модулятора (PWM); режим сторожового таймера (watchdog-таймера) (лише для четвертого модуля). Кожний модуль має 8-розрядний регістр режиму — ССАРМп (табл. 6.13) та 16-розрядний регістр порівняння-захоплення, який складається з двох 8-розряд них регістрів CCAPnL і ССАРпН, де п може набувати зна­чення від 0 до 4.

Таблиця 6.13. Позначення бітів регістра режиму ССАРМп

Біт

Позначення

Призначення

7

-

-

6

ЕСОМп

Біт дозволу функції порівняння; ЕСОМп = 1 для функцій, що потребують порівняння вмісту ре­гістрів порівняння-захоплення із вмістом 16-розрядного таймера, наприклад функцій програмова­ного таймера, високошвидкісного виведення, watchdog-таймера

5

САРРп

Біт захоплення за переднім фронтом сигналу

4

CAPNn

Біт захоплення за заднім фронтом сигналу

3

МАТп

Біт визначення збігу вмісту регістрів захоплення-порівняння із вмістом 16-розрядного таймера

2

TOGn

Біт дозволу виведення за умовою збігу вмісту регістрів захоплення-порівняння із вмістом 16-роз­рядного таймера

1

PWMn

Біт дозволу генерації сигналу широтно-імпульсно­го модулятора за збігом молодшого байта вмісту регістра порівняння-захоплення та молодшого бай­та вмісту таймера РСА

0

ECCCFn

Біт дозволу генерації переривання за прапорцем порівняння-захоплення CCFn регістра CCON

Установленням відповідних бітів у регістрах режимів ССАРМп можна запрограмувати кожний модуль на функціо­нування в одному з режимів — захоплення події або по­рівняння.

Режим захоплення події. Подією називають будь-яку зміну рівня сигналу на входах. Однокристальний мікрокон-тролер можна запрограмувати на визначення таких подій:

• кожного переходу рівня вхідного сигналу зі стану «0» у стан «1» {САРРп =1);

• кожного переходу рівня вхідного сигналу зі стану «1» у стан «0» (CAPNn =1);

• будь-якого переходу рівня сигналу (САРРп - 1 та CAPNn = 1).

Після того, як запрограмована подія відбулася, час настан­ня цієї події, відлічений таймером РСА разом з інформацією про стан входів записується у стек подій FIFO. Операцію запису часу події у стек називають захопленням події. Якщо встановлено біт дозволу ECCFn, захоплення події супрово­джується генерацією запиту переривання ЦП на обслугову­вання модуля.

Режим порівняння. Якщо модуль запрограмовано на функ­ціонування в одному з підрежимів порівняння (програмова­ний таймер, високошвидкісний вивід, watckdog-таямер), про­грама завантажує у регістри захоплення-порівняння величи­ну, яка порівнюється з вмістом 16-розрядного таймера; ОМК генерує переривання у разі збігу цих величин.

У підрежимі програмованого таймера встановлюється пра­порець переповнення у разі збігу значень таймера і регістра захоплення-порівняння.

Підрежим високошвидкісного виводу призначений для ге­нерації заданих подій у певний час. Час задається значенням регістру захоплення-порівняння ССАРп.

У підрежимі сторожового таймера генерується перери­вання, якщо деяка ділянка програми виконується за більший час, ніж заданий у регістрі. Це дає змогу уникнути «зависан­ня» програми.

Підрежим широтно-імпульсного модулятора — єдиний режим, що використовує лише 8-розрядний регістр захоп­лення-порівняння. У старший байт (ССАРпН) обраного моду­ля завантажується значення від 0 до FFH. Це значення пе­реноситься у молодший байт того самого модуля і порівню­ється з молодшим байтом регістра таймера РСА. За умови CL<CCAPnL на відповідному виводі встановлюється стан логічного нуля; за умови CL>CCAPnL стан логічної одиниці.

Крім регістрів ССАРМп для забезпечення роботи тайме­ра РСА введено ще два регістри спеціальних функцій — CCON та CMOD. Регістр CCON (табл. 6.14) допускає бітову адресацію. Адреса регістра CCON — 0D8H, значення для ски­дання - 00x00000В.

Регістр CMOD (табл. 6.15) не допускає адресацію окре­мих бітів. Адреса регістра CMOD0D9H, значення для скидання — 00xxx000В.

Якщо один з модулів запрограмований у режим широтно-імпульсного модулятора, у старший байт регістра порівняння слід завантажити значення від 0 до 255, яке визначає коефіцієнт заповнення широтно-імпульсного модулятора. Для ОМК 83C51.FА завантаження 0 в ССАРпН відповідає коефіцієнту заповнення 1, а 255 (OFFh) — коефіцієнту заповнен­ня 0,004. Часові діаграми та значення коефіцієнта заповнення широтно-імпульсного модулятора і регістра ССАРпН зобра­жено в табл. 6.16.

Таблиця 6.14. Позначення бітів регістра CCON

Біт

Позначення

Призначення

7

CF

Прапорець переповнення таймера

6

CR

Запуск таймера РСА

5

Не використовується

4

CCF4

Прапорці модулів, які використовуються для ви­значення модуля, що генерує переривання РСА

3

CCF3

2

CCF2

1

CCF\

0

CCF0

Таблиця 6.15. Позначення бітів регістра CMOD

Біт

Позначення

Призначення

5

Не використовується

4

-«-

3

-«-

2

CPSI

Біти, що визначають джерело тактування таймера РСА:

00 — внутрішній генератор, Fosc/12

01 — внутрішній генератор, Fosc/4

10 — переповнення таймера 0

11 — зовнішній сигнал (введення з Р1.2)

1

CPS0

0

ECF

Дозвіл переривання за прапорцем CF

Таблиця 6.16. Часові діаграми і значення коефіцієнта заповнення широтно-імпульсного модулятора

Коефіцієнт заповнення

Значення регістра ССАпН

Вихідний сигнал широтно-імпульсного модулятора

1

00

_______________________

0,9

25

0,5

128

0,1

230

0,004

255

Запуск таймера РСА здійснюється встановленням біта CR (див. табл. 6.14) регістра CCON, який допускає бітову адре­сацію. Встановлення і скидання цього біта здійснюється відпо­відними бітовими командами — CLR bit на SETB bit (див. табл. 6.11).

Приклад 6.1. Запрограмувати модуль 2 для генерації широтно-імпульсного модулятора-сигналу для ланцюга керування двигуном.

Програма має вигляд:

MOV

CMOD,#06

Обирається зовнішній тактовий сигнал

MOV

ССАРМ2,#42Н

Встановлюється режим широтно-імпульсного модулятора

MOV

ССЛАР2Н,#0

Значення нуля відповідає коефіцієнту заповнення 100 % (5 В)

SETB

CR

Запуск таймера

END

Принципову схему модуля керування двигуном постійно­го струму зображено на рис. 6.28 .

Схема містить ОМК 83C51FA з колами скидання і синхро­нізації, спеціалізовану ВІС драйвера L293, двигун та імпульс­ний датчик швидкості 30137. Імпульси ТТЛ-рівня з виходу датчика надходять на вхід Р1.6 ОМК. Залежно від частоти цих імпульсів ОМК збільшує або зменшує коефіцієнт заповнення широтно-імпульсного модулятора на виводах Р1.4, Р1.5, реалізуючи таким чином регулювання швидкості обер­тання двигуна.

Рис. 6.28. Принципова схема модуля керування двигуном постійного струму