- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Індивідуальне завдання на лабораторну роботу
Закодувати програму рис. 11.3.
Підготувати нові значення констант тимчасових затримок для збільшення часу затримки в 2, 3, 4 рази.
Модифікувати програму для отримання нової послідовності включення світлодіодів.
Порядок виконання лабораторної роботи
Занести в пам’ять, відлагодити і виконати підготовлені програми.
Провести експерименти з програмами по зміні тривалості часової затримки.
Зробити висновки з роботи.
Контрольні питання
Які регістри МП можна використовувати для організації тимчасової затримки?
Чи можна організувати тимчасову затримку не зменшуючи, а збільшуючи вміст регістру?
Як організувати в програмі рис. 11.3 нерівномірний час включення світлодіодів?
Який максимальний час затримки можна отримати в програмі рис. 11.3? Розрахувати цей час.
Які константи необхідно використовувати в програмі для включення світлодіодів в такій послідовності: 1, 2–3, 4–5, 6–7, 8 ?
Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
Мета: вивчити принципи керування пристроями виведення за допомогою даних, що вводяться.
Коротка інформація
В цій лабораторній роботі вивчається пристрій введення, який виконаний у вигляді трьох перемикачів, підключених до розрядів C1, C2, C3 порту C програмованого інтерфейсу (адреса FA), і розряд B0 програмованого інтерфейсу (адреса F9), підключеного до гучномовця. Учбова програма здійснює виведення тонального звукового сигналу, частота якого змінюється в залежності від стану перемикачів пристрою введення.
Для виведення тонального звукового сигналу необхідно на протязі деякого часу t підтримувати на виході розряду B0 порту B рівень логічного нуля, а потім змінити стан виходу на протилежний і зберігати його протягом інтервалу t. При циклічному повторенні цього процесу формується тональний звуковий сигнал. Часовий інтервал t забезпечується за допомогою програми тимчасової затримки. За регістр, в якому здійснюється формування затримки, вибраний регістр B МП. Обчислювальний процес формування затримки організований як підпрограма WAIT, виклик якої здійснюється з головної програми. Програма аналогічна розглянутим в лабораторній роботі № 11.
-
WAIT:
MOV
B, M
; Читання константи затримки з пам’яті
RET:
DCR
B
; Зменшення
REP
; Перехід, якщо не нуль
CMA
; Інвертування акумулятора
RET
; Повернення
В наведеній програмі перед поверненням в точку виклику здійснюється інвертування вмісту акумулятора A, який використовується як джерело рівня, що виводиться на розряд B0, підключений до гучномовця.
Головна програма починається з ініціалізації програмованого інтерфейсу КР580ВВ55А. Константа 99, що виводиться в регістр керуючого слова за адресою FB, програмує порт C на введення інформації з перемикачів, порт B – на виведення в режимі 0.
Для зміни часової затримки використовуються всі можливі стани перемикачів – від коду 000 до 111, всього вісім станів. Кожному стану відповідає константа, що записана в спеціально виділене вічко пам’яті. Адреси вічок – з 8050 до 8057. Читання цих вічок пам'яті здійснюється за адресою пари регістрів H, L, в які завантажується початкова адреса 8050 за допомогою команди
LXI H, 8050
Принцип формування допоміжної адреси, за якою зчитується константа, що визначає час затримки, полягає в сумуванні зчитаного з порту введення коду з адресою 8050. Враховуючи, що константи записані за сусідніми адресами, а порт C підключається до шини даних до розрядів D3 ... D1, необхідно попередньо зсунути вправо зчитаний байт. Для виключення формування хибних адрес, як правило, інформацію, що вводиться з частини розрядів, виділяють методом накладання маски. Потрібна адреса формується за допомогою програми
-
MVI
D, 00
; очищення регістра
IN
FA
; введення байту з порту С
ANI
0E
; накладання маски 0Е
RRC
; зсув вправо
MOV
E, A
; пересилання в регістр Е
DAD
D
; формування адреси
Логічне множення з константою 0000 1110 (16-ковий код 0E) дозволяє виділити тільки стан розрядів порту C, підключених до перемикачів. Для формування виконуваної адреси тут використана команда додавання вмісту пари регістрів D, E з вмістом пари регістрів H, L. Результат сумування зберігається в регістрах H і L. Саме для цієї мети регістр D попередньо очищується (MVI D, 00), а вміст акумулятора A, в якому знаходиться зміщення, пересилається в регістр E (MOV E, A). Отже, в парі регістрів D, E формується код 0000 0000 0000 0ХХХ де ХХХ – стан перемикачів порту введення. Очевидно, що виконувана адреса, що утворена в такий спосіб в регістрах H, L, буде змінюватись від 8050 до 8057. Формування власне звукового сигналу здійснюється виконанням програми
-
MVI
A, 01
; занесення «1» в молодший розряд
OUT
F9
; виведення «1» на гучномовець
CALL
WAIT
; затримка
OUT
F9
; виведення «0» на гучномовець
CALL
WAIT
; затримка
Очевидно, що чим більше значення константи, що заноситься в регістр B при формуванні затримки, тим нижча частота звукового сигналу. Для учбово-демонстраційної програми використовують набір констант виду
-
Адреса
Константа
8050
B0
8051
A0
8052
90
8053
80
8054
70
8055
60
8056
50
8057
40
Не дивлячись на те, що ці константи не забезпечують звукової гами в межах октави, різниця звукових сигналів по частоті достатня для наочності роботи програми.
Повний текст програми наведений на рис. 12.1.
Адреса |
Код команди |
Мітка |
Мнемоніка команди |
Коментар |
|
8000 |
|
|
MVI |
A, 99 |
; Програмування інтер- |
8002 |
|
|
OUT |
FB |
; фейсу |
8004 |
|
INIT: |
LXI |
H, 8050 |
; Завантаження пари |
8007 |
|
|
MVI |
D, 00 |
; регістрів H, L |
8009 |
|
|
IN |
FA |
; Введення стану |
800B |
|
|
ANI |
0E |
; Формування виконува- |
800D |
|
|
RRC |
|
; ної адреси |
800E |
|
|
MOV |
E, A |
|
800F |
|
|
DAD |
B |
|
8010 |
|
|
MVI |
A, 01 |
|
8012 |
|
|
OUT |
F9 |
; Виведення звукового |
8014 |
|
|
CALL |
WAIT |
; сигналу |
8017 |
|
|
OUT |
F9 |
|
8019 |
|
|
CALL |
WAIT |
|
801C |
|
|
JMP |
INIT |
; Повернення |
8100 |
|
WAIT: |
MOV |
B, M |
; Тимчасова затримка |
8101 |
|
REP: |
DCR |
B |
|
8102 |
|
|
JNZ |
REP |
|
8105 |
|
|
CMA |
|
|
8106 |
|
|
RET |
|
|
Рис. 12.1. Учбова програма виведення звукових сигналів.
Для відлагодження програми використовують покроковий режим виконання окремих фрагментів. Наприклад, якщо за адресою переривання у вічко області монітору занести коди
-
Адреса
Дані
Коментар
83F0
0F
молодший байт переривання
83F1
80
старший байт переривання
83F2
01
номер циклу переривання
то в покроковому режимі при пуску програми з початкової адреси 8000 на ІАР висвітлиться адреса зупинки 8010. В парі регістрів H, L буде сформована виконувана адреса вічка пам'яті, що визначає тимчасову затримку. Якщо код на перемикачах порту введення був встановлений 010, то в регістрах H, L сформується код 8052. Використовуючи вічка 83F0 ... 83F2, легко здійснити відлагодження програми, особливо її циклічних фрагментів.