 
        
        Мета роботи: дослідження методів під'єднання та організації обміну інформацією з найпростішими пристроями введення-виведення. Вивчення програмних засобів маскування даних та організації умовних переходів в мікро-ЕОМ.
Короткі відомості з теорії
До команд введення-виведення МП БІС КР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), записаного у вхідному пристрої, наведена нижче. Програма містить результат маскування у вихідний пристрій.
