- •В.В. Ткачов, г. Грулер, н. Нойбергер, с.М. Проценко, м.В. Козарь
- •Передмова
- •Загальні поняття й структура систем керування
- •Дискретні або цифрові ск
- •Основи обчислювальної техніки
- •Основи булевої алгебри
- •Базові логічні елементи
- •Реалізація логічних елементів (ле)
- •Діодні логічні елементи
- •Транзисторні логічні елементи
- •Комбінаційні пристрої
- •Дешифратори, мультиплексори, демультиплексори
- •Арифметичні пристрої Напівсуматор
- •Повні двійкові суматори
- •Однорозрядний двійковий суматор
- •Багаторозрядний суматор
- •Арифметико-логічні пристрої
- •Цифрові пристрої послідовністного типу Тригери
- •Регістри
- •Паралельний регістр
- •Послідовний регістр
- •Лічильники
- •Підсумовуючі двійкові лічильники
- •Організація пам'яті
- •Оперативні запам'ятовувальні пристрої
- •Постійні запам'ятовувальні пристрої
- •Методи й способи реалізації дискретних і цифрових су
- •Контрольні запитання
- •2. Загальні відомості про мікроконтролери
- •Структура й функціональні можливості базової моделі мcs-51 (мк51)
- •Програмно доступні ресурси мк51
- •Методи адресації в мк51
- •Система команд мк51
- •Арифметичні команди
- •Логічні команди
- •Команди пересилання
- •Команди передачі керування
- •Команди роботи з бітами
- •Контрольні запитання
- •3. Порти вводу/виводу інформації
- •Контрольні запитання
- •4. Організація переривань
- •Контрольні запитання
- •5. Організація тимчасових затримок у мікропроцесорних системах
- •Контрольні запитання
- •Правила написання програм для мк 51
- •Компілятор для мікроконтролерів сімейства мк51
- •Синтаксис мови асемблера
- •Директиви асемблера
- •Обчислення під час транслювання
- •Порівняння під час транслювання
- •Повідомлення про помилки асемблювання
- •Методика роботи з компілятором x8051
- •Діалоговий режим
- •Режим командного рядка
- •6.8. Редактор зв'язків для компілятора мікроконтролера сімейства мк51
- •Приклади вводу інформації з дискретних датчиків
- •Організація передачі інформації в послідовному форматі в мікропроцесорних системах (мпс)
- •Принципи передачі інформації з послідовного каналу зв'язку
- •Послідовний інтерфейс у мікроконтролері мсs51
- •Режим роботи 0
- •Контрольні запитання
- •9. Послідовні шинні системи (канали зв'язку)
- •Загальні поняття про електронні шинні системи
- •Різновиди послідовних шинних систем
- •Окремі приклади інтерфейсів та послідовних шин
- •Інтерфейс rs 232
- •Визначення логічного рівня
- •Розведення контактів та сигналів
- •Довжина кабелю
- •З’єднання rs 485
- •Концепція шини
- •Передача даних на рівні розрядів
- •Керування доступом до спільного ресурсу (розподіл доступу до шини) та тактова синхронізація
- •Адресація користувачів шини ( I 2c – блоки)
- •Can (Controller Area Network –мережа контролерів)
- •Фізичні характеристики
- •Характеристики протоколу рівня передачі бітів
- •Протоколи застосування на базі can
- •Основні характеристики can
- •Контрольні запитання
- •Приклади розробки систем керування на базі мк-51
- •Система керування з неперервними характеристиками
- •Система керування кроковим двигуном
- •Практична частина Лабораторна робота №1
- •Методика виконання.
- •Вихідні дані для програми:
- •Лабораторна робота №2
- •Індивідуальні задання:
- •Лабораторна робота №3
- •Методика виконання:
- •Задання:
- •Лабораторна робота №4
- •Методика виконання:
- •Варіанти задань
- •Лабораторна робота №5 Дослідження тимчасових затримок у мп системах
- •Приклад:
- •Методика виконання:
- •Варіанти задань.
- •Лабораторна робота №6
- •Методика виконання:
- •Задання:
- •Лабораторна робота №7 Дослідження послідовного інтерфейсу в
- •Методика виконання.
- •Список літератури
- •Для нотаток
- •Для нотаток
- •Для нотаток
Приклади вводу інформації з дискретних датчиків
У реальних системах керування майже завжди присутні всілякі контактні дискретні датчики, кнопки, органи блокування і т.п. Схеми підключення датчиків до МК51 наведено на рис 7.1, а. Ввід інформації із цих датчиків має свої особливості.
U
Р0.0
а)
+Un
R1
+Un
датчик
Д
датчик розімкнений
датчик
разомкнут
датчик
разомкнут
датчик
замкнут
датчик
замкнут
датчик
разомкнут
Р0.1
R2
оптрон.
R3
+ -
датчик
Д
датчик замкнений
датчик
разомкнут
г)
датчик
замкн
103
Рис. 7.1. Схеми підключення дискретних датчиків
По-перше, сигнал при спрацьовуванні може бути статичним, тобто при спрацьовуванні датчика формується тільки перехід з 1 в 0, як зображено на рис. 7.1, б. Але може формуватися й імпульсний сигнал (рис. 7.1, в). Крім того, при спрацьовуванні таких датчиків виникає деренчання контакту. При замиканні контакту виникає відскік контактів і в систему може бути введена випадкова послідовність нулів і одиниць (рис. 7.1, г).
Причому датчик може бути приєднаний до входів Т0 або Т1 порту Р3 або до входів портів Р0…Р3.
При приєднанні до входів Т0 або Т1 здійснюється контроль тривалості спрацьовування датчика з використанням таймерів Т0 або Т1 у режимі 0 або режимі 1.
Контроль стану датчика при приєднанні до входів портів Р0…Р2 і сигналі, як зображено на рис. 7.1, а, на виході датчика можна здійснити всього однією командою, наприклад, JВ Р1.4, мітка; мітка переводить мікропроцесор на виконання підпрограми, яка здійснює команди операції, які відповідають замкненому стану контакту. Схему алгоритму опитування стану датчика наведено на рис. 7.2, а.
Якщо спостерігається деренчання контакту, то усунути його можна шляхом вводу в схему алгоритму лічильника заданого числа станів, що збігаються (рис. 7.2, б), або шляхом вводу тимчасової затримки (рис. 7.2, в).
Початок
Ввод
інформації
з
датчика
Завантаження числа N у лічильник
Ні
Д-замкнутий
Виконання
операцій
відповідно
до
закону
керування
Ввод
Ні
Д-замкнений
Так
N=0
Кінець
Декремент
лічильника
104
-
Початок
Ввод
Ні
Д-замкнений
Так
Ввод
Виконання операції
в)
Рис. 7.2. Схема алгоритму аналізу інформації з дискретного датчика:
а) опитування датчика; б) з використанням лічильника; в) з використанням часової затримки
Розглянемо приклад розробки мікропроцесорної системи керування шахтною водовідливною установкою. Вона містить основний насос, заливальний насос, засувку основного ставу, датчики верхнього й нижнього рівнів (рис. 7.3). Відкачка води починається, якщо рівень води у водозбірнику
105
досягне значення датчика верхнього рівня (ДВ), вимкнутись насос повинен, якщо рівень води у водозбірнику досяг значення нижче датчика нижнього (ДН) рівня. Перед увімкненням основний насос повинен бути заповнений водою за допомогою заливального насоса. Тривалість заливання основного насоса – 30 секунд. Перед увімкненням основного насоса повинна бути відкрита засувка водонапорного ставу. Таким чином, відповідно до завдання, насосна установка містить два датчики рівня, два насоси, яким надають руху асинхронні двигуни з короткозамкненим ротором, засувку водонапорного ставу (рис. 7.3).
УУ
ПК
НЗ ДвНЗ
Qн
НО ДвНО
Задв.
ДвЗадв.
Засув.
ДВУ
ВУ
НУ
ДНУ
НР
Рис. 7.3. Структурна схема системи керування водовідливом
Завдання конкретне, викладено в текстовому вигляді, з якого випливає, що до МК51 необхідно підключити датчики верхнього й нижнього (ДВ, ДН) рівнів і три котушки пускачів для увімкнення приводів заливального, основного насосів і засувки. Датчики рівня на виході мають сухий контакт, а напруга живлення котушок пускачів становить 12 вольт. Виходячи із цього, функціональна схема мікропроцесорної системи керування буде мати вигляд, який наведено на рис. 7.4.
Алгоритм функціонування системи зобразимо у вигляді графа станів системи (рис. 7.5). Система відповідно до умов перебуває у вихідному (А0) стані доти, поки рівень води не досягне значення верхнього рівня. Після цього система переходить у стан (А1). У цьому стані вмикається заливальний насос і запускається затримка 30 секунд. Після закінчення затримки система переходить у стан (А2). У цьому стані вимикається заливальний насос, вмикається привід засувки на відкривання (вимкнення приводу засувки виконує локальна автоматика) і вмикається основний насос. У стані А2 система буде перебувати доти, поки рівень води не опуститься нижче датчика нижнього рівня (воду відкачено). У цьому випадку система перейде у вихідний стан (А0), при цьому вимкнеться основний насос, закриється засувка водонапорного ставу. Далі процеси повторюються.
Після складання графа станів системи привласнимо символічні імена змінним:
datn – датчик нижнього рівня;
datv – датчик верхнього рівня;
no – основний насос;
nz – заливальний насос;
zadv – засувка водонапорного ставу; zd – затримка;
state – стан системи;
prescal – переддільник для організації інтервалу в 1 секунду.
Р1.0 Р1.1
R ДВ
R
ДН
+Un
R1
R4
Р2.0
R2
К1
VT1
К2
А1
datv/nz,zd
Р2.1
Р2.2
R5 VT2
R3 К3 А0
R6 VT3
zd/nz,no,zdv
datn/no,zdv А2
Рис. 7.4. Функціональна схема мікропроцесорної системи керування водовідливом
Рис. 7.5. Граф стану системи керування водовідливом
106
Після цього визначимо адреси ОЗУ, де будуть перебувати ці змінні: datn equ 81h ; адреса датчика нижнього рівня,
datv equ 80h ; адреса датчика верхнього рівня, no equ 90h ; адреса основного насоса,
nz equ 91h ; адреса насоса, що заливає основний насос, zd equ 31h ; адреса комірки формування затримки, zadv equ 32h; адреса засувки водонапорного ставу;
state equ 40h ; адреса комірки стану системи, prescal equ 30h ; адреса комірки переддільника.
Текст програми, що відповідає графу станів системи (рис. 7.5), наведено нижче:
ljmp m0; org 0bh;
107
ljmp tim0
m0: clr no;переводимо вихідний стан системи в початковий скиданням до нуля
clr nz ; змінних nz, no, zadv,state clr no
clr zadv mov state,#0 ;
mov sp,#70h ; призначаємо початкову адресу стекової пам'яті, mov tmod,#1h ; установлюємо режим роботи Таймера 0,
mov th0,#3ch ; заносимо в Таймер 0 стартове число, яке
mov tl0,#0b0h ; визначає величину затримки 50 мілісекунд, setb tcon.4 ; запуск таймера (установка біта TR у регістрі TCON) setb ie.7 ; дозвіл переривань
setb ie.1 ; дозвіл переривань від Таймера 0
mov prescal,#20 ; коефіцієнт множення затримки 50 мілісекунд, loop: mov a,state ; основний цикл системи,
cjne a,#0,st1; перевірка стану системи, якщо 0, то перехід до аналізу стану
;датчика ДВ, якщо не нуль, то перехід на мітку st1,
jnb datv,loop ; перевірка стану датчика верхнього рівня, якщо спрацював,
;запускаємо затримку, якщо немає вертаємося у вихідний стан, mov zd,#1eh ; встановлення змінної zd значення 30 (секунд), setb nz ; увімкнути заливальний насос,
mov state1,#1 ; фіксація переходу системи в стан а1, ajmp loop ; перехід на початок циклу,
st1: cjne a,#1,st2 ; перевірка стану системи,
mov a,zd1; перевірка умови закінчення затримки, jnz loop;
clr nzo; вимкнути заливальний насос, setb no ; увімкнути основний насос
mov state,#2 ;зафіксувати перехід системи в стан 2 ajmp,loop; перехід на початок циклу,
st2: jb datn,loop ; перевірка стану датчика нижнього рівня, clr no; вимкнути основний насос,
clr zadv; закрити засувку водонапорного ставу, mov state,#0 ; зафіксувати перехід системи в стан 0, ajmp loop ;
tim0: push acc;
mov th0,#3ch ; перезавантаження таймера (50 мілісекунд) mov tl0,#0b0h ;
djnz prescal,m1; перевірка затримки 1 секунда,
mov prescal,#20 ; перезавантаження переддільника числом 20, mov a,zd; пересилання змінної zd в акумулятор,
jz, m1 ; перевірка закінчення затримки, якщо ні, dec zd; декрементуємо змінну zd,
m1: pop acc ; відновлюємо вміст акумулятора, reti; вихід з підпрограми переривання.
