Номери розрядів регістру
7 6 5 4 3 2 1 0
порт С нижній: 0-вивід; 1-ввід
порт В: 0-вивід; 1-ввід
порт В: 0-режим; 1-режим 1
порт С верхній: 0-вивід; 1-ввід
порт А: 0-вивід; 1-ввід
порт А: 00-режим 0; 01-режим 1; 10-режим 2
прапорець присвоєння режимів та напрямів
Рис. 2
В командах вводу IN чи виводу OUT є один адресний байт, згідно значення якого вибирається номер інтерфейсу та порт вводу/виводу. Нульовим (А0) та першим (А1) розрядами цього байту і визначається адреса портів.
В таблиці 1 приведено адреси портів, які визанчаються сигналами А0 та А1.
Таблиця 1
А0 |
А1 |
Адреса |
ASS позначення |
0 |
0 |
порт А |
PORT A |
0 |
1 |
порт В |
PORT B |
1 |
0 |
порт С |
PORT C |
1 |
1 |
регістр керування |
CNTLP |
Приклади програмування мікросхеми КР 580 ВВ 55А.
Приклад 1.
Перевести всі порти в режим 0. Призначити порт А – портом вводу; порт В – портом виводу; розряди 0-3 порту С – для вводу; розряди 4-7 порту С – для виводу.
Значення розрядів керуючого слова згідно з рисунком 2 мають наступний зміст:
Розряд 7=1 - присвоїти режими та напрями
Розряд 6=0 - перевести порт А в режим 0
Розряд 5=0 - перевести порт А в режим 0
Розряд 4=1 - призначити порт А портом вводу
Розряд 3=0 - призначити розряди 4-7 порту С для виводу
Розряд 2=0 - перевести порт В в режим 0
Розряд 1=0 - призначити порт В портом виводу
Розряд 0=1 - призначити розряди 0-3 порту С для вводу
Для занесення цих значень в регістр керуючого слова завантажуємо його в аккумулятор командою безпосереднього завантаження (MVIA), а потім пересилаємо це значення в регістр CNTLP з допомогою команди OUT. Відповідна програма матиме вигляд:
MVIA 10010001В
OUT CNTLP
Тільки після програмування мікросхеми можна приступати до обміну інформації через інтерфейс.
В мікрокомпютері ПК-01 “Львів” можна адресувати до 255 зовнішніх пристроїв. На платі компютера запаяно дві мікросхеми КР 580 ВВ 55А: одна для інтерфейсу рознімного з’єднання “Х2”, друга для інтерфейсу клавіатури. На рисунку 3 показана апаратна реалізація організації звератнь до зовнішніх пристроїв в ПК-01 “Львів”.
Шина А0-А7
даних
А0 a
А1 В0-В7
А4 А5
CS1
CS2 С0-С3
CS3
A14
С4-С7
A15
RESET
Рис. 3
Як видно із рисунка 3, керування портами відбувається нульовим та першим розрядами адреси команд IN чи OUT. Вибір мікросхеми здійснюється 4, 5 та 14, 15 розрядами адреси. Розряди 14, 15 повинні дорівнювати 1, а розряди 4, 5 – 0. Тому в машинних кодах записані вище команди програмування мікросхеми КР 580 ВВ 55А ПК-01 “Львів” приймуть вигляд:
3Е 91
D3 C3
Приклад 2.
Вивести в порт А число 05.
Спочатку необхідно вибрати режим виводу та запрограмувати інтерфейс. Переведемо всі порти в режим 0 та призначимо порт А портом виводу. Тому, що в умові нічого не сказано про порти В та С, їх призначення може бути довільним, наприклад, для вводу. В такому випадку значення розрядів CNTLP буде наступне (рисунок 4).
7 6 5 4 3 2 1 0
Порт С нижній: ввід
Порт В: ввід
Порт В: режим 0
Порт С верхній: ввід
Порт А: вивід
Порт А: режим 0
Прапорець присвоєння режимів та напрямів
Рис. 4
Машинні коди команд програмування інтерфейсу та виводу числа 05 матимуть вигляд:
3Е 8В
D3 C3
3E 05
D3 C0