Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мета робот3.doc
Скачиваний:
1
Добавлен:
22.08.2019
Размер:
160.77 Кб
Скачать

Мета роботи: дослідження методів під'єднання та організації обміну інформацією з найпростішими пристроями введення-виведення. Вивчення програмних засобів маскування даних та організації умовних переходів в мікро-ЕОМ.

Короткі відомості з теорії

До команд введення-виведення МП БІС КР580ИК80 відносяться команди IN<A1> та OUT<A1>. При виконанні команди IN<A1> мікро-ЕОМ зчитує число з вхідного пристрою за адресою (A1) (A1) і записує його в акумулятор. При виконанні команди OUT<A1> МП БІС записує число з акумулятора у вихідний пристрій за адресою (A1) (A1). Так як адреса пристрою вказується в одному байті, то за допомогою цих команд мікро-ЕОМ може обмінюватися інформацією не більше ніж з 256 зовнішніми пристроями.

Як найпростіший пристрій введення-виведення можуть використовуватись 8-розрядні регістри (наприклад, багаторежимний буферний регістр (ББР) К589ИР80). Обмін даними між мікро-ЕОМ і зовнішніми пристроями може викликатися як у визначених місцях в програмі, так і за сигналами переривання. В останньому випадку підпрограма обміну даними з зовнішнім пристроєм буде викликатися за рахунок переводу мікро-ЕОМ в режим обслуговування переривання.

Викликана підпрограма обслуговування переривання заставляє мікро-ЕОМ звертатися до вхідного пристрою для отримання даних. При надходженні сигналу запиту від зовнішнього пристрою (ЗП) на вхід STB багаторежимний буферний регістр виробляє сигнал низького рівня на виході , який може подаватися на вхід переривання МП БІС. Підпрограма обслуговування цього переривання записує дані в ББР за сигналами вибірки. Цими ж сигналами скидається внутрішній тригер запиту переривання ББР, що призводить до появи сигналу одиничного рівня на виході , який сповіщає зовнішній пристрій про прийом даних від мікро-ЕОМ в ББР.

Як пристрій введення-виведення можуть застосовуватись і більш складні схеми, наприклад програмований пристрій введення-виведення інформації в паралельному коді (КР580ИК55). При замкнутому перемикачеві на вхід регістру подається "0", а при розімкненому – "1". Перемикачі використовуються для імітації передачі даних від зовнішнього пристрою. До регістру можна під'єднати світлодіоди для індикації чисел, записаних в ньому. Світлодіоди вказують число, записане у вихідному пристрої.

Найпростіша програма (програма 3.1) перезапису числа з вхідного пристрою (за адресою FA) у вихідний пристрій (за адресою F9) має наступний вигляд:

Програма 3.1

Адреса

Машиний код

Команда

Коментар

8000

3E

MVI A,81

OUT FB

Запис в акумулятор даних для програмування інтерфейсу.

Програмування інтерфейсу hhhhhhhhhhhhhhhhhhhhhhhh

8001

81

8002

D3

8003

FB

8004

DB

IN FA

Записати число з вхідного пристрою з адресою FA в акумулятор

8005

FA

8006

D3

OUT F9

записати число з акумулятора у вихідний пристрій з адресою F9

8007

F9

8008

C3

JMP

Цикл

8009

05

8010

80

Організація умовних переходів в мікро-ЕОМ здійснюється за допомогою команд управління переходами, які керуються станом відповідних флагів та регістра ознак.

Флаги.

В МП 580ІК80 Є п’ять умовних флагів, пов’язаних з виконанням команд: нуля Z, знаку S, парності P, пененосу CY, допоміжного переносу AC. Кожний флаг являє собою однобітний регістр. Флаг встановлений, якщо біт рівний логічній 1, флаг скинутий , якщо біт рівний логічному 0.

Флаг нуля (Z) – встановлюється, якщо результат операції рівний 0, скидається , якщо результат не рівний 0.

Флаг знаку (S) – встановлюється, якщо старший біт результата операції рівний 1, в протилежному разі флаг скидається.

Флаг парності (P) – якщо сума по модулю 2 біт в результаті операції рівна 0 (тобто результат містить парну кількість одиниць), то флаг встановлюється. Якщо результат містить непарну кількість одиниць, флаг скидається.

Флаг переносу (CY) – якщо при виконанні операції відбувається перенос (при додаванні) або позика з старшого біту (при відніманні і порівнянні), то флаг встановлюється, в іншому випадку - флаг скидається.

Допоміжний перенос (AC) – якщо при виконанні операції відбувається перенос з 3-го в 4-ий біт результату, то флаг встановлюється. Якщо це не відбувається , флаг скидається. Цей флаг встановлюється, при додаванні , відніманні, зменшенні, збільшенні, порівнянні і логічних операціях, але звичайно він використовується при додаванні і порівнянні, що передують команді DAA (десяткове доповнення акумулятора).

Регістр ознак має п'ять розрядів, кожний з яких встановлюється по визначеному правилу у відповідності з виконанням МП БІС останньої команди. Цими розрядами є:

1. Розряд переповнення C-CARRY. В нього записується 1. Якщо при виконанні арифметичної команди або команди зсуву було переповнення акумулятора, в протилежному випадку в розряд записується 0.

2. Розряд знаку S-SING. В нього записується 1, якщо при виконанні арифметичної або логічної команди в старшому, сьомому, розряді акумулятора записана 1, в протилежному випадку записується 0.

3. Розряд нульового результату Z-ZERO. В нього записується 1, якщо при виконанні арифметичної або логічної команди у всіх розрядах числа в акумуляторі є 0, в протилежному випадку в розряд записується 0.

4. Додатковий розряд переповнення AC-AUX. CARRY. В нього записується 1, якщо при виконанні команд в акумуляторі виникає одиниця переносу з третього розряду числа.

5. Розряд парності P-PARITY. В нього записується 1, якщо при виконанні команди кількість одиниць в розрядах акумулятора буде парною.

В багатьох випадках при виконанні програм необхідно перевіряти або змінювати (маскувати) стан одного або декількох розрядів числа в акумуляторі. Це можна здійснити за допомогою наступних операцій:

1) логічне множення числа в акумуляторі і масці, яке очищує розряд числа, якщо у відповідному розряді маски буде записаний 0, і не змінює його, якщо в розряді маски буде записана 1;

2) логічне складання числа в акумуляторі і масці, яке встановлює розряд числа в 1, якщо в такому ж розряді маски буде записана 1, і не змінює його, якщо в цьому розряді записаний 0;

3) логічного "що виключає АБО" числа в акумуляторі і масці, яке інвертує зміст розряду числа, якщо у відповідному розряді маски записана 1, і не змінює його, якщо в цьому розряді записаний 0.

Приклади використання цих команд наведені в табл. 8.2.

Таблиця 3.2.

Мнемокод

Машин

ний код

Число в акумуляторі

Маска

Коментар

Результат в акумуляторі

AN1<D1>

E6<D1>

00111010

11111111

00000000

10101010

11110000

00001111

00100010

10101100

00100010

00100010

00100010

11111111

11111111

00000000

Логічне множення змісту акумулятора

з байтом D1

00101000

00100010

00000000

00100010

11110000

00001111

00000000

0R1<D1>

F6<D1>

00111010

00001111

1111000

10101100

00001111

00001111

Логічне складання змісту акумулятора з байтом D1

10111110

00001111

11111111

XR1<D1>

EF<D1>

00111010

00001111

11110000

10101100

00001111

00001111

Логічне "що виключає АБО" змісту акумулятора

з байтом D1

10010110

00000000

11111111

Проведення логічний операцій можливо також зі змістом акумулятора і внутрішніми регістрами МП БІС. В цьому випадку команди – однобайтні. При виконанні всіх логічних команд задіяні розряди Z, S, P, AC регістра ознак (в розряд С записується 0). Це дозволяє перевіряти стан будь-якого розряду числа і виконувати умовні переходи в програмах. Програма маскування окремих розрядів числа (програма 3.2), записаного у вхідному пристрої, наведена нижче. Програма містить результат маскування у вихідний пристрій.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]