ЗМІСТ p>
Лист p>
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 p>
Графічна частина p>
Лист № 1 Схема електрична принципова p>
Лист № 2 Блок схема алгоритму p>
Введення. P >
В даний час практично неможливо вказати якусь галузьнауки та виробництва, в якій би не використовувалися мікропроцесори (МП) імікроЕОМ. p>
Універсальність і гнучкість МП як пристроїв з програмним керуваннямпоряд з високою надійністю і дешевизною дозволяють широко застосовувати їх усамих різних системах управління для заміни апаратної реалізаціїфункцій управління, контролю, вимірювання та обробки даних. Застосування МП імікроЕОМ в системах управління промисловим обладнанням припускає, вЗокрема, використання їх для керування верстатами, транспортувальнімеханізмами, зварювальними автоматами, прокатними станами, атомнимиреакторами, виробничими лініями, електростанціями, а також створенняна їх основі робототехнічних комплексів, гнучких автоматизованихвиробництв, систем контролю та діагностики. Мікропроцесорні засобидозволяють створювати різноманітні за складністю виконуваних функційпристрої управління - від найпростіших мікроконтролерів нескладних приладіві механізмів до найскладніших спеціалізованих і універсальних системрозподіленого управління в реальному часі. p>
Серед різних форм організації сучасних мікропроцесорнихкоштів можна умовно виділити наступні групи: p>
- вбудовані МП і найпростіші мікроконтролери; p>
- універсальні мікроконтролери та спеціалізовані мікроЕОМ; p>
- мікроЕОМ загального призначення; p >
- мультімікропроцессорние системи; p>
- апаратні засоби підтримки мікропроцесорних систем p>
(розширювачі). p>
Вбудовувані у прилади і апаратуру МП і найпростіші мікроконтролерижорстко запрограмовані на реалізацію вузькоспеціалізованих завдань, їхпрограмне забезпечення проходить налагодження на спеціальних стендах абоуніверсальних ЕОМ, потім записується в ПЗП і рідко змінюється в процесіексплуатації. Вбудовувані засоби використовують і найпростіші зовнішніпристрої (тумблери/клавішні перемикачі, індикатори). p>
Спеціалізовані мікроЕОМ реалізуються найчастіше на основісекційних мікро програмованих МП, що дозволяють адаптувати структуру,розрядність, систему команд мікроЕОМ під певний клас задач. Однактакий підхід організації систем вимагає трудомісткою і дорогою розробки
«Власного» програмного забезпечення. P>
Останнім часом широкого поширення набувають такожпрограмувальні мікроконтролери, що представляють собою спеціалізованімікроЕОМ, орієнтовані на вирішення численних завдань в системахуправління, регулювання та контролю. Особливу групу складаютьпрограмовані контролери для систем автоматичного регулювання.
Найважливішим пристроєм будь-якої системи автоматичного регулювання єрегулятор, що задає основний закон управління виконавчим механізмом.
Заміна класичних аналогових регуляторів універсальними програмованимимікроконтролерами, здатними програмно перебудовуватися на реалізаціюбудь-яких законів регулювання, записаних в пам'ять мікроконтролерів,забезпечує підвищення точності, надійності, гнучкості, продуктивності тазниження вартості систем управління. Великим достоїнством універсальнихмікроконтролерів є їхня здатність виконувати ряд додатковихсистемних функцій: автоматичне виявлення помилок, контроль граничнихзначень параметрів, оперативне відображення стану систем і т. п. p>
У системах автоматичного регулювання особливе місце виділяється длясистем управління двигунами, в таких системах основної регульованоївеличиною є частота обертання якоря двигуна, яка змінюється призміні навантаження. Використання замість аналогового регуляторамікроконтролера дозволить істотно поліпшити процес регулювання.
Застосування цифрового індикатора та клавіатури спростить роботу з установкипараметрів автоматичного регулювання та контролю регульованого значення. p>
В дипломному проекті розглядається автоматизована системауправління двигуном. Як регулятор використовується мікроконтроллер,який повинен підтримувати, визначену користувачем, частоту обертання івидавати поточні обороти якоря двигуна. p>
Аналіз вихідних даних, вибір параметра контролю. p>
Вихідними даними визначена розробка плати та програмногозабезпечення з режимами установки частоти обертання якоря двигуна,стабілізації частоти обертання і її індикації. p>
Область застосування макета - лабораторні та практичні роботи в
ККЕП. P>
1 налагодження комплекс. P>
Базою вихідних даних є налагоджувальний комплекс МК51. Комплексскладається з плати мікроконтролера і програмного забезпечення і призначенийдля налагодження і тестування апаратури і програмного забезпеченнякеруючих систем, виконано на базі мікроконтролера (МК) сімейства Intelimcs51. p>
Плата МК51 складається з наступних блоків: p>
- МК SAB80C535 призначений для виконання програми МОНІТОР і для виконання призначеної для користувача програми (управління); p>
- постійний запам'ятовуючий пристрій, призначений для зберігання програми МОНІТОР; ємність ПЗУ 32К байт; p>
- оперативний запам'ятовуючий пристрій, призначений для збереження програми користувача (програма роботи управляючої системи); p>
- дисплей, призначений для контролю значень що вводяться параметрів, виведення значень параметрів системи управління, виведення символів; p>
- клавіатура, призначена для введення значень параметра програми керуючої системи, запуску програми управління, виклику процедур і скидання МК; p>
-- буфер інтерфейсу зв'язку плати ПМК з комп'ютером; p>
- блок комутації адрес ОЗУ і ПЗУ. p>
Програмне забезпечення складається з програми FDSAB повноекраннийвідладчик програм на асемблері мікроконтролерів сімейства МК51,орієнтований на використання спільно з платою для налагодження програм набазі мікроконтролера Siemens SAB80C535 призначена для відображення іповноекранного редагування ресурсів мікроконтролера, завантаженняпрограмного коду для мікроконтролера, виконання його в ПМК повністю,блоками або по кроках. p>
У програмі передбачений режим терміналу з можливістю вибору номеракомунікаційного каналу (1 або 2) і швидкості передачі і прийому даних. p>
Меню програми містить наступні пункти: p>
1. Завантажити файл з програмою ... p>
2. Виконати програму ПМК p>
3. Перечитати ОЗУ і регістри З ПМК p>
4. Завантажити ОЗУ і регістри У ПМК p>
5. Прочитати ПЗУ або ОЗУ команд ПМК ... p>
6. Завантажити ПЗУ або ОЗУ команд ПМК ... p>
7. Перезавантажити програму У ПМК p>
8. Дизасемблювати команди в діапазоні ... p>
9. Зберегти текст програми у файл ... p>
10. Включити/виключити символьні мітки p>
11. Параметри зв'язку ... p>
12. Режим терміналу> p>
13. Коротка інформація про систему p>
14. Вихід p>
Призначення пунктів меню: p>
1. Вибір на дисках комп'ютера виконуваного файлу (. BIN) з програмою, завантаження в відладчик і пам'ять команд макета і дізассемблірованіе завантаженого коду на екран в область відображення дизасемблювати інструкцій. P>
2. Передача управління від монітора ПМК програмі користувача в пам'яті команд макета. P>
3. Зчитування вмісту внутрішньої ОЗУ макета і спеціальних функціональних регістрів з ПМК. P>
4. Завантаження в ПМК вмісту внутрішньої ОЗУ з відладчика і спеціальних регістрів. P>
5. Зчитування вмісту пам'яті команд ПМК в відладчик (діапазон запитується). P>
6. Завантаження вмісту пам'яті команд ПМК з відладчика в ПМК (діапазон запитується). P>
7. Перезавантаження коду програми в пам'ять команд ПМК з пам'яті відладчика. P>
8. Дізассемблірованіе програмного коду з пам'яті команд відладчика в запитуваній діапазоні адрес. За вибором користувача інструкції дописуються за вже наявними або замінюють їх. P>
9. Зберігає у файл, ім'я якого запитується, дизасемблювати фрагмент програми користувача з мнемонічний позначеннями регістрів процесора Siemens SAB80C535 і символьними мітками (якщо включений режим відображення символьних міток). P>
10. Перемикає режим подання дизасемблювати коду на екрані: з виділеними символьними мітками або тільки з адресами переходів. P>
11. Зміна номера послідовного порту комп'ютера, до якого підключена ПМК і швидкості передачі через порт за допомогою зміни дільника частоти. P>
12. Переклад програми в режим терміналу. У цьому режимі користувач може приймати і передавати дані по послідовному порту в ПМК. P>
13. Відображення короткої інформації про систему (обсяг вільної ОП, місце на поточному диску, параметри з'єднання, завантажений файл). P>
14. Вихід з програми. P>
2 Вибір параметра контролю. P>
Очевидним параметром контролю є частота обертання ротораелектродвигуна. Датчиком для встановлення числа обертів може служитиоптопара. Однак у цьому випадку з-за малої частоти імпульсів, що надходятьвід датчика, буде невисокою стабільність частоти обертання, через великутривалості виміру і швидкого характеру зміни навантаження. p>
Для збільшення стабільності передбачається диск на якомурозташовано Максимальна кількість прорізів. У цьому разі одному обороту валадвигуна буде відповідати велика кількість імпульсів від датчика. Алеі в цьому випадку для точного вимірювання частоти обертання потрібнозначний час. Проведені досліди дійсно показали значневідхилення частоти обертання від встановленої. p>
Вищу стабільність утримання частоти обертання забезпечує спосібвимірювання періоду імпульсів від датчика. МК має у своїй архітектурівідповідну апаратну і програмну підтримку. p>
Опис схеми електричної принципової. p>
Схема електрична принципова представлена в графічній частиніЛист1. p>
1 Плата мікроконтролера. p>
Порти Р0 і Р2 МК використовуються в режимі зовнішньої пам'яті. Молодшірозряди адреси комірки пам'яті запам'ятовуються в регістрі адреси (DD9) імпульсом
ALE. P>
Блок переадресування виконаний на елементах DD6 і DD7 і виконуєфункцію перемикання адрес відповідно до таблиці 3.1. p>
Таблиця 3.1 p>
| Вихідний адреса | Робоча адреса |
| ПЗУ | ОЗП | ПЗУ | ОЗП |
| 0000Н | 8000Н | 8000Н | 0000Н | p>
По сигналу RESET = 0 RS - тригер на елементах DD7.3 - DD7.4 встановленийв одиничне стан (на виведення 13 DD7.4 рівень логічного нуля) іа коли ПЗУ (DD12). Після відпускання кнопки скидання (SA1) тригерзберігає свій стан і імпульсом PSEN зчитується 1-й байт командипереходу з ПЗУ. Тригер утримується в одиничному стані сигналом звиходу DD6.1 (А15 = 0 => А15 = 1), незважаючи на наявність імпульсу PSEN на вході 1елемента DD7.2. p>
У наступних двох зверненнях зчитується з ПЗУ адреса переходу 8000Н івиконується команда SJMP 8000H. p>
При читанні з комірки 8000Н першого байта команди МК видає адресу, вякому А15 = 0, отже на виході DD6.1 формується низький рівень.
Імпульсом PSEN формується позитивний імпульс на виході DD7.2 і тригерперемикається. Так як А15 = 1, то на виході DD6.1 присутній низькийрівень, отже на виході DD6.2 - високий і незважаючи на те, щотригер переключився вибір ОЗУ не проводиться. Вибір ОЗП будепроводиться якщо А15 = 0 і зчитування команд проводиться імпульсом PSEN. p>
Порти Р4 і Р5 використовуються для підключення клавіатури і дисплея. Уплаті використовується клавіатура формату 4х4 і чотирьох розрядний дисплейдинамічного типу. Розряди Р4.3 - Р4.0 є розрядами скануванняклавіатури і одночасно розрядами вибору індикатора. Сигнали виборуіндикатора ( «біжить нуль») подаються на входи підсилювачів (DD10). Низькийрівень з виходу DD10 виробляє виключення транзистора, через якийподається на загальний анод обраного індикатора напруга +5 В. p>
Сигнали сегментів з виходів порту Р5 через струмові підсилювачі DD4надходять на шину сегментів С0 - С7 індикаторів. Резистори R17 - R24визначають значення амплітуди імпульсу струму, що протікає через сегменти. p>
Розряди Р4.7 - Р4.4 є входами сигналів опитування клавіатури. p>
За допомогою елементів DD11.1 - DD11.2 формується сигнал запитупереривання від клавіатури, що надходить на вхід INT0 МК. p>
ІМС DD5 є перетворювачем рівнів для послідовногоканалу. p>
Елементи джерела живлення: p>
VD3 - діод випрямляча; p>
С5 - С8 - згладжує фільтр; p>
DD3 - стабілізатор напруги . p>
Трансформатор блоку харчування винесено в окремий блок, суміщенийвиделкою харчування. p>
З'єднання з «зовнішнім світом» проводиться за допомогою роз'ємів. p>
Роз'єм Х7 призначений для з'єднання з СОМ - портами комп'ютера. p>
На контакти роз'ємів Х1 виведені входи порту Р6 і входи еталонниххарчування та землі. p>
На контакти роз'єму Х5 виведені лінії від порту Р3. p>
На контакти роз'єму Х4 виведені лінії від порту Р1. p>
Роз'єм Х8 використовується для підключення блоку трансформатора. p>
2 Плата макета. p>
Оптопари VD1 VD2 є датчиком частоти обертання якоря двигуна.
Фотодіод VD1 формує струмові імпульси при проходженні шторки освітленнямвід світлодіода VD2. Імпульс з VD1 відкриває транзистор VT1 тим самимформуючи імпульс на його колекторі. p>
Управління двигуном відбувається за допомогою DD1 (ІМС управлінняреверсивними колекторних двигунів). Режими роботи представлені втаблиці 3.2. p>
Таблиця 3.2 p>
| Режим роботи | IN1 | IN2 | OUT1 | OUT2 |
| Гальмо | 1 | 1 | L | L |
| Движ/Рев | 0 | 1 | L | H |
| Рев/Движ | 1 | 0 | H | L |
| Стоп | 0 | 0 | (| (| p>
На входи DD1 надходять логічні рівні «0» «1», що вибирає режимроботи двигуна, підключеного до виходів DD1. С1 - С4 - згладжуютьфільтри. p>
змінним резистором R8, з'єднаний послідовно з генератором,подається навантаження на двигун. Резистори R5 R9 (R5 = R9) з'єднані загальнимпроводом, а з інших кінців знімається аналогове значення напруги длявизначення навантаження. Залежно від напрямку обертання генератора струмв ланцюзі буде протікати у двох напрямках, отже, значенняпотенціалів напруги на R5 R9 будуть протилежні, але рівні за значенням.
Це забезпечує вимірювання напруги в реверсному режимі роботи двигуна. P>
Опис алгоритму програми. P>
Блок схема алгоритму представлена в графічній частині лист 2. P>
Головна програма зациклена і являє собою блок процедуриіндикації. Програми вимірювання частоти обертання двигуна і обробкинатиснення клавіш виконуються перериваючи основну програму індикаціїпереривань від вимірника частоти та клавіатури відповідно. Післявиконання програм обробки переривань програма індикації продовжуєроботу з місця її переривання. p>
Підпрограма (ПП) обробки переривання від вимірника (INT1) спочаткувиконання перевіряє повторне входження в ПП. При першому входженняздійснюється запуск вимірника і вихід. При повторному входженнявиміряне значення тривалості періоду імпульсу від датчика запам'ятовується,порівнюється із заданим значенням. Якщо виміряний значення меншезаданого тоді значить частота обертання знизилася і відбувається включеннядвигуна, інакше двигун вимикається. Після чого аналізується режиміндикації: обороти двигуна або індикація навантаження доданої до двигуназа допомогою генератора. Залежно від зробленого вибору змірянезначення частоти обертання або навантаження перетворюється в позиційно -десяткове значення і видається в індикатор. Потім відбувається вихід з ПП. P>
В ПП обробки переривання від клавіатури (KLAV) визначається натисканняфункціональної клавіші. Якщо клавіша не функціональна то виконується зсувиндикационного осередків вліво і запис коду натиснутою клавіші в останньоюиндикационного клітинку, далі вихід. Якщо ж клавіша функціональнапроводиться визначення яка саме натиснута для цього служать чотири блокирішення, якщо функціональність клавіші не визначиться то значить натиснутаклавіша «реверсу» при натисканні якої здійснюється реверс напрямкуобертання якоря двигуна і вихід. Далі перераховані дії після натисканняфункціона?? ьних клавіш, після виконання яких ПП завершується: p>
- клавіша «видалити» - зрушення индикационного осередків в право і запис в старшу клітинку нуля; p>
- клавіша «старт» - перетворення введеного числа обертів на секунду в тривалість періоду імпульсів з датчика; p>
- клавіша «стоп» - зупинка двигуна; p>
- клавіша «режим» - перемикання режиму індикації частоти обертання/подається навантаження.
Опис програми. p>
У програмі використовуються символічні імена присвоєні осередків ОЗУ: p>
st1 data 52h p>
номер зсуву индикационного осередку n_sd data 53h
введена частота обертання якоря двигуна obor data 54h p>
ділене 1-й байт chi_3 data 55h p>
ділене 2-й байт chi_2 data 56h p>
ділене 3-й байт chi_1 data 57h p>
дільник 1-й байт zn_h data 59h p>
дільник 2-й байт zn_l data 5ah p>
приватне 1-й байт rez_h data 5bh p>
приватне 2-й байт rez_l data 5ch p>
результат ділення 16/8 rezul data 5dh p>
виміряна тривалість імпульсу мл. байт dli_i_l data 5eh p>
виміряна тривалість імпульсу ст. байт dli_i_h data 5fh p>
задана тривалість імпульсу мл. байт dli_l data 60h p>
задана тривалість імпульсу ст. байт dli_h data 61h p>
тимчасова осередок temp data 62h p>
лічильник паузи видачі обчисленого значення indik data 63h p>
використовуються біти прапорів перераховані нижче: p>
повторний вхід в п.п. вимірювання періоду імпульсу flag bit 00h p>
індикація натиснення функціональної клавіші f_ind bit 01h p>
функціональна клавіша «реверс» f_rev bit 02h p>
напрямок обертання f_nap bit 03h p >
вкл./викл. двигун f_rab bit 04h p>
індикація обертів/навантаження f_rez bit 05h p>
функціональна клавіша «режим» f_rezind bit 06h p>
Ділення 24-х бітового числа на 16-й бітне результат 16 біт,реалізовано в підпрограмі div24. Розподіл багатобайтові числа набагатобайтові реалізується за принципом віднімання дільника з ділене ззрушенням останнього вліво, з можливістю відновлення ділене. Передпроцедурою поділу в осередку дільника записується число в діапазоні 0 -
0fffh. На початку поділу відбувається: зсув дільника на чотири розряду влівоце необхідно для розподілу 24/16, запис у приватне 10h для визначеннязакінчення поділу, запис в комірки ділене число 1000000. На початку циклуподілу здійснюється зсув ділене вліво на один розряд, а також зсуввліво приватного та запис у стек значень прапорів переносів. Далі зі старшоїчастини ділене віднімаємо дільник, в залежності від знаку переносу в приватнезаписується «0» або «1» і збереження ділене. Перевірка переносу призрушенні ділені й запис у приватне «1» якщо перенесення був. Перевірка закінченняподілу шляхом перевірки відновленого значення прапора переносу при зсувіприватного. Після закінчення поділу результат ділення знаходиться в коміркахрезультату. p>
Після натискання клавіші «Старт» відбувається перетворення значенняиндикационного осередків у двійковий код (1 байт), після чого це значеннямножиться на 24, що відповідає 24 прорізами диска оптопари (результат 2байти) і ділимо 1000000 на це число в результаті виходить тривалістьперіоду імпульсів від оптопари для введеного числа обертів на секунду.
Після перетворення виконується функція запуску двигуна яка даєпоштовх і дозволяється переривання INT1 з оптопари. p>
У підпрограмі обробки переривання 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) раз вимірювання імпульсів, цепотрібно для того, щоб прибрати мерехтіння цифр на індикаторі. Перетворенняобчисленого значення в частоту обертання двигуна в обр/сек відбуваєтьсянаступним чином: розподіл 1000000 на виміряне значення, поділ на 24,перетворення bin-> dec-> індикатор. Перед завершенням підпрограмиобробки переривання INT1 здійснюється ініціалізація регістрів і осередківперед наступним запуском процедури і дозволяється переривання INT1. p>
Для установки таймера і переривання INT1 використовуються наступнікеруючі слова: p>
- TMOD = 01H - режим роботи таймера; p>
- TCON = 04H p>
- Tr - розряд запуску таймера; p>
- IEN0 - дозволу переривань p>
- 8 розряд - заборона всіх переривань; p>
- 3 розряд - INT1; p>
- 1 розряд - INT0 (клавіатура); p>
Методика виконання лабораторної роботи. p>
1 Мета роботи. P>
Придбання практичних навичок у технології розробки і налагодженняелементів керуючих систем. p>
2 Опис лабораторної установки. p>
Лабораторна установка складається з наступних частин: плати керування
ПМК, плати двигуна і блоку живлення. P>
Плата двигуна ріс.6.1 складається з трьох блоків: блок датчика швидкостіобертання, блок управління, блок датчика навантаження. Плата двигунапідключається до роз'ємів портів ПМК за допомогою роз'ємів. X2 підключається допорту Р3 і служить для з'єднання: оптопари ( «Датчик») зі входом переривання
INT1, портів Р3.4 Р3.5 з входами блоку управління (Упр1 і Упр2). X6підключається до порту Р6 використовуючи дві лінії AI6 і AI7 для вимірюваннянавантаження пропонуються до двигуна за допомогою генератора (вимірювання навантаженняпрелагаєт з поза за допомогою цієї схеми неможливо). Використання двохканалів передбачається для вимірювання напруги двигуна з можливимреверсом коли при обертанні в одну сторону вимір відбувається з першихканалу, а при обертанні в іншу з другим. Такий розподіл виходитьшляхом використання дільника напруги загальний кінець якого з'єднаний знульовим проводом і при протіканні струму в різних напрямках змінює знакнапруги на кінцях дільника щодо спільного проведення напротилежний. Опорне напруга Uref подається з'єднанням +5 В, анижня межа (Ugnd) задається з'єднанням із загальним. p>
p>
Рис. 6.1.Схема плати двигуна. P>
Роз'єм X3 з'єднує схему з блоком живлення. P>
Датчик числа оборотів являє собою диск, з 24-ю прорізами,жорстко закріплений навалу обертання двигуна. Під час проходження прорізиміж оптопари світлодіод VD2 висвітлює інфрачервоним випромінюванням фотоприймачщо представляє собою фотодіод VD1. Напівпровідниковий фотоприймач зменшившиза рахунок цього свій опір починає пропускати струм відкриваючи тим самимтранзистор VT1 з колектора якого знімаються прямокутні імпульси. p>
Обороти двигуна прямо пропорційні додається до ньогонапруги. У зв'язку з цим пропонується утримувати частоту обертання ввизначених межах за допомогою зміни напруги що подається надвигун. Використання цифрових систем керування які дозволяютьшвидко обробляти дані робить можливим застосування якмінливого напруги шим-генератор. Тривалість імпульсів і паузформується динамічно в залежності від характеру прикладеною навантаження.
Утримання оборотів при збільшенні навантаження буде триває до тих пір, покитривалість паузи не буде рівною нулю і подальше збільшення навантаженнябуде знижувати оберти двигуна. Для поліпшення підтримки частоти обертанняпропонується максимально можливо збільшити напругу джерела живлення. p>
3 Вихідні дані. p>
1. Комплекс налагоджувальний: плата, ПО FDSAB; p>
2. Встановлення управління двигуном; p>
3. Можливість установки частоти обертання з клавіатури; p>
4. Стабілізація частоти; p>
5. Імпульси з датчика надходять на вхід переривання INT1; p>
6. Управління двигуном здійснюється видачею коду на порти Р3.4 і p>
Р3.5 відповідно до таблиці 6.1; p>
7. Максимальна швидкість обертання двигуна 110 обр1/сек.; P>
8. Число прорізів диска обертання датчика складає 24 шт. P>
9. Потужність двигуна 10 Вт; p>
10. Входи для вимірювання навантаження поступають на АЦП канали AI6 і AI7. P>
VAREF = 5B. P>
Таблиця 6.1 p>
| Режим роботи | IN1 | IN2 | OUT1 | OUT2 |
| Гальмо | 1 | 1 | L | L |
| Движ/Рев | 0 | 1 | L | H |
| Рев/Движ | 1 | 0 | H | L |
| Стоп | 0 | 0 | (| (| p>
4 Домашні завдання. P>
Скласти алгоритм і програму стабілізації частоти обертанняелектродвигуна постійного струму з паралельним збудженням ввідповідно до вихідних даних. p>
5 Рекомендації щодо виконання. p>
Як параметр регулювання взяти тривалість періодівімпульсів від оптопари. Вибір цього параметра замість вимірювання частотиобертання диска, перекрепленного на двигун, дозволяє проводити швидкийконтроль стабільності системи управління за рахунок значного зменшеннятривалості виміру. Для такого регулювання необхідно перетворювативведену частоту обертання у тривалість періоду імпульсів, що формуютьсяпрорізами на диску датчика, і назад - тривалість періоду в частотуобертання. Рекомендується здійснювати перетворення в такий спосіб: p>
1) Введену частоту обертання (обр/сек) помножити на кількість прорізів в диску (24); p>
2) 1000000 розділити на отримане число, в результаті чого вийде тривалість одного періоду в мкс. p>
Для зворотного перетворення: p>
1) 1000000 розділити на тривалість періоду; p>
2) розділити на 24. p >
При розподілі 1000000 (3 байти) на 2 байтів можливе використаннястандартної процедури розподілу 4-х байтного числа на 2-й байтного. Але длябільш швидкого поділу (а значить і збільшення швидкості вимірювання)рекомендується зменшити тривалість поділу, виробляючи поділ 6-ти зошити
(1000000) на 3-и тетради (максимально можливе число 4095), для цьогонеобхідно: p>
1) перед процедурою розподілу зрушити дільник на чотири розряду вліво; p>
2) продовжувати поділ з урахуванням зрушено дільника, тобто поділ має триває на чотири цикли менше;
3) після процедури розподілу зрушити приватне на чотири розряду ліворуч. p>
Для вимірювання тривалості періоду імпульсів необхідно яклічильника використовувати один з таймерів в режимі таймера. Подача на вхідпереривання INT1 імпульсів викликає ПП обробки переривання в якійнеобхідно стежити за першим і другим входом в ПП. При першому входженнявключити таймер, а при другому входження вважати стан таймера, що ібуде тривалістю періоду імпульсу. p>
6 Послідовність виконання роботи. p>
1. Набрати текст програми; p>
2. Відкомпілювати програму; p>
3. Запустити відладчик FDSAB; p>
4. Завантажити у пам'ять bin файл, запустити програму на виконання; p>
5. Зняти залежність зміни частоти обертання від подається навантаження; p>
6. Зробити висновок про виконану роботу; p>
7. Скласти звіт. P>
Увага! При додатку великих зусиль гальмування двигуна він може зупиниться що призведе до різкого збільшення струму в вихідний ланцюга p>
ІМС управління і можливо вихід її з ладу. P>
Висновок. P>
У результаті проведеної дипломної роботи була розроблена платамакета та програмне забезпечення блоку управління реверсивним двигуном. Зрежимами роботи: встановлення частоти обертання якоря двигуна, стабілізації ііндикації частоти. В якості навантаження використовується генератор, з'єднанийз двигуном, на виходи якого приєднаний змінний резистор, якимзадається навантаження. У ланцюг генератора включений дільник напруги длявимірювання напруги і його індикації. p>
При розробці дипломного проекту було випробувано два способиавтоматичного регулювання частоти обертання двигуна: вимірювання частоти
(за певний час підраховується кількість імпульсів від датчика),вимір періоду (вимірювалася тривалість періоду імпульсів що надходять віддатчика). Перший спосіб вимірювання частоти показав погану стабільністьчастоти обертання регулюючої системи, тому що з-за великої тривалостівиміру (при зменшенні тривалості виміру збільшувалася похибка)і швидкої зміни характеру навантаження система не встигала відстежувати цезміна, а отже і регулювати вхідну величину. Другий спосібрегулювання з вимірюванням тривалості періоду показав хорошустабільність автоматичної системи управління. Це досягається збільшеннячисла прорізів на обертовому диску оптопари, вимірювання триває короткийчас, за який система автоматичного регулювання не встигаєвідхилитися від встановленого значення. Невелике відхилення частотиобертання за короткий проміжок часу (часу вимірювання одного періоду)відразу контролюється і відбувається модифікація вихідного параметра. p>
Література. p>
1. Григорьев В. Л. Програмне забезпечення мікропроцесорних систем. P>
- М.: Энергоатомиздат, 1983. P>
2. Щелкунов М. М., Діанов А. П. Мікропроцесорні засоби та системи. P>
- М.: Радіо і зв'язок, 1989. P>
3. Сташін В. В. Проектування цифрових пристроїв на однокристальних мікроконтролерах. - М.: Энергоатомиздат, 1990. P>
4. Іванов В. І. Напівпровідникові оптоелектронні прилади: Довідник p>
- 2-е изд., Перераб. І доп. - М.: Энергоатомиздат, 1989 p>
5. Хвощ С. Т. Мікропроцесори і мікроЕОМ в системах автоматичного управління. Довідник. Л.: Машиностроение. Ленингр. отд-ние, p>
1987. p>
Додаток. p>
Текст програми. p>
; присвоєння імен p>
p4 data 0e8h p>
p5 data 0f8h p>
ip0 data 0a9h p>
ip1 data 0b9h p>
ien0 data 0a8h p>
ien1 data 0b8h p>
adcon data 0d8h p>
addat data 0d9h p>
darp data 0dah p>
st1 data 52h p>
n_sd data 53h p>
obor data 54h p>
chi_3 data 55h p>
chi_2 data 56h p>
chi_1 data 57h p>
chi_t data 58h p>
zn_h data 59h p>
zn_l data 5ah p>
rez_h data 5bh p>
rez_l data 5ch p>
rezul data 5dh p>
dli_i_l data 5eh p>
dli_i_h data 5fh p>
dli_l data 60h p>
dli_h data 61h p>
temp data 62h p>
indik data 63h p>
flag bit 00h p>
f_ind bit 01h p>
f_rev bit 02h p>
f_nap bit 03h p>
f_sta bit 04h p>
f_rab bit 05h p>
f_rez bit 06h p>
f_rezind bit 07h p>
; визначення векторів переривань p>
org 0000h p>
sjmp start p>
org 0003h p>
ljmp klav p>
org 013h p>
ljmp int_1 p>
; початкова ініціалізація p>
start: mov darp, # 00h p>
mov adcon, # 0fh p>
clr f_rezind p>
clr f_rab p>
clr f_rev p>
clr f_sta p>
setb f_nap p>
setb f_rez p >
mov n_sd, # 0bh p>
mov st1, # 3fh p>
mov ip0, # 04h p>
mov ip1, # 04h p> < p> mov sp, # 65h p>
mov ien0, # 81h p>
inizial: mov r0, # 47h p>
mov r1, # 03h p> < p>; початкове обнуління індикатора p>
numb: mov @ r0, # 00h p>
inc r0 p>
djnz r1, numb p>
; визначення режиму роботи та його індикація p>
jnb f_sta, re1 p>
jb f_rez, re1 p>
mov 4ah, # 19h p>
sjmp re2 p>
re1: mov 4ah, # 10h p>
re2: clr f_ind p>
beg: jb f_ind, beg2 p>
; визначення режиму роботи p >
jnb f_rezind, na2 p>
clr f_rezind p>
jb f_nap, na1 p>
mov 4ah, # 0fh p>
sjmp na2
na1: mov 4ah, # 0ah p>
; запуск двигуна з перевіркою напрямку обертання p>
na2: jnb f_rev, beg2 p>
jb f_nap, napr1 p>
clr p3.5 p>
mov 4ah, # 0fh p>
jb f_rez, napr p>
mov 4ah, # 19h p >
sjmp napr p>
napr1: clr p3.4 p>
mov 4ah, # 0ah p>
jb f_rez, napr p>
mov 4ah, # 19h p>
napr: clr f_rev p>
clr flag p>
setb f_rab p>
mov ien0, # 85h p> < p>; зупинка двигуна p>
beg2: jnb f_ind, beg1 p>
djnz st1, beg1 p>
mov st1, # 05fh p>
; зсув индикационного осередків вправо p>
mov r0, # 0ahov r1, # 49h p>
mov 40h, # 10h p>
sdvig: mov a, @ r1 p> < p> inc r1 p>
mov @ r1, a p>
mov a, r1 p>
subb a, # 02h p>
mov r1, a p>
djnz r0, sdvig p>
djnz n_sd, beg1 p>
mov n_sd, # 0bh p>
ljmp inizial p>
; процедура індикації p>
beg1: mov r4, # 0feh p>
mov dptr, # tabcod p>
mov r0, # 47h p>
cycl: mov p4, # 0ffh p>
mov a, @ r0 p>
movc a, @ a + dptr p>
mov p5, a p>
mov a, r4 p>
mov p4, a p>
rl a p>
mov r4, a p>
inc r0 p>
lcall del p>
cjne r0, # 4bh, cycl p>
ljmp beg p>
del: mov r1, # 10 p>
st_2: mov r2 , # 10 p>
st_1: nop p>
nop p>
nop p>
djnz r2, st_1 p>
djnz r1, st_2 p>
ret p>
tabcod: db 0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 82h, 0f8h, 80h, 90h p>
db 0feh, 0fdh, 0fbh, 0f7h, 0efh, 0dfh, 0ffh p>
db 0c6h, 0f8h, 0c0h, 0c8h, 88h, 8ch, 86h, 80h, 89h, 0ceh, 91h, 0b0h, 82h p>
; клавіатура p>
klav: push acc p>
push p4 p>
push psw p>
setb psw.3 p>
mov r4 , # 00h p>
mov r7, # 04h p>
mov r6, # 0feh p>
loop: mov a, r6 p>
mov p4, a p>
rl a p>
mov r6, a p>
mov a, p4 p>
mov r5, # 04h p>
swap a p>
rotate: rrc a p>
jnc dbnc p>
inc r4 p>
djnz r5, rotate p>
djnz r7, loop p>
ljmp quit p>
dbnc: mov r2, # 0ah p>
m1: mov r3, # 55h p>
m2: djnz r3, m2 p>
djnz r2, m1 p>
mov a, # 0f0h p>
wait: mov p4, # 0f0h p>
cjne a , p4, wait p>
mov r2, # 0ah p>
m3: mov r3, # 55h p>
m4: djnz r3, m4 p>
djnz r2, m3 p>
mov a, # 09h p>
subb a, r4 p>
jc func p>
rel: mov r0, # 03h p>
mov r1, # 48h p>
new: mov a, @ r1 p>
inc r1 p>
mov @ r1, a p >
mov a, r1 p>
subb a, # 02h p>
mov r1, a p>
djnz r0, new p>
mov r1, # 47h p>
mov 47h, r4 p>
ljmp quit p>
; визначення режиму з функціональної клавіші p>
func: jb f_ind, quit p>
cjne r4, # 0ah, g2 p>
ljmp bakesp p>
g2: cjne r4, # 0bh, g3 p>
ljmp sta p>
g3: cjne r4, # 0ch, g4 p>
ljmp stop p>
g4: cjne r4, # 0dh, g5 p>
ljmp rezim p>
g5: cjne r4, # 0eh, g6 p>
ljmp rezim p>
g6: ljmp revers p>
quit: clr psw.3 p >
pop psw p>
pop p4 p>
pop acc p>
reti p>
; видалення символу p>
bakesp : jb f_rab, quit p>
mov 47h, 48h p>
mov 48h, 49h p>
mov 49h, # 00h p>
ljmp quit p>
; старт. DEC-> BIN p>
sta: jb f_rab, quit p>
mov 4ah, # 0ah p>
mov b, # 0ah p>
mov a , 49h p>
mul ab p>
add a, 48h p>
mov b, # 0ah p>
mul ab p>
add a, 47h p>
mov obor, a p>
; BIN * 24 p>
mov b, # 18h p>
mov a, obor
mul ab p>
mov zn_l, a p>
mov zn_h, b p>
; деленіе1000000 на отримане значення p>
lcall div24 p>
mov dli_l, rez_l p>
mov dli_h, rez_h p>
; старт вимір p>
mov tl0, # 00h p> < p> mov th0, # 00h p>
clr flag p>
mov indik, # 00h p>
mov tmod, # 10h p>
mov tcon, # 04h p>
mov 4ah, # 10h p>
mov 49h, # 10h p>
mov 48h, # 10h p>
mov 47h, # 10h p>
mov 46h, # 11h p>
mov 45h, # 12h p>
mov 44h, # 15h p>
mov 43h, # 16h p>
mov 42h, # 12h p>
mov 41h, # 10h p>
setb f_ind p>
setb f_rev p>
setb f_sta
ljmp quit p>
; стоп p>
stop: jnb f_rab, quit p>
mov ien0, # 81h p>
setb p3.4 p>
setb p3.5 p>
clr f_rab p>
mov 4ah, # 10h p>
mov 49h, # 10h p >
mov 48h, # 10h p>
mov 47h, # 10h p>
mov 46h, # 10h p>
mov 45h, # 11h p> < p> mov 44h, # 12h p>
mov 43h, # 13h p>
mov 42h, # 14h p>
mov 41h, # 10h p>
setb f_ind p>
clr f_sta p>
ljmp quit p>
; реверс p>
revers: jnb f_rab, out2 p>
mov ien0, # 81h p>
setb p3.4 p>
setb p3.5 p>
mov 4ah, # 10h p>
mov49h, # 10h p>
mov 48h, # 10h p>
mov 47h, # 10h p>
mov 46h, # 16h p>
mov 45h, # 17h p>
mov 44h, # 18h p>
mov 43h, # 17h p>
mov 42h, # 16h p>
mov 41h, # 11h p>
jb f_nap, n1 p>
mov adcon, # 0eh p>
sjmp n2 p>
n1: mov adcon, # 0fh p>
n2: setb f_rev p>
cpl f_nap p>
setb f_ind p>
out2: ljmp quit p>
; режим оберти двигуна/навантаження
rezim: jnb f_rab, out p>
cpl f_rez p>
jb f_rez, rez1 p>
mov 4ah, # 10h p>
mov 49h, # 10h p>
mov 48h, # 10h p>
mov 47h, # 10h p>
mov 46h, # 19h p>
mov 45h, # 15h p>
mov 44h, # 1ah p>
mov 43h, # 16h p>
mov 42h, # 1bh p>
mov 41h, # 1ch p>
setb f_ind p>
out: ljmp quit p>
rez1: mov 4ah, # 10h p>
mov 49h, # 10h p>
mov 48h, # 10h p>
mov 47h, # 10h p>
mov 46h, # 13h p>
mov 45h, # 1dh p>
mov 44h, # 13h p>
mov 43h, # 16h p>
mov 42h, # 13h p>
mov 41h, # 12h p>
setb f_rezind p>
setb f_ind p>
ljmp quit p>
; процедура поділу 3-х байт на 2-ва p>
div24: push psw p>
push acc p>
mov chi_3, # 0fh p>
mov chi_2, # 42h p>
mov chi_1, # 40h p> < p> mov rez_h, # 00 p>
mov rez_l, # 10h p>
mov a, zn_h p>
mov b, # 10h p>
mul ab p>
mov zn_h, a p>
mov a, zn_l p>
mov b, # 10h p>
mul ab p>
mov zn_l, a p>
mov a, b p>
add a, zn_h p>
mov zn_h, a p>
lp24: mov a, rez_l p>
rlc a p>
mov rez_l, a p>
mov a, rez_h p>
rlc a p>
mov rez_h , a p>
push psw p>
clr c p>
mov a, chi_1 p>
rlc a p>
mov chi_1, a p>
mov a, chi_2 p>
rlc a p>
mov chi_2, a p>
mov a, chi_3 p>
rlc a p>
mov chi_3, a p>
push psw p>
clr c p>
mov a, chi_2 p>
subb a, zn_l p>
mov chi_t, a p>
mov a, chi_3 p>
subb a, zn_h p>
jc nosav p> < p> pop psw p>
sav: mov chi_3, a p>
mov chi_2, chi_t p>
inc rez_l p>
sjmp qsav p>
nosav: pop psw p>
jc sav p>
qsav: pop psw p>
jnc lp24 p>
pop acc p> < p> pop psw p>
ret p>
; переривання від датчика p>
int_1: jb flag, iz2 p>
setb flag p> < p> setb tr1; перше входження. запустити таймер p>
reti p>
iz2: push psw; друге входження p>
push acc p>
clr tr1 p>
mov ien0, # 80h p>
mov dli_i_l, tl1; зберегти виміряний значення p>
mov dli_i_h, th1; p>
; регулювання p>
clr c
mov a, dli_i_l p>
subb a, dli_l p>
mov a, dli_i_h p>
subb a, dli_h p>
jc mot_1 p>
jb f_nap, nap11 p>
setb p3.4 p>
sjmp mot_0 p>
nap11: setb p3.5 p>
sjmp mot_0 p>
mot_1: jb f_nap, nap01 p>
clr p3.4 p>
sjmp mot_0 p>
nap01: clr p3. 5 p>
mot_0: p>
; індикація p>
jb f_ind, inizdp p>
djnz indik, inizdp p>
mov indik , # 2fh p>
jb f_rez, chas p>
; індикація навантаження p>
azp0: jnb adcon.4, azp0 p>
mov a, addat p>
mov b, # 0ah p>
div ab p>
mov 47h, b p>
mov b, # 0ah p>
div ab p>
mov 48h, b p>
mov 49h, a p>
inizdp: ljmp iniz p>
; індикація частоти обертання p >
chas: jb f_nap, i_nap1 p>
mov a, 4ah p>
cjne a, # 0ah, in_ob2 p>
mov 4ah, # 10h p >
in_ob2: dec 4ah p>
sjmp i_nap2 p>
i_nap1: mov a, 4ah p>
cjne a, # 0fh, in_ob1 p>
mov 4ah, # 09h p>
in_ob1: inc 4ah p>
i_nap2: mov zn_l, dli_i_l p>
mov zn_h, dli_i_h p>
lcall div24 ; поділ 3 байт на 2 байтів p>
mov rezul, # 01h; поділ 2 байт на 24 p>
lp16: clr c p>
mov a, rezul p >
rlc a p>
mov rezul, a p>
push psw p>
clr c p>
mov a, rez_l p>
rlc a p>
mov rez_l, a p>
mov a, rez_h p>
rlc a p>
mov rez_h, a p >
push psw p>
clr c p>
mov a, rez_h p>
subb a, # 18h p>
jc nosav16 p >
pop psw p>
sav16: mov rez_h, a p>
inc rezul p>
sjmp qsav16 p>
nosav16: pop psw p>
jc sav16 p>
qsav16: pop psw p>
jnc lp16 p>
; BIN-> DEC p>
mov a, rezul p>
mov b, # 0ah p>
div ab p>
mov 47h, b p>
mov b, # 0ah p>
div ab p>
mov 48h, b p>
mov 49h, a p>
; ініціалізація нового запуску програми виміру p>
iniz: mov tl1, # 00h p>
mov th1, # 00h p>
clr flag p>
port_0: jb p3.3, port_0 p>
port_1: jnb p3. 3, port_1 p>
mov ien0, # 85h; 84 p>
pop acc p>
pop psw p>
reti p>
end
-----------------------< br>Изм p>
Дата p>
№ Документа p>
Підпис p>
Лист p>
Лист p>
39 p>
ККЕП 2202 01 000 ПЗ p>
Изм p>
Дата p>
№ Документа p>
Підпис p> < p> Лист p>
ККЕП 2202 01 000 ПЗ p>
Виконав p>
керує. p>
Балдин П.М. p>
Дубров Ф.І. p>
Блок керування двигуном p>
Гр. p>
Лист p>
Листів p>
Літера
у p>
1 p>
1 p>