- •Міністерство освіти і науки україни
- •2. Архітектура мікро-еом
- •Лабораторна робота №2
- •Теоретична частина двійкові числа
- •Шістнадцяткові числа
- •Лабораторна робота №3
- •Теоретична частина вісімкові числа
- •Лабораторна робота №4
- •Теоретична частина двйково-десяткові числа
- •Двійкова арифметика
- •Додатковий код
- •Лабораторна робота №5
- •Теоретична частина
- •Лабораторна робота №6
- •Теоретична частина угрупування біт
- •Буквено-цифровий код
- •Лабораторна робота №7
- •Теоретична частина
- •Лабораторна робота №8
- •Лабораторна робота №9
- •Теоретична частина
- •Лабораторна робота №10 Тема: шифратори, дешифратори й семисегментні індикатори.
- •Теоретична частина
- •Лабораторна робота №11
- •Теоретична частина
- •Лабораторна робота №12
- •Теоретична частина
- •Напівпровідникова пам'ять
- •Лабораторна робота №13
- •Теоретична частина
- •Лабораторна робота №14
- •Теоретична частина основи математичного забезпечення
- •Чого не "розуміє" мікро-еом
- •Мікро-еом як логічний пристрій
- •Мови програмування
- •Приклади програмування
- •Непряма адресація
- •Хід роботи завдання 1. Виконай вправи.
- •Завдання №2. Вивчити.
- •Завдання №3. Складіть програми мовою асемблера й машинною мовою мп кр580 і перевірте в мікролабораторії. Програми розміщайте у адреси 8000н.
- •Питання для самопідготовки
- •Лабораторна робота №15
- •Хід роботи.
- •Іі. Розробити програму.
- •Лабораторна робота №16
- •Теоретична частина
- •Хід роботи
- •Література
- •Питання для самоперевірки
- •Лабораторна робота №17.
- •Теоретична частина основи математичного забезпечення
- •Чого не "розуміє" мікро-еом
- •Мікро-еом як логічний пристрій
- •Процес розробки програмного забезпечення
- •Програма затримки
- •Іншим фактором, що повинен бути розглянутий при читанні із клавіатури, є виключення "дзвону".
- •Індикація
- •Хід роботи
- •Питання для самопідготовки:
- •Лабораторна робота №18
- •Теоретична частина програма монітора "мікролаб"
- •Програма рахунку
- •Організація програм
- •Переривання
- •Підпрограми й стек
- •Програма затримки
- •Хід роботи.
- •2. Розробити:
Програма затримки
Для роботи основної програми необхідно розробити підпрограму, що викликає затримку. Найпростіший спосіб генерування затримки показаний на мал.2. Однак, максимальний час затримки, отримане таким способом, не перевищує 1785 мкс. Принцип одержання більше тривалої затримки буде описаний нижче.
ПРОГРАМА КОНТРОЛЕРА " ВОГНІ, ЩО БІЖАТЬ,"
Після складання алгоритмів і визначення характеристик -, можна писати програми. Основна програма послідовності досить проста /табл.2/ .
Таблиця 2
Мітки |
Команди |
Коментарі |
SEQ |
MOV А, 92 |
Установка горіння світлодіодів 1,4,7 Час горіння встановлених сигналів |
|
MVI D, I |
|
|
CALL DELAY |
|
|
MOV A, 49 |
Установка горіння світлодіодів 2,5,8 Час горіння встановлених сигналів |
|
MVI D, I |
|
|
CALL DELAY |
|
|
MOV A, 24 |
Установка горіння світлодіодів 3,6 Час горіння встановлених сигналів |
|
MVI D, I |
|
|
CALL DELAY |
|
Програма послідовності встановлює в регістр А число 92 - код вихідних індикаторів, при якому світлодіоди 1, 4, 7 - горять, а світлодіоди 2, 3, 5, 6, 8 - погашені.
Потім викликає підпрограму затримки. Для чого програма послідовності задає величину затримки в регістр D, після чого викликається сама підпрограма затримки. Далі ця послідовність повторюється для інших кодів вихідних сигналів світлодіодів .
Рис.2. Алгоритм програми затримки
РОЗРОБКА ПРОГРАМИ ЗАТРИМКИ
У табл.3 наведена програма затримки, алгоритм якої показаний на мал.2.
Таблиця 3 Проста програма затримки
Мітки |
Команди |
Коментарі |
Примітка |
DELAY |
DCR A |
рахунок, Що Зменшує |
4 такти |
|
JNZ DELAY |
Продовження рахунку, якщо вміст акумулятора ПРО |
7/10 тактів |
|
RET |
Повернення |
10 тактів |
Щоб використовувати цю програму, в акумуляторі встановлюється потрібне значення затримки й викликається програма затримки. Уміст акумулятора зменшується доти, поки не досягає нуля, після чого керування вертається на програму виклику.
затримки. У цій програмі дві петлі: зовнішня й внутрішня. Внутрішня петля генерує затримку 0,786 з, зовнішня - безліч таких затримок. Така організація програми називається вкладенням.
Повна програма контролера " вогні, що біжать," наведена в табл.4.
Таблиця 4
Адреси |
Коди |
Мітки |
Команди |
Коментарі |
8000 |
ЗЕ |
MOV A ,81 |
MOV A ,81 |
Програмування інтерфейсу |
8001 |
81 |
|
|
|
8002 |
D3 |
|
|
|
8003 |
FB |
|
OUT FB |
|
8004 |
ЗЕ |
SEQ |
MOV A, 92 |
Установка коду горіння 1,4,7 світлодіодів |
8005 |
92 |
|
|
|
8006 |
D3 |
|
OUT F9 |
|
8007 |
F9 |
|
|
|
8008 |
16 |
|
MVI D, I |
Горіння даної послідовності |
8009 |
01 |
|
|
|
800А |
CD |
|
CALL DELAY | |
800У |
22 |
|
|
|
800С |
80 |
|
|
|
800D |
ЗЕ |
|
MOV A , 4 9 |
Установка коду горіння 2,5,8 світлодіодів |
800Е |
49 |
|
|
|
800F |
D3 |
|
OUT F9 |
|
8010 |
F9 |
|
|
|
8011 |
16 |
|
MVI D, I |
Горіння даної послідовності |
8012 |
01 |
|
|
|
8013 |
CD |
|
CALL DELAY | |
8014 |
22 |
|
|
|
8015 |
80 |
|
|
|
8016 |
ЗЕ |
|
MOV A, 24 |
Установка коду горіння 3,6 світлодіодів |
8017 |
24 |
|
|
|
8018 |
D3 |
|
OUT F9 |
|
8019 |
F9 |
|
|
|
801А |
16 |
|
MVI D,I |
Горіння даної послідовності |
801У |
01 |
|
|
|
801С |
CD |
|
CALL DELAY |
|
8010 |
22 |
|
|
|
801Е |
80 |
|
|
|
801F |
СЗ |
|
JMP SEQ |
Повернення в основну програму" вогні, що біжать," |
8020 |
04 |
|
|
|
8021 |
80 |
|
|
|
8022 |
01 |
DELAY |
LXI B,0025 |
Початок внутрішньої петлі затримки |
8023 |
00 |
|
|
|
8024 |
25 |
|
|
|
8025 |
0У |
LOOP |
OCX В |
Внутрішня петля, що генерує затримку 0,786 з |
8026 |
78 |
|
MOV А, В |
|
8027 |
В1 |
|
ORA З |
|
8028 |
З2 |
|
JNZ LOOP |
|
8029 |
25 |
|
|
|
802А |
80 |
|
|
|
802У |
15 |
|
OCR D |
Основна петля затримки |
802С |
З2 |
|
JNZ DELAY |
|
802D |
22 |
|
|
|
802Е |
80 |
|
|
|
802F |
З9 |
|
RET |
Повернення |
Продовження табл.1
Перевірка програми
1. Уведіть програму з табл.б в ОЗУ акумулятора.
2. Упевніться, що вона правильно записана на згадку.
3. Виконуйте основну програму, що починається за адресою 8000.
4. Значення тимчасових затримок можна замінити на інші значення, для зменшення швидкості " вогнів, що біжать," по адресах 8009, 8012,801А, 8023, 8024.