Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Блок управління двигуном на МК

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Плата двигуна рис. 6.1 складається з трьох блоків: блок датчика швидкості обертання, блок управління, блок датчика навантаження. Плата двигуна підключається до разъемам портів ПМК з допомогою рознімань. X2 підключається до порту Р3 і є для сполуки: оптопары («Датчик») із входженням переривання INT1, портів Р3.4 Р3.5 з входами блоку управління (Упр1 і Упр2). X6 підключається на порт Р6… Читати ще >

Блок управління двигуном на МК (реферат, курсова, диплом, контрольна)

Лист.

1. Запровадження. 3 2. Аналіз вихідних даних, вибір параметра контролю. 6 2.1. Отладочный комплекс. 6 2.2. Вибір параметра контролю. 10 3. Опис схеми електричної принципової. 11 3.1. Плата микроконтроллера. 11 3.2. Плата макета. 13 4. Опис алгоритму програми. 15 5. Опис програми. 17 6. Методика виконання лабораторної роботи. 21 6.1. Мета роботи. 21 6.2. Опис лабораторної установки. 21 6.3. Вихідні дані. 23 6.4. Домашні завдання. 24 6.5. Рекомендації з виконання. 24 6.6. Послідовність виконання роботи. 26 7. Укладання. 27 Література. 29 Додаток. Текст програми 30.

Графическая часть Лист № 1 Схема електрична принципиальная Лист № 2 Блок схема алгоритма.

Нині практично неможливо вказати якусь галузь науку й виробництва, у якій не використовувалися мікропроцесори (МП) і микроЭВМ.

Універсальність і гнучкість МП як пристроїв з сучасним програмним управлінням поруч із високої надійністю і дешевизною дозволяють широко застосовувати в найрізноманітніших системах самонаведення заміни апаратної реалізації функцій управління, контролю, виміру та опрацювання даних. Застосування МП і микроЭВМ в системах управління промисловим устаткуванням передбачає, в частковості, використання їх задля управління верстатами, транспортировочными механізмами, зварювальними автоматами, прокатными країнами, атомними реакторами, виробничими лініями, електростанціями, і навіть створення з їхньої основі робототехнічних комплексів, гнучких автоматизованих виробництв, систем контролю та діагностики. Мікропроцесорні кошти дозволяють створювати різноманітні за складністю виконуваних функцій устрою управління — від найпростіших микроконтроллеров нескладних приладів і європейських механізмів до найскладніших спеціалізованих і універсальних систем розподіленого управління у реальному времени.

Серед різної форми організації сучасних мікропроцесорних коштів можна умовно виокремити такі группы:

— встраиваемые МП і найпростіші микроконтроллеры;

— універсальні микроконтроллеры й спеціалізовані микроЭВМ;

— микроЭВМ загального назначения;

— мультимикропроцессорные системы;

— апаратні кошти підтримки мікропроцесорних систем.

(расширители).

Встраиваемые в прилади й апаратуру МП і найпростіші микроконтроллеры жорстко запрограмовані у вузькоспеціалізованих завдань, їх програмне забезпечення проходить налагодження на спеціальних стендах чи універсальних ЕОМ, потім записується у і рідко змінюється у процесі експлуатації. Встраиваемые кошти використовують і найпростіші зовнішні устрою (тумблеры/клавишные перемикачі, индикаторы).

Спеціалізовані микроЭВМ реалізуються найчастіше з урахуванням секційних мікро программируемых МП, дозволяють адаптувати структуру, розрядність, систему команд микроЭВМ під певний клас завдань. Проте такий організації систем вимагає трудомісткою та найдорожчої розробки «Власне» програмного обеспечения.

Останнім часом стала вельми поширеною отримують також программируемые микроконтроллеры, які становлять спеціалізовані микроЭВМ, зорієнтовані рішення численних завдань в системах управління, регулювання і місцевого контролю. Особливу групу становлять программируемые контролери для систем автоматичного регулювання. Найважливішим пристроєм будь-який системи автоматичного регулювання є регулятор, ставить основний закон управління виконавчим механізмом. Заміна класичних аналогових регуляторів універсальними програмованими микроконтроллерами, здатними програмно перебудовуватися у будь-яких законів регулювання, записаних на згадку про микроконтроллеров, реформує з підвищення точності, надійності, гнучкості, продуктивності і зниження вартості системам управління. Великим гідністю універсальних микроконтроллеров був частиною їхнього здатність виконувати ряд додаткових системних функцій: автоматичне виявлення помилок, контроль граничних значень параметрів, оперативне відображення стану систем тощо. п.

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

У дипломному проекті розглядається автоматизовану систему управління двигуном. Як регулятора використовується микроконтроллер, який має підтримувати, певну користувачем, частоту обертання і видавати поточні обертів якоря двигателя.

Аналіз вихідних даних, вибір параметра контроля.

Вихідними даними визначено розробку плати й на програмного забезпечення з режимами установки частоти обертання якоря двигуна, стабілізації частоти обертання і його индикации.

Область застосування макета — лабораторні і практичні роботи у ККЭП.

1 Отладочный комплекс.

Базою вихідних даних є отладочный комплекс МК51. Комплекс складається з плати микроконтроллера та програмного забезпечення і призначено для налагодження і тестування апаратури та програмного забезпечення управляючих систем, виконано з урахуванням микроконтроллера (МК) сімейства Intel imcs51.

Плата МК51 складається з таких блоков:

— МК SAB80C535 готовий до виконання програми МОНІТОР й у виконання користувальницької програми (управления);

— постійне запам’ятовуючий пристрій, призначене для зберігання програми МОНІТОР; ємність ПЗУ 32К байт;

— оперативне запам’ятовуючий пристрій, призначено для зберігання програми користувача (програма роботи керуючої системы);

— дисплей, призначений контролю значень впроваджуються параметрів, виведення значень параметрів системи управління, виведення символов;

— клавіатура, варта введення значень параметра програми керуючої системи, запуску програми управління, виклику процедур і скидання МК;

— буфер інтерфейсу зв’язку плати ПМК з компьютером;

— блок комутації адрес ОЗУ і ПЗУ.

Програмне забезпечення складається з програми FDSAB повноекранний отладчик програм на ассемблері микроконтроллеров сімейства МК51, орієнтований використання що з платою для налагодження програм на базі микроконтроллера Siemens SAB80C535 варта відображення і полноэкранного редагування ресурсів микроконтроллера, завантаження програмного коду для микроконтроллера, виконання їх у ПМК повністю, блоками чи з шагам.

У конкурсній програмі передбачено режим термінала із можливістю вибору номери комунікаційного каналу (1 чи 2) і швидкості передачі і прийому данных.

Меню програми містить такі пункты:

1. Завантажити файл з програмою…

2. Виконати програму ПМК.

3. Перечитати ОЗУ і регістри ІЗ ПМК.

4. Завантажити ОЗУ і регістри У ПМК.

5. Прочитати ПЗУ чи ОЗУ команд ПМК…

6. Завантажити ПЗУ чи ОЗУ команд ПМК…

7. Перевантажити програму У ПМК.

8. Дизассемблировать команди у діапазоні…

9. Зберегти текст програми в файл…

10. Включити / вимкнути символьні мітки.

11. Параметри зв’язку…

12. Режим термінала >

13. Коротка інформацію про системі.

14. Вихід.

Призначення пунктів меню:

1. Вибір на дисках комп’ютера двоичного файла (.BIN) з програмою, завантаження в отладчик і пам’ять команд макета і дизассемблирование завантаженого коду на екран до області відображення дизассемблированных инструкций.

2. Передача управління від монітора ПМК програмі користувача у пам’яті команд макета.

3. Зчитування вмісту внутрішньої ОЗУ макета і спеціальних функціональних регістрів з ПМК.

4. Завантаження в ПМК вмісту внутрішньої ОЗУ з отладчика і спеціальних регистров.

5. Зчитування вмісту пам’яті команд ПМК в отладчик (діапазон запрашивается).

6. Завантаження вмісту пам’яті команд ПМК з отладчика в ПМК (діапазон запрашивается).

7. Перезавантаження коду програми на згадку про команд ПМК з пам’яті отладчика.

8. Дизассемблирование програмного коду з пам’яті команд отладчика в запрашиваемом діапазоні адрес. По вибору користувача інструкції дописують за вже наявними або заміняють их.

9. Зберігає в файл, ім'я якого запитує, дизассемблированный фрагмент програми користувача з мнемонічними позначками регістрів процесора Siemens SAB80C535 і символьними знаками (якщо включений режим відображення символьних меток).

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

11. Зміна номери послідовного порту комп’ютера, якого підключена ПМК і швидкості передачі через порт у вигляді зміни дільника частоты.

12. Переклад програми в режим термінала. У цьому вся режимі користувач може ухвалювати й передавати дані про послідовному порту в ПМК.

13. Відображення короткої інформації про систему (обсяг вільної ВП, місце на поточному диску, параметри сполуки, завантажений файл).

14. Вихід із программы.

2 Вибір параметра контроля.

Очевидним параметром контролю є частота обертання ротора електродвигуна. Датчиком задля встановлення числа оборотів може бути оптопара. Але цього разі внаслідок малої частоти імпульсів, вступників від датчика, буде невисокою стабільність частоти обертання, через велике тривалості вимірювання, і швидкого характеру зміни нагрузки.

Для збільшення стабільності передбачається диск у якому розміщено максимальну кількість прорізів. І тут одному обороту валу двигуна відповідатиме дуже багато імпульсів від датчика. Але й у разі для точного виміру частоти обертання потрібно чимало часу. Проведені досліди справді показали значне відхилення частоти обертання від установленной.

Вищу стабільність утримання частоти обертання забезпечує спосіб виміру періоду імпульсів від датчика. МК має у своєї архітектурі відповідну апаратну і програмну поддержку.

Опис схеми електричної принципиальной.

Схема електрична принципова представленій у графічної частини лист1.

1 Плата микроконтроллера.

Порти Р0 і Р2 МК використовують у режимі зовнішньої пам’яті. Молодші розряди адреси осередки пам’яті запам’ятовуються в регістрі адреси (DD9) імпульсом ALE.

Блок переадресування виконано на елементах DD6 і DD7 і виконує функцію перемикання адрес відповідно до таблицею 3.1.

Таблиця 3.1.

|Вихідний адресу |Робочий адресу | |ПЗУ |ОЗУ |ПЗУ |ОЗУ | |0000Н |8000Н |8000Н |0000Н |.

За сигналом RESET=0 RS — тригер на елементах DD7.3 — DD7.4 встановлено в одиничне стан (виведенні 13 DD7.4 рівень логічного нуля) і виробляється вибір ПЗУ (DD12). Після відпускання кнопки скидання (SA1) тригер зберігає свою стан і імпульсом PSEN зчитується 1-ї байт команди переходу із ПЗУ. Тригер утримується поодинці стані сигналом з виходу DD6.1 (А15=0 => А15=1), попри наявність імпульсу PSEN на вході 1 елемента DD7.2.

У наступних двох зверненнях зчитується з ПЗУ адресу переходу 8000Н і виконується команда SJMP 8000H.

Під час читання з осередки 8000Н першого байта команди МК видає адресу, в якому А15=0, отже не вдома DD6.1 формується низький рівень. Імпульс PSEN формується позитивний імпульс не вдома DD7.2 і тригер переключається. Оскільки А15=1, то, на виході DD6.1 присутній низький рівень, отже не вдома DD6.2 — високий і, попри те, що тригер переключився вибір ОЗУ немає. Вибір ОЗУ буде виробляється якщо А15=0 і зчитування команд виробляється імпульсом PSEN.

Порти Р4 і Р5 йдуть на підключення клавіатури і дисплея. У платі використовується клавіатура формату 4×4 і чотири розрядний дисплей динамічного типу. Розряди Р4.3 — Р4.0 є розрядами сканування клавіатури і водночас розрядами вибору індикатора. Сигнали вибору індикатора («який біжить нуль») подаються на входи підсилювачів (DD10). Низький з виходу DD10 виробляє вимикання транзистора, з якого подається спільний анод обраного індикатора напруга +5 В.

Сигнали сегментів з виходів порту Р5 через токовые підсилювачі DD4 надходять на шину сегментів С0 — С7 індикаторів. Резисторы R17 — R24 визначають значення амплітуди імпульсу струму, викликаного через сегменты.

Розряди Р4.7 — Р4.4 є входами сигналів опитування клавиатуры.

З допомогою елементів DD11.1 — DD11.2 формується сигнал запиту переривання від клавіатури, що надходить на вхід INT0 МК.

ІМС DD5 є перетворювачем рівнів для послідовного канала.

Елементи джерела питания:

VD3 — діод выпрямителя;

С5 — С8 — сглаживающий фильтр;

DD3 — стабілізатор напряжения.

Трансформатор блоку харчування винесено в окремий блок, сполучений виделкою питания.

Поєднання з «зовнішнім світом» проводиться за допомогою разъемов.

Розняття Х7 призначений для з'єднання з СОМ — портами компьютера.

На контакти рознімань Х1 виведені входи порту Р6 і входи еталонних харчування і земли.

На контакти розняття Х5 виведені лінії від порту Р3.

На контакти розняття Х4 виведені лінії від порту Р1.

Розняття Х8 використовується для підключення блоку трансформатора.

2 Плата макета.

Оптопара VD1 VD2 є датчиком частоти обертання якоря двигуна. Фотодиод VD1 формує токовые імпульси під час проходження шторки освітленням від світлодіода VD2. Імпульс з VD1 відкриває транзистор VT1 цим формуючи імпульс з його коллекторе.

Управління двигуном відбувається з допомогою DD1 (ІМС управління реверсивними коллекторными двигунами). Режими роботи представлені у таблиці 3.2.

Таблиця 3.2.

|Режим роботи |IN1 |IN2 |OUT1 |OUT2 | |Гальмо |1 |1 |L |L | |Движ/Рев |0 |1 |L |H | |Рев/Движ |1 |0 |H |L | |Стоп |0 |0 |(|(|.

На входи DD1 надходять логічні рівні «0» «1», що обирає режим роботи двигуна, підключеного до виходам DD1. С1 — С4 — сглаживающие фильтры.

Змінним резистором R8, сполученим послідовно з генератором, подається навантаження двигун. Резисторы R5 R9 (R5=R9) з'єднані загальним дротом, і з інших кінців знімається аналоговий значення напруги для визначення навантаження. Залежно від напрямку обертання генератора струм у ланцюги буде протікати у двох напрямах, отже, значення потенціалів напруги на R5 R9 будуть протилежні, але рівні за значенням. Це забезпечує вимір напруги в реверсному режимі роботи двигателя.

Опис алгоритму программы.

Блок схема алгоритму представленій у графічної частини лист 2.

Головна програма зациклену і становить блок процедури індикації. Програми виміру частоти обертання двигуна і методи обробки натискання клавіш виконуються перериваючи основну програму індикації перериваннями від вимірника частоти і клавіатури відповідно. Після виконання програм обробки переривань програма індикації продовжує роботи з місця її прерывания.

Підпрограма (ПП) обробки переривання від вимірника (INT1) спочатку виконання перевіряє повторне входження у ПП. За першого входження здійснюється запуск вимірювача і вихід. За умови повторного входження обмірюване значення тривалості періоду імпульсу від датчика запам’ятовується, порівнюється зі заданим значенням. Якщо обмірюване значення менше заданого тоді отже частота обертання знизилася й відбувається включення двигуна, інакше двигун відключається. Після цього аналізується режим індикації: обертів двигуна чи індикація навантаження доданої до двигуна з допомогою генератора. Залежно від зробленого вибору обмірюване значення частоти обертання чи навантаження перетворюється на позиційнодесяткове значення і видається в індикатор. Потім відбувається вихід із ПП.

У ПП обробки переривання від клавіатури (KLAV) визначається натискання функціональної клавіші. Якщо клавіша не функціональна то виконується зрушення индикационных осередків вліво і запис коду натиснутої клавіші в последнею индикационную осередок, далі вихід. Якщо ж клавіша функціональна виробляється визначення який саме натиснута при цьому служать чотири блоку рішення, якщо функціональність клавіші не визначиться отже натиснута клавіша «реверсу» при натисканні якій здійснюється реверс напрями обертання якоря двигуна і вихід. Далі перераховані дії з натискання функціональних клавіш, після виконання яких ПП завершается:

— клавіша «видалити» — зрушення индикационных осередків у право і запис в старшу осередок нуля;

— клавіша «старт» — перетворення введеного числа обертів за секунду в тривалість періоду імпульсів з датчика;

— клавіша «стоп» — зупинка двигателя;

— клавіша «режим» — переключення режиму індикації частоти обертання / поданого нагрузки.

Опис программы.

У конкурсній програмі використовуються символічні імена присвоєні осередків ОЗУ:

st1 data 52h.

номер зсуву индикационной осередки n_sd data 53h.

введена частота обертання якоря двигуна obor data 54h.

подільне 1-ї байт chi3 data 55h.

подільне 2-ї байт chi2 data 56h.

подільне 3-й байт chi1 data 57h.

дільник 1-ї байт zn_h data 59h.

дільник 2-ї байт zn_l data 5ah.

приватне 1-ї байт rez_h data 5bh.

приватне 2-ї байт rez_l data 5ch.

результат розподілу 16/8 rezul data 5dh.

вимірювана тривалість імпульсу мл. байт dli_i_l data 5eh.

вимірювана тривалість імпульсу ст. байт dli_i_h data 5fh.

задана тривалість імпульсу мл. байт dli_l data 60h.

задана тривалість імпульсу ст. байт dli_h data 61h.

тимчасова осередок temp data 62h.

лічильник паузи видачі виміряного значення indik data 63h.

Використовувані біти прапорів перераховані ниже:

повторний вхід в в.п. виміру періоду імпульсу flag bit 00h.

індикація натискання функціональної клавіші f_ind bit 01h.

функціональна клавіша «реверс» f_rev bit 02h.

напрям обертання f_nap bit 03h.

вкл./выкл. двигун f_rab bit 04h.

індикація обороты/нагрузка f_rez bit 05h.

функціональна клавіша «режим» f_rezind bit 06h.

Розподіл 24-х бітного числа на 16-и бітне результат 16 біт, реалізовано подпрограмме div24. Розподіл многобайтного числа на многобайтное реалізується за принципом вирахування дільника з діленого зі зрушенням останнього вліво, із можливістю відновлення діленого. Перед процедурою розподілу в осередки дільника записується число буде в діапазоні 0- 0fffh. На початку розподілу відбувається: зрушення дільника чотирма розряду вліво це необхідно розподілу 24/16, запис у приватне 10h визначення закінчення розподілу, запис в осередки діленого число 1 000 000. На початку циклу розподілу виробляється зрушення діленого вліво однією розряд, а як і зрушення вліво приватного й запис в стік значень прапорів переносів. Далі зі старшої частини діленого віднімаємо дільник, залежно від знака перенесення у приватне записується «0» чи «1» і збереження діленого. Перевірка перенесення при зсуві діленого і запис у приватне «1» якщо перенесення був. Перевірка закінчення розподілу шляхом перевірки відновленого значення прапора перенесення при зсуві приватного. Після закінчення розподілу результат розподілу перебуває у осередках результата.

Після натискання клавіші «Старт» відбувається перетворення значення индикационных осередків у двоїчний код (1 байт), після що це значення збільшується на 24, що він відповідає 24 прорізам диска оптопары (результат 2 байта) і ділимо 1 000 000 цього число виходить тривалість періоду імпульсів від оптопары для введеного числа обертів за секунду. Після перетворення виконується функція запуску двигуна що дає поштовх і дозволяється переривання INT1 з оптопары.

У подпрограмме обробки переривання INT1 перевіряється повторне входження при цьому використовується прапор flag. За першого входження запускається таймер й відбувається вихід із підпрограми обробки переривання. У другому входження таймер зупиняється, забороняється переривання INT1 і значення таймера (що він відповідає періоду імпульсу) записується в осередки dli_i_l і dli_i_h. Після цього виробляється регулювання частоти обертання двигуна, при цьому з осередків dli_l dli_h (запроваджене значення) віднімається обмірюване dli_i_l dli_i_h, якщо виник перенесення отже частота обертання менше необхідною і двигун включається (відключається, якщо перенесення немає) установкою коду на портах Р3.4 Р3.5. Комбінація вибирається залежно від напрями обертання визначене битому f_nap. Індикація вимірюваною частоти обертання відбувається після 47 (2f) раз виміру імпульсів, це треба задля здобуття права прибрати мелькання цифр на індикаторі. Перетворення виміряного значення частоту обертання двигуна в обр/сек відбувається так: розподіл 1 000 000 на обмірюване значення, розподіл на 24, перетворення bin->dec->индикатор. Перед завершенням підпрограми обробки переривання INT1 виробляється ініціалізація регістрів і осередків перед наступним запуском процедури і дозволяється переривання INT1.

Для настройки таймера і переривання INT1 використовуються такі управляючі слова:

— TMOD=01H — режим роботи таймера;

— TCON=04H.

— Tr — розряд запуску таймера;

— IEN0 — дозволу прерываний.

— 8 розряд — заборона всіх прерываний;

— 3 розряд — INT1;

— 1 розряд — INT0 (клавиатура);

Методика виконання лабораторної работы.

1 Мета работы.

Придбання практичних навичок в технології розробки та налагодження елементів управляючих систем.

2 Опис лабораторної установки.

Лабораторна установка складається з таких частин: плати управління ПМК, плати двигуна та Північноатлантичного блоку питания.

Плата двигуна рис. 6.1 складається з трьох блоків: блок датчика швидкості обертання, блок управління, блок датчика навантаження. Плата двигуна підключається до разъемам портів ПМК з допомогою рознімань. X2 підключається до порту Р3 і є для сполуки: оптопары («Датчик») із входженням переривання INT1, портів Р3.4 Р3.5 з входами блоку управління (Упр1 і Упр2). X6 підключається на порт Р6 використовуючи дві лінії AI6 і AI7 для виміру навантаження прелагаемой до двигуна з допомогою генератора (вимір навантаження прелагаемой з поза з цієї схеми неможливо). Використання двох каналів передбачається для виміру напруги двигуна із можливим реверсом коли за обертанні до однієї бік вимір приміром із першого каналу, а під час обертання до іншої з другого. Таке розподіл виходить шляхом застосування дільника напруги загальний кінець якого з'єднаний із нульовим дротом і за протікання струму у різних напрямах змінює знак напруги на кінцях дільника щодо спільного дроти на протилежний. Опорне напруга Uref подається з'єднанням +5 В, а нижню межу (Ugnd) задається з'єднанням з общим.

[pic].

Рис. 6.1.Схема плати двигателя.

Розняття X3 з'єднує схему з блоком питания.

Датчик числа оборотів є диск, з 24-ю прорізами, жорстко закріплений навалу обертання двигуна. Під час проходження прорізу між оптопарой світлодіод VD2 висвітлює інфрачервоним випромінюванням фотоприймач являє собою фотодиод VD1. Напівпровідниковий фотоприймач зменшивши рахунок цього своє опір починає пропускати струм відкриваючи цим транзистор VT1 з колектора якого знімаються прямокутні импульсы.

Обороти двигуна прямо пропорційні прикладеному щодо нього напрузі. У зв’язку з цим, пропонується утримувати частоту обертання в певних кордонах із допомогою зміни напруги подаваного на двигун. Використання цифрових системам управління що дозволяють швидко обробляти дані уможливлює застосування як мінливого напруги шим-генератор. Тривалість імпульсів і пауз формується динамічно залежно від характеру доданої навантаження. Подержание оборотів зі збільшенням навантаження буде триває до того часу поки тривалість паузи нічого очікувати рівної нулю й подальше збільшення навантаження знижуватиме обертів двигуна. Заради покращання підтримки частоти обертання пропонується якомога надійніше збільшити напруга джерела питания.

3 Вихідні данные.

1. Комплекс отладочный: плата, ПО FDSAB;

2. Установка управління двигателем;

3. Можливість установки частоти обертання з клавиатуры;

4. Стабілізація частоты;

5. Імпульси з датчика надходять на вхід переривання INT1;

6. Управління двигуном здійснюється видачею коду на порти Р3.4 и.

Р3.5 відповідно до таблицею 6.1;

7. Максимальна швидкість обертання двигуна 110 обр1/сек.;

8. Кількість прорізів диска обертання датчика становить 24 шт.

9. Потужність двигуна 10 Вт;

10. Входи для виміру навантаження надходять на АЦП канали AI6 і AI7.

VAREF=5B.

Таблиця 6.1.

|Режим роботи |IN1 |IN2 |OUT1 |OUT2 | |Гальмо |1 |1 |L |L | |Движ/Рев |0 |1 |L |H | |Рев/Движ |1 |0 |H |L | |Стоп |0 |0 |(|(|.

4 Домашні задание.

Скласти алгоритм і програму стабілізації частоти обертання електродвигуна постійного струму з паралельним порушенням в відповідність до вихідними данными.

5 Рекомендації по выполнению.

Як параметра регулювання взяти тривалість періодів імпульсів від оптопары. Вибір цього параметра замість виміру частоти обертання диска, перекрепленного на двигун, дає змогу виробляти швидкий контроль стабільності системи управління з допомогою значного зменшення тривалості виміру. Для такого регулювання необхідно перетворювати введену частоту обертання в тривалість періоду імпульсів, формованих прорізами на диску датчика, і навпаки — тривалість періоду в частоту обертання. Рекомендується здійснювати перетворення наступним образом:

1) Введену частоту обертання (обр/сек) помножити на число прорізів в диску (24);

2) 1 000 000 розділити на отримане число, у результаті вийде тривалість одного періоду в мкс.

Для зворотного преобразования:

1) 1 000 000 розділити на тривалість периода;

2) розділити на 24.

При розподілі 1 000 000 (3 байта) на 2 байта можливо використання процедури розподілу 4-х байтного числа на 2-ї байтное. Для швидшого розподілу (отже, і збільшення швидкості виміру) рекомендується зменшити тривалість розподілу, виробляючи розподіл шести тетрад (1 000 000) на 3-и тетрады (максимально можливу кількість 4095), при цьому необходимо:

1) перед процедурою розподілу зрушити дільник чотирма розряду влево;

2) продовжувати розподіл з урахуванням зрушеного дільника, т. е. розподіл має триває чотирма циклу меньше;

3) після процедури розподілу зрушити приватне чотирма розряду влево.

Для виміру тривалості періоду імпульсів необхідна за ролі лічильника використовувати одне із таймерів як таймера. Подача на вхід переривання INT1 імпульсів викликає ПП обробки переривання у якій треба пильнувати за перших вражень і другим входом в ПП. За першого входження включити таймер, а другий — коли входження вважати стан таймера, як і буде тривалістю періоду импульса.

6 Послідовність виконання работы.

1. Набрати текст программы;

2. Відкомпілювати программу;

3. Запустити отладчик FDSAB;

4. Завантажити на згадку про bin файл, запустити програму на выполнение;

5. Зняти залежність зміни частоти обертання від поданого нагрузки;

6. Зробити висновок про виконану работе;

7. Скласти отчет.

Увага! При додатку великих зусиль гальмування двигуна може зупиниться що сприятиме різкого збільшення струму в вихідний цепи.

ІМС управління і, можливо вихід їх із строя.

Заключение

.

Через війну виконану дипломної роботи розробили плата макета і забезпечення блоку управління реверсивним двигуном. З режимами роботи: установки частоти обертання якоря двигуна, стабілізації і індикації частоти. Як навантаження використовується генератор, з'єднаний з двигуном, на виходи якого приєднаний перемінний резистор, яким задається навантаження. У ланцюг генератора включений дільник напруги для виміру напруження і його индикации.

Під час розробки дипломного проекту було випробувано два способу автоматичного регулювання частоти обертання двигуна: вимір частоти (певну час подсчитывалось кількість імпульсів від датчика), вимір періоду (вимірювалася тривалість періоду імпульсів які від датчика). Перший спосіб виміру частоти показав погану стабільність частоти обертання регулюючої системи, т. до. через велике тривалості виміру (при зменшенні тривалості виміру збільшувалася похибка) та швидкого зміни характеру навантаження система має не встигала відстежувати це зміна, отже і регулювати вхідну величину. Другий спосіб регулювання з виміром тривалості періоду показав хорошу стабільність автоматичної системи управління. Це досягається збільшення числа прорізів на обертовому диску оптопары, вимір триває короткий час, протягом якого система автоматичного регулювання не встигає відхилитися від встановленого значення. Невеликий відхилення частоти обертання за стислий період часу (часу виміру одного періоду) відразу контролюється й відбувається модифікація вихідного параметра.

1. Григор'єв У. Л. Програмне забезпечення мікропроцесорних систем.

— М.: Энергоатомиздат, 1983.

2. Щелкунов М. М., Дианов А. П. Мікропроцесорні кошти й системы.

— М.: Радіо і зв’язок, 1989.

3. Сташин У. У. Проектування цифрових пристроїв на однокристальных микроконтроллерах. — М.: Энергоатомиздат, 1990.

4. Іванов У. І. Напівпровідникові оптоэлектронные прилади: Справочник.

— 2-ге вид., перераб. І доп. — М.: Энергоатомиздат, 1989.

5. Хвощ З. Т. Мікропроцесори і микроЭВМ в системах автоматичного управління. Довідник. Л.: Машинобудування. Ленингр. отд-ние,.

1987.

Приложение.

Текст программы.

; присвоювання имен.

p4 data 0e8h.

p5 data 0f8h.

ip0 data 0a9h.

ip1 data 0b9h.

ien0 data 0a8h.

ien1 data 0b8h.

adcon data 0d8h.

addat data 0d9h.

darp data 0dah.

st1 data 52h.

n_sd data 53h.

obor data 54h.

chi3 data 55h.

chi2 data 56h.

chi1 data 57h.

chi_t data 58h.

zn_h data 59h.

zn_l data 5ah.

rez_h data 5bh.

rez_l data 5ch.

rezul data 5dh.

dli_i_l data 5eh.

dli_i_h data 5fh.

dli_l data 60h.

dli_h data 61h.

temp data 62h.

indik data 63h.

flag bit 00h.

f_ind bit 01h.

f_rev bit 02h.

f_nap bit 03h.

f_sta bit 04h.

f_rab bit 05h.

f_rez bit 06h.

f_rezind bit 07h.

; визначення векторів прерываний.

org 0000h.

sjmp start.

org 0003h.

ljmp klav.

org 013h.

ljmp int1.

; початкова инициализация.

start: mov darp,#00h.

mov adcon,#0fh.

clr f_rezind.

clr f_rab.

clr f_rev.

clr f_sta.

setb f_nap.

setb f_rez.

mov n_sd,#0bh.

mov st1,#3fh.

mov ip0,#04h.

mov ip1,#04h.

mov sp,#65h.

mov ien0,#81h.

inizial:mov r0,#47h.

mov r1,#03h.

; початкова обнуління индикатора.

numb: mov @r0,#00h.

inc r0.

djnz r1, numb.

; визначення режиму праці та його индикация.

jnb f_sta, re1.

jb f_rez, re1.

mov 4ah,#19h.

sjmp re2.

re1: mov 4ah,#10h.

re2: clr f_ind.

beg: jb f_ind, beg2.

; визначення режиму работы.

jnb f_rezind, na2.

clr f_rezind.

jb f_nap, na1.

mov 4ah,#0fh.

sjmp na2.

na1: mov 4ah,#0ah.

; запуск двигуна з перевіркою напрями вращения.

na2: jnb f_rev, beg2.

jb f_nap, napr1.

clr p3.5.

mov 4ah,#0fh.

jb f_rez, napr.

mov 4ah,#19h.

sjmp napr.

napr1: clr p3.4.

mov 4ah,#0ah.

jb f_rez, napr.

mov 4ah,#19h.

napr: clr f_rev.

clr flag.

setb f_rab.

mov ien0,#85h.

; зупинка двигателя.

beg2: jnb f_ind, beg1.

djnz st1, beg1.

mov st1,#05fh.

; зрушення индикационных осередків вправо.

mov r0,#0ahov r1,#49h.

mov 40h,#10h.

sdvig: mov a,@r1.

inc r1.

mov @r1,a.

mov a, r1.

subb a,#02h.

mov r1, a.

djnz r0, sdvig.

djnz n_sd, beg1.

mov n_sd,#0bh.

ljmp inizial.

; процедура индикации.

beg1: mov r4,#0feh.

mov dptr,#tabcod.

mov r0,#47h.

cycl: mov p4,#0ffh.

mov a,@r0.

movc a,@a+dptr.

mov p5, a.

mov a, r4.

mov p4, a.

rl a.

mov r4, a.

inc r0.

lcall del.

cjne r0,#4bh, cycl.

ljmp beg.

del: mov r1,#10.

st2: mov r2,#10.

st1: nop.

nop.

nop.

djnz r2, st1.

djnz r1, st2.

ret.

tabcod: db 0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 82h, 0f8h, 80h, 90h.

db 0feh, 0fdh, 0fbh, 0f7h, 0efh, 0dfh, 0ffh.

db 0c6h, 0f8h, 0c0h, 0c8h, 88h, 8ch, 86h, 80h, 89h, 0ceh, 91h, 0b0h, 82h.

; клавиатура.

klav: push acc.

push p4.

push psw.

setb psw.3.

mov r4,#00h.

mov r7,#04h.

mov r6,#0feh.

loop: mov a, r6.

mov p4, a.

rl a.

mov r6, a.

mov a, p4.

mov r5,#04h.

swap a.

rotate: rrc a.

jnc dbnc.

inc r4.

djnz r5, rotate.

djnz r7, loop.

ljmp quit.

dbnc: mov r2,#0ah.

m1: mov r3,#55h.

m2: djnz r3, m2.

djnz r2, m1.

mov a,#0f0h.

wait: mov p4,#0f0h.

cjne a, p4, wait.

mov r2,#0ah.

m3: mov r3,#55h.

m4: djnz r3, m4.

djnz r2, m3.

mov a,#09h.

subb a, r4.

jc func.

rel: mov r0,#03h.

mov r1,#48h.

new: mov a,@r1.

inc r1.

mov @r1,a.

mov a, r1.

subb a,#02h.

mov r1, a.

djnz r0, new.

mov r1,#47h.

mov 47h, r4.

ljmp quit.

; визначення режими з функціональної клавише.

func: jb f_ind, quit.

cjne r4,#0ah, g2.

ljmp bakesp.

g2: cjne r4,#0bh, g3.

ljmp sta.

g3: cjne r4,#0ch, g4.

ljmp stop.

g4: cjne r4,#0dh, g5.

ljmp rezim.

g5: cjne r4,#0eh, g6.

ljmp rezim.

g6: ljmp revers.

quit: clr psw.3.

pop psw.

pop p4.

pop acc.

reti.

; видалення символа.

bakesp: jb f_rab, quit.

mov 47h, 48h.

mov 48h, 49h.

mov 49h,#00h.

ljmp quit.

; старт. DEC->BIN.

sta: jb f_rab, quit.

mov 4ah,#0ah.

mov b,#0ah.

mov a, 49h.

mul ab.

add a, 48h.

mov b,#0ah.

mul ab.

add a, 47h.

mov obor, a.

; BIN*24.

mov b,#18h.

mov a, obor.

mul ab.

mov zn_l, a.

mov zn_h, b.

; деление1 000 000 на отримане значение.

lcall div24.

mov dli_l, rez_l.

mov dli_h, rez_h.

; старт измерение.

mov tl0,#00h.

mov th0,#00h.

clr flag.

mov indik,#00h.

mov tmod,#10h.

mov tcon,#04h.

mov 4ah,#10h.

mov 49h,#10h.

mov 48h,#10h.

mov 47h,#10h.

mov 46h,#11h.

mov 45h,#12h.

mov 44h,#15h.

mov 43h,#16h.

mov 42h,#12h.

mov 41h,#10h.

setb f_ind.

setb f_rev.

setb f_sta.

ljmp quit.

; стоп.

stop: jnb f_rab, quit.

mov ien0,#81h.

setb p3.4.

setb p3.5.

clr f_rab.

mov 4ah,#10h.

mov 49h,#10h.

mov 48h,#10h.

mov 47h,#10h.

mov 46h,#10h.

mov 45h,#11h.

mov 44h,#12h.

mov 43h,#13h.

mov 42h,#14h.

mov 41h,#10h.

setb f_ind.

clr f_sta.

ljmp quit.

; реверс.

revers: jnb f_rab, out2.

mov ien0,#81h.

setb p3.4.

setb p3.5.

mov 4ah,#10h.

mov 49h,#10h.

mov 48h,#10h.

mov 47h,#10h.

mov 46h,#16h.

mov 45h,#17h.

mov 44h,#18h.

mov 43h,#17h.

mov 42h,#16h.

mov 41h,#11h.

jb f_nap, n1.

mov adcon,#0eh.

sjmp n2.

n1: mov adcon,#0fh.

n2: setb f_rev.

cpl f_nap.

setb f_ind.

out2: ljmp quit.

; режим обертів двигателя/нагрузка.

rezim: jnb f_rab, out.

cpl f_rez.

jb f_rez, rez1.

mov 4ah,#10h.

mov 49h,#10h.

mov 48h,#10h.

mov 47h,#10h.

mov 46h,#19h.

mov 45h,#15h.

mov 44h,#1ah.

mov 43h,#16h.

mov 42h,#1bh.

mov 41h,#1ch.

setb f_ind.

out: ljmp quit.

rez1: mov 4ah,#10h.

mov 49h,#10h.

mov 48h,#10h.

mov 47h,#10h.

mov 46h,#13h.

mov 45h,#1dh.

mov 44h,#13h.

mov 43h,#16h.

mov 42h,#13h.

mov 41h,#12h.

setb f_rezind.

setb f_ind.

ljmp quit.

; процедура розподілу 3-х байт на 2-ва.

div24: push psw.

push acc.

mov chi3,#0fh.

mov chi2,#42h.

mov chi1,#40h.

mov rez_h,#00.

mov rez_l,#10h.

mov a, zn_h.

mov b,#10h.

mul ab.

mov zn_h, a.

mov a, zn_l.

mov b,#10h.

mul ab.

mov zn_l, a.

mov a, b.

add a, zn_h.

mov zn_h, a.

lp24: mov a, rez_l.

rlc a.

mov rez_l, a.

mov a, rez_h.

rlc a.

mov rez_h, a.

push psw.

clr c.

mov a, chi1.

rlc a.

mov chi1, a.

mov a, chi2.

rlc a.

mov chi2, a.

mov a, chi3.

rlc a.

mov chi3, a.

push psw.

clr c.

mov a, chi2.

subb a, zn_l.

mov chi_t, a.

mov a, chi3.

subb a, zn_h.

jc nosav.

pop psw.

sav: mov chi3, a.

mov chi2, chi_t.

inc rez_l.

sjmp qsav.

nosav: pop psw.

jc sav.

qsav: pop psw.

jnc lp24.

pop acc.

pop psw.

ret.

; переривання від датчика.

int1: jb flag, iz2.

setb flag.

setb tr1; перше входження. запустити таймер

reti.

iz2: push psw; друге вхождение.

push acc.

clr tr1.

mov ien0,#80h.

mov dli_i_l, tl1; зберегти обмірюване значение.

mov dli_i_h, th1 ;

; регулировка.

clr c.

mov a, dli_i_l.

subb a, dli_l.

mov a, dli_i_h.

subb a, dli_h.

jc mot1.

jb f_nap, nap11.

setb p3.4.

sjmp mot0.

nap11: setb p3.5.

sjmp mot0.

mot1: jb f_nap, nap01.

clr p3.4.

sjmp mot0.

nap01: clr p3.5.

mot0:

; индикация.

jb f_ind, inizdp.

djnz indik, inizdp.

mov indik,#2fh.

jb f_rez, chas.

; індикація нагрузки.

azp0: jnb adcon.4,azp0.

mov a, addat.

mov b,#0ah.

divx ab.

mov 47h, b.

mov b,#0ah.

divx ab.

mov 48h, b.

mov 49h, a.

inizdp: ljmp iniz.

; індикація частоти вращения.

chas: jb f_nap, i_nap1.

mov a, 4ah.

cjne a,#0ah, in_ob2.

mov 4ah,#10h.

in_ob2: dec 4ah.

sjmp i_nap2.

i_nap1: mov a, 4ah.

cjne a,#0fh, in_ob1.

mov 4ah,#09h.

in_ob1:inc 4ah.

i_nap2: mov zn_l, dli_i_l.

mov zn_h, dli_i_h.

lcall div24; розподіл 3 байт на 2 байт.

mov rezul,#01h; розподіл 2 байт на 24.

lp16: clr c.

mov a, rezul.

rlc a.

mov rezul, a.

push psw.

clr c.

mov a, rez_l.

rlc a.

mov rez_l, a.

mov a, rez_h.

rlc a.

mov rez_h, a.

push psw.

clr c.

mov a, rez_h.

subb a,#18h.

jc nosav16.

pop psw.

sav16: mov rez_h, a.

inc rezul.

sjmp qsav16.

nosav16: pop psw.

jc sav16.

qsav16: pop psw.

jnc lp16.

; BIN->DEC.

mov a, rezul.

mov b,#0ah.

divx ab.

mov 47h, b.

mov b,#0ah.

divx ab.

mov 48h, b.

mov 49h, a.

; ініціалізація нового запуску програми измерения.

iniz: mov tl1,#00h.

mov th1,#00h.

clr flag.

port0: jb p3.3,port0.

port1: jnb p3.3,port1.

mov ien0,#85h;84.

pop acc.

pop psw.

reti.

end ———————————- Изм.

Дата.

№ Документа Подпись.

Лист.

Лист.

ККЭП 2202 01 000 ПЗ.

Изм.

Дата.

№ Документа.

Подпись.

Лист.

ККЭП 2202 01 000 ПЗ.

Выполнил.

Руковод.

Балдин П.М.

Дубров Ф.И.

Блок управління двигателем.

Гр.

Лист.

Листов.

Литера.

у.

Показати весь текст
Заповнити форму поточною роботою