- •Міністерство освіти і науки україни
- •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. Дзвін кнопки
Як відомо, кнопки при натисканні не видають "чистий" імпульс - вони
"дзенькають", як показано на мал.2. Коли металеві контакти стосуються один іншого, виникає дзенькіт. Тривалість дзенькоту 1-50 мс залежно від конструкції кнопки.
Рис.3. Алгоритм усунення дзенькоту клавіатури
Дзенькіт контактів потрібно враховувати, тому що він може привести до того, що замість одного натискання буде зафіксовано багато натискань кнопки.
Дзенькіт можна виключити шляхом введення схеми виключення дзенькоту в читаючий порт або за допомогою спеціальної підпрограми.
Рис.3, показує один зі шляхів виключення дзенькоту за допомогою програми
Клавіатура сканується, використовуючи програму KEYIN, описану раніше. Якщо немає натиснутих кнопок, процес повторюється. Коли ж визначене натискання кнопки, клавіатура відключається на 50 мс, щоб не читати під час дзенькоту. Потім клавіатура сканується до моменту, поки ключ не відпущений. Знову вводиться 50 мс затримки, щоб виключити дзенькіт при відпусканні кнопки.
Індикація
У мікролабораторії для індикації використовуються вісім семисегментних цифрових індикаторів.
Кожному індикатору відповідає комірка пам'яті, де зберігається семисегментний код, керуючий світінням сегментів індикатора /див.урок 9/. Інформація з цих комірок посилає на індикатори за допомогою спеціальної схеми, що забезпечує динамічний режим індикації.
Завдання матзабезпечення зводиться до підготовки семисегментних кодів і засиланню їх у комірки пам'яті 83F8...83FF. Осередок 83F8 відповідає лівому індикатору, 83FF - правому. /Динамічна індикація здійснюється в мікропроцесорних системах не обов'язково за допомогою схеми. Сканування індикаторів можна здійснювати й за допомогою програми/.
Монітор мікролабораторії містить програму SEGCG /адреса=01З/, що перетворить шістнядцяткові коди ПРО, 1, 2...4, Е, F у семисегментні й заносить їх у комірки пам'яті 83F8...83FF. Вихідні дані для цієї програми повинні перебувати в осередках 83F4...83F7. Кожний байт із цих осередків відповідає парі індикаторів: уміст осередку 83F4 після перетворення висвітиться на двох лівих індикаторах, уміст осередку 83F7 - на двох праві.
У табл.б наведена програма показу інформації, що використовує підпрограму SEGCG. Уведіть програму й перевірте її роботу. На індикаторах повинні послідовно висвітлюються символи 1, 2, 3, 4, А, В, C,D.
Таблиця 6. Програма показу інформації
Адреса |
Уміст |
Мітки |
Команда |
Коментарі |
8000 |
ЗЕ |
|
MVI А, 12 |
12- [A] |
8001 |
12 |
|
|
A-[83F4] |
8002 |
32 |
|
STA 83F4 |
|
8003 |
F4 |
|
|
|
8004 |
83 |
|
|
|
8005 |
ЗЕ |
|
MVI А, 34 |
34-А |
8006 |
34 |
|
|
|
8007 |
32 |
|
STA 83F |
A-[83F5] |
8008 |
F5 |
|
|
|
8009 |
83 |
|
|
|
800А |
ЗЕ |
|
MVI А,АВ |
АВ - А |
800У |
АВ |
|
|
|
800С |
32 |
|
STA 83F6 |
A-[83F6] |
800D |
F6 |
|
|
|
800Е |
83 |
|
|
|
800F |
ЗЕ |
|
MVI A, CD |
CD- A |
8010 |
CD |
|
|
|
8011 |
32 |
|
STA 83F7 |
A-[83F7] |
8012 |
F7 |
|
|
|
8013 |
83 |
|
|
|
8014 |
CD |
|
CALL SEGC G |
Виклик SEGCG |
8015 |
З |
|
|
|
8016 |
01 |
|
|
|
8017 |
76 |
|
HLT |
Останов |
Напишіть програму, що виводить на два правих індикатори значення натиснутої кнопки, а на інші індикатори - нулі. Використовуйте при цьому моніторні підпрограми KEYIN і SEGCG.
У попередній програмі ми використовували підпрограму SEGCG для одержання семисегментного коду. Але ця підпрограма оперує тільки із шістнядцятковими символами 0...F, тобто не повністю використовує можливості семисегментних індикаторів .
Можна формувати семисегментний код і одержувати на індикаторах будь-які символи, які дозволяють одержати використовувані в мікролабораторії індикатори. Як уже говорилися, семисегментні коди повинні засилатися в певні комірки пам'яті. Кожний біт у цих осередках відповідає певному сегменту /мал.4/. Якщо біт дорівнює 1, то відповідний сегмент буде "горіти", і - навпаки.
-
БІТ
7
6
5
4
3
2
1
0
СЕГМЕНТ
H
G
F
E
D
C
B
A
Рис.4. Відповідність розрядів і сегментів
У табл.7 наведений лістинг програми, що виводить на індикатори напис "СРСР 60". Змінюючи семи-сегментні коди, ви можете вивести на індикацію будь-який можливий напис .
Таблиця 7 Програма виводу символів на індикатори без підпрограми SEGCG
Адреса |
Уміст |
Мітка |
Команда |
Коментарі |
8000 |
ЗЕ |
|
MVI А, 39 |
Семисегментный код букви |
8001 |
39 |
|
|
С — А |
8002 |
32 |
|
STA 83F8 |
А — [83F8] |
8003 |
F8 |
|
|
|
8004 |
83 |
|
|
|
8005 |
32 |
|
STA 83F9 |
А — [83 F9] |
8006 |
F9 |
|
|
|
8007 |
83 |
|
|
|
8008 |
32 |
|
STA 83FA |
А — [83FA] |
8009 |
FA |
|
|
|
800А |
83 |
|
|
|
800У |
ЗЕ |
|
MVI А, 73 |
Семисегментний код букви |
800С |
73 |
|
|
Р — А |
800D |
32 |
|
: STA 83FB |
А — [83FB] |
800Е |
FB |
|
|
|
800F |
83 |
|
|
|
8010 |
зе |
|
MVI A, 7D |
Семисегментный код цифри |
8011 |
7D |
|
|
6 — А |
8012 |
32 |
|
: STA 83FC |
А -[83 FC] |
8013 |
FC |
|
|
|
8014 |
83 |
|
|
|
8015 |
ЗЕ |
|
MVI A,3F |
Семисегмеытный код 0 — А |
8016 |
3F |
|
|
|
8017 |
32 |
|
STA 83FD |
А — [83FD] |
8018 |
FD |
|
|
|
8019 |
83 |
|
|
|
801А |
AF |
|
XRA A |
0 — А |
801У |
32 |
|
STA 83FE |
А — > [83FE] гасіння індикатора |
801С |
FE |
|
|
|
8010 |
83 |
|
|
|
801Е |
32 |
|
STA 83FF |
А — [83FF ] , гасіння -індикатору |
801F |
FF |
|
|
|
8020 |
83 |
|
|
|
8021 |
76 |
|
HLT |
Останов |