ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Комп'ютерні науки
    ЗМІСТ

    1. Введення.
    2. Аналіз вихідних даних, вибір параметра контролю.
    2.1. Налагодження комплекс.
    2.2. Вибір параметра контролю.
    3. Опис схеми електричної принципової.
    3.1. Плата мікроконтролера.
    3.2. Плата макета.
    4. Опис алгоритму програми.
    5. Опис програми.
    6. Методика виконання лабораторної роботи.
    6.1. Мета роботи.
    6.2. Опис лабораторної установки.
    6.3. Вихідні дані.
    6.4. Домашні завдання.
    6.5. Рекомендації по виконанню.
    6.6. Послідовність виконання роботи.
    7. Висновок.
    Література.
    Додаток. Текст програми
    Графічна частина
    Лист № 1 Схема електрична принципова
    Лист № 2 Блок схема алгоритму
    1. ВСТУП.
    В даний час практично неможливо вказати якусь галузь науки та виробництва, в якій би не використовувалися мікропроцесори (МП) і мікроЕОМ.
    Універсальність і гнучкість МП як пристроїв з програмним керуванням поряд з високою надійністю і дешевизною дозволяють широко застосовувати їх в самих різних системах управління для заміни апаратної реалізації функцій управління, контролю, вимірювання та обробки даних. Застосування МП і мікроЕОМ в системах управління промисловим обладнанням припускає, зокрема, використання їх для керування верстатами, транспортувальні механізмами, зварювальними автоматами, прокатними станами, атомними реакторами, виробничими лініями, електростанціями, а також створення на їх основі робототехнічних комплексів, гнучких автоматизованих виробництв, систем контролю та діагностики. Мікропроцесорні засоби дозволяють створювати різноманітні за складністю виконуваних функцій пристрої управління - від найпростіших мікроконтролерів нескладних приладів і механізмів до найскладніших спеціалізованих і універсальних систем розподіленого управління в реальному часі.
    Серед різних форм організації сучасних мікропроцесорних засобів можна умовно виділити наступні групи:
    - Вбудовані МП і найпростіші мікроконтролери;
    - Універсальні мікроконтролери та спеціалізовані мікроЕОМ;
    - МікроЕОМ загального призначення;
    - Мультімікропроцессорние системи;
    - Апаратні засоби підтримки мікропроцесорних систем (розширювачі).
    Вбудовувані у прилади і апаратуру МП і найпростіші мікроконтролери жорстко запрограмовані на реалізацію вузькоспеціалізованих завдань, їх програмне забезпечення проходить налагодження на спеціальних стендах або універсальних ЕОМ, потім записується в ПЗП і рідко змінюється в процесі експлуатації. Вбудовувані засоби використовують і найпростіші зовнішні пристрої (тумблери/клавішні перемикачі, індикатори).
    Спеціалізовані мікроЕОМ реалізуються найчастіше на основі секційних мікро програмованих МП, що дозволяють адаптувати структуру, розрядність, систему команд мікроЕОМ під певний клас задач. Проте такий підхід організації систем вимагає трудомісткою і дорогою розробки «Власного» програмного забезпечення.
    Останнім часом широкого поширення набувають також програмувальні мікроконтролери, що представляють собою спеціалізовані мікроЕОМ, орієнтовані на вирішення численних завдань в системах управління, регулювання та контролю. Особливу групу становлять програмовані контролери для систем автоматичного регулювання. Найважливішим пристроєм будь-якої системи автоматичного регулювання є регулятор, що задає основний закон управління виконавчим механізмом. Заміна класичних аналогових регуляторів універсальними програмованими мікроконтролерами, здатними програмно перебудовуватися на реалізацію будь-яких законів регулювання, записаних в пам'ять мікроконтролерів, що забезпечує підвищення точності, надійності, гнучкості, продуктивності і зниження вартості систем управління. Великим достоїнством універсальних мікроконтролерів є їхня здатність виконувати ряд додаткових системних функцій: автоматичне виявлення помилок, контроль граничних значень параметрів, оперативне відображення стану систем і т. п.
    У системах автоматичного регулювання особливе місце виділяється для систем керування двигунами, в таких системах основний регульованою величиною є частота обертання якоря двигуна, яка змінюється при зміні навантаження. Використання замість аналогового регулятора мікроконтролера дозволить істотно поліпшити процес регулювання. Застосування цифрового індикатора та клавіатури спростить роботу з встановлення параметрів автоматичного регулювання та контролю регульованого значення.
    В дипломному проекті розглядається як автоматизована система управління двигуном. Як регулятор використовується мікроконтроллер, який повинен підтримувати, визначену користувачем, частоту обертання і видавати поточні обороти якоря двигуна.
    2. АНАЛІЗ ВИХІДНИХ ДАНИХ, ВИБІР параметрів контролю.
    Вихідними даними визначена розробка плати та програмного забезпечення з режимами установки частоти обертання якоря двигуна, стабілізації частоти обертання і її індикації.
    Область застосування макета - лабораторні та практичні роботи в ККЕП.
    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.2. Вибір параметра контролю.
    Очевидним параметром контролю є частота обертання ротора електродвигуна. Датчиком для встановлення числа обертів може служити оптопара. Однак у цьому випадку з-за малої частоти імпульсів, що надходять від датчика, буде невисокою стабільність частоти обертання, з-за великої тривалості виміру і швидкого характеру зміни навантаження.
    Для збільшення стабільності передбачається диск на якому розташовано Максимальна кількість прорізів. У цьому разі одному обороту валу двигуна буде відповідати велика кількість імпульсів від датчика. Але й у цьому випадку для точного вимірювання частоти обертання потрібно чимало часу. Проведені досліди дійсно показали значне відхилення частоти обертання від встановленої.
    Вищу стабільність утримання частоти обертання забезпечує спосіб вимірювання періоду імпульсів від датчика. МК має у своїй архітектурі відповідну апаратну і програмну підтримку.
    3. ОПИС СХЕМИ електричної принципової.
    Схема електрична принципова представлена в графічній частині Лист1.
    3.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 використовується для підключення блоку трансформатора.
    3.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 будуть протилежні, але рівні за значенням. Це забезпечує вимірювання напруги в реверсному режимі роботи двигуна.
    4. ОПИС алгоритмом програми.
    Блок схема алгоритму представлена в графічній частині лист 2.
    Головна програма зациклена і являє собою блок процедури індикації. Програми вимірювання частоти обертання двигуна і обробки натиснення клавіш виконуються перериваючи основну програму індикації переривань від вимірника частоти та клавіатури відповідно. Після виконання програм обробки переривань програма індикації продовжує роботу з місця її переривання.
    Підпрограма (ПП) обробки переривання від вимірника (INT1) спочатку перевіряє виконання повторне входження в ПП. При першому входження здійснюється запуск вимірника і вихід. При повторному входження виміряне значення тривалості періоду імпульсу від датчика запам'ятовується, порівнюється із заданим значенням. Якщо виміряний значення менше заданого тоді значить частота обертання знизилася і відбувається включення двигуна, інакше двигун вимикається. Після чого аналізується режим індикації: обороти двигуна або індикація навантаження доданої до двигуна за допомогою генератора. Залежно від зробленого вибору виміряне значення частоти обертання або навантаження перетворюється в позиційно-десяткове значення і видається в індикатор. Потім відбувається вихід з ПП.
    В ПП обробки переривання від клавіатури (KLAV) визначається натиснення функціональної клавіші. Якщо клавіша не функціональна то виконується зсув индикационного осередків вліво і запис коду натиснутою клавіші в останньою индикационного клітинку, далі вихід. Якщо ж клавіша функціональна проводиться визначення яка саме натиснута для цього служать чотири блоки рішення, якщо функціональність клавіші не визначиться то значить натиснута клавіша «реверсу» при натисканні якої здійснюється реверс напрямку обертання якоря двигуна і вихід. Далі перераховані дії після натискання функціональних клавіш, після виконан?? ения яких ПП завершується:
    - Клавіша «видалити» - зрушення индикационного осередків в право і запис в старшу клітинку нуля;
    - Клавіша «старт» - перетворення введеного числа обертів на секунду в тривалість періоду імпульсів з датчика;
    - Клавіша «стоп» - зупинка двигуна;
    - Клавіша «режим» - перемикання режиму індикації частоти обертання/подається навантаження.
    5. ОПИС ПРОГРАМИ.
    У програмі використовуються символічні імена присвоєні осередків ОЗУ:
    st1 data 52h
    номер зсуву индикационного осередку n_sd data 53h
    введена частота обертання якоря двигуна obor data 54h
    ділене 1-й байт chi_3 data 55h
    ділене 2-й байт chi_2 data 56h
    ділене 3-й байт chi_1 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 для визначення закінчення поділу, запис в комірки ділене число 1000000. На початку циклу поділу здійснюється зсув ділене вліво на один розряд, а також зсув вліво приватного та запис у стек значень прапорів переносів. Далі зі старшої частини ділене віднімаємо дільник, в залежності від знаку переносу в приватне записується «0» або «1» і збереження ділене. Перевірка переносу при зсуві ділені й запис у приватне «1» якщо перенесення був. Перевірка закінчення поділу шляхом перевірки відновленого значення прапора переносу при зсуві приватного. Після закінчення поділу результат ділення знаходиться в комірках результату.
    Після натискання клавіші «Старт» відбувається перетворення значення индикационного осередків у двійковий код (1 байт), після чого це значення множиться на 24, що відповідає 24 прорізами диска оптопари (результат 2 байти) і ділимо 1000000 на це число в результаті виходить тривалість періоду імпульсів від оптопари для введеного числа обертів на секунду. Після перетворення виконується функція запуску двигуна яка дає поштовх і дозволяється переривання 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) раз вимірювання імпульсів, це потрібно для того, щоб прибрати мерехтіння цифр на індикаторі. Перетворення обчисленого значення в частоту обертання двигуна в обр/сек відбувається наступним чином: розподіл 1000000 на виміряне значення, поділ на 24, перетворення bin-> dec-> індикатор. Перед завершенням підпрограми обробки переривання INT1 здійснюється ініціалізація регістрів і осередків перед наступним запуском процедури і дозволяється переривання INT1.
    Для установки таймера і переривання INT1 використовуються наступні керуючі слова:
    - TMOD = 01H - режим роботи таймера;
    - TCON = 04H
    - Tr - розряд запуску таймера;
    - IEN0 - дозволу переривань
    - 8 розряд - заборона всіх переривань;
    - 3 розряд - INT1;
    - 1 розряд - INT0 (клавіатура);

    6. МЕТОДИКА виконання лабораторних робіт.
    6.1. Мета роботи.
    Придбання практичних навичок у технології розробки та налагодження елементів керуючих систем.

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

    Рис. 6.1.Схема плати двигуна.
    Роз'єм X3 з'єднує схему з блоком живлення.
    Датчик числа оборотів являє собою диск, з 24-ю прорізами, жорстко закріплений навалу обертання двигуна. Під час проходження прорізи між оптопари світлодіод VD2 висвітлює інфрачервоним випромінюванням фотоприймач що представляє собою фотодіод VD1. Напівпровідниковий фотоприймач зменшивши за рахунок цього свій опір починає пропускати струм відкриваючи тим самим транзистор VT1 з колектора якого знімаються прямокутні імпульси.
    Обороти двигуна прямо пропорційні додається до нього напруги. У зв'язку з цим пропонується утримувати частоту обертання у визначених межах за допомогою зміни напруги що подається на двигун. Використання цифрових систем керування які дозволяють швидко обробляти дані робить можливим застосування як мінливого напруги шим-генератор. Тривалість імпульсів і пауз формується динамічно в залежності від характеру прикладеною навантаження. Утримання оборотів при збільшенні навантаження буде триває до тих пір, поки тривалість паузи не буде рівною нулю і подальше збільшення навантаження буде знижувати оберти двигуна. Для поліпшення підтримки частоти обертання пропонується максимально можливо збільшити напругу джерела живлення.
    6.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? ?

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

    6.5. Рекомендації по виконанню.
    Як параметр регулювання взяти тривалість періодів імпульсів від оптопари. Вибір цього параметра замість вимірювання частоти обертання диска, перекрепленного на двигун, дозволяє проводити швидкий контроль стабільності системи управління за рахунок значного зменшення тривалості виміру. Для такого регулювання необхідно перетворювати введену частоту обертання у тривалість періоду імпульсів, що формуються прорізами на диску датчика, і назад - тривалість періоду в частоту обертання. Рекомендується здійснювати перетворення в такий спосіб:
    1) Введену частоту обертання (обр/сек) помножити на кількість прорізів в диску (24);
    2) 1000000 розділити на отримане число, в результаті чого вийде тривалість одного періоду в мкс.
    Для зворотного перетворення:
    1) 1000000 розділити на тривалість періоду;
    2) розділити на 24.
    При розподілі 1000000 (3 байти) на 2 байтів можливе використання стандартної процедури розподілу 4-х байтного числа на 2-й байтного. Але для більш швидкого поділу (а значить і збільшення швидкості вимірювання) рекомендується зменшити тривалість поділу, виробляючи поділ 6-ти зошити (1000000) на 3-и тетради (максимально можливе число 4095), для цього необхідно:
    1) перед процедурою розподілу зрушити дільник на чотири розряду вліво;
    2) продовжувати поділ з урахуванням зрушено дільника, тобто поділ має триває на чотири цикли менше;
    3) після процедури розподілу зрушити приватне на чотири розряду ліворуч.
    Для вимірювання тривалості періоду імпульсів необхідно в якості лічильника використовувати один з таймерів в режимі таймера. Подача на вхід переривання INT1 імпульсів викликає ПП обробки переривання в якій необхідно стежити за першим і другим входом в ПП. При першому входження включити таймер, а при другому входження вважати стан таймера, що і буде тривалістю періоду імпульсу.
    6.6. Послідовність виконання роботи.
    1. Набрати текст програми;
    2. Відкомпілювати програму;
    3. Запустити відладчик FDSAB;
    4. Завантажити у пам'ять bin файл, запустити програму на виконання;
    5. Зняти залежність зміни частоти обертання від подається навантаження;
    6. Зробити висновок про виконану роботу;
    7. Скласти звіт.
    Увага! При додатку великих зусиль гальмування двигуна він може зупиниться що призведе до різкого збільшення струму в вихідний ланцюга ІМС управління і можливо вихід її з ладу.
    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
    chi_3 data 55h
    chi_2 data 56h
    chi_1 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 int_1
    ; Початкова ініціалізація
    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
    st_2: mov r2, # 10
    st_1: nop
    nop
    nop
    djnz r2, st_1
    djnz r1, st_2
    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
    ; Деленіе1000000 на отримане значення
    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 chi_3, # 0fh
    mov chi_2, # 42h
    mov chi_1, # 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, chi_1
    rlc a
    mov chi_1, a
    mov a, chi_2
    rlc a
    mov chi_2, a
    mov a, chi_3
    rlc a
    mov chi_3, a
    push psw

    clr c
    mov a, chi_2
    subb a, zn_l
    mov chi_t, a
    mov a, chi_3
    subb a, zn_h
    jc nosav
    pop psw
    sav: mov chi_3, a
    mov chi_2, chi_t
    inc rez_l
    sjmp qsav
    nosav: pop psw
    jc sav
    qsav: pop psw
    jnc lp24
    pop acc
    pop psw
    ret
    ; Переривання від датчика
    int_1: 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 mot_1
    jb f_nap, nap11
    setb p3.4
    sjmp mot_0
    nap11: setb p3.5
    sjmp mot_0
    mot_1: jb f_nap, nap01
    clr p3.4
    sjmp mot_0
    nap01: clr p3.5
    mot_0:
    ; Індикація
    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
    div ab
    mov 47h, b
    mov b, # 0ah
    div 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
    div ab
    mov 47h, b
    mov b, # 0ah
    div ab
    mov 48h, b
    mov 49h, a
    ; Ініціалізація нового запуску програми вимірювання
    iniz: mov tl1, # 00h
    mov th1, # 00h
    clr flag
    port_0: jb p3.3, port_0
    port_1: jnb p3.3, port_1
    mov ien0, # 85h; 84
    pop acc
    pop psw
    reti
    end
















         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status