Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для лаб Арх_комп(Схемтех).doc
Скачиваний:
6
Добавлен:
08.05.2019
Размер:
1.76 Mб
Скачать

Індивідуальне завдання на лабораторну роботу

  1. Закодувати програму рис. 11.3.

  2. Підготувати нові значення констант тимчасових затримок для збільшення часу затримки в 2, 3, 4 рази.

  3. Модифікувати програму для отримання нової послідовності включення світлодіодів.

Порядок виконання лабораторної роботи

  1. Занести в пам’ять, відлагодити і виконати підготовлені програми.

  2. Провести експерименти з програмами по зміні тривалості часової затримки.

  3. Зробити висновки з роботи.

Контрольні питання

  1. Які регістри МП можна використовувати для організації тимчасової затримки?

  2. Чи можна організувати тимчасову затримку не зменшуючи, а збільшуючи вміст регістру?

  3. Як організувати в програмі рис. 11.3 нерівномірний час включення світлодіодів?

  4. Який максимальний час затримки можна отримати в програмі рис. 11.3? Розрахувати цей час.

  5. Які константи необхідно використовувати в програмі для включення світлодіодів в такій послідовності: 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, легко здійснити відлагодження програми, особливо її циклічних фрагментів.