Используемые порты
Если порты А и В запрограммированы в режим 1, то порт С используется для формирования служебных сигналов (см. рис. ниже), а также используется в качестве порта состояний.
![](image/ispolzuemye-porty_1.gif)
Форматы управляющих слов для ППА.
ППА управляется двумя управляющими словами.
Формат управляющего слова, задающего режимы работы портов ППА (первое управляющее слово).
DD7 | DD6 | DD5 | DD4 | DD3 | DD2 | DD1 | DD0 |
D7 –1 –всегда в управляющем слове задание режима.
D6, D5 - задают режим порта А
0 0- режим 0
0 1 - режим 1
1 Х - режим 2
D4 - направление обмена порта А
0 - вывод
1- ввод
D3 - направление обмена старшего полубайта порта С
0- вывод
1 - ввод
D2 - режим работы порта В
0 - режим 0
1- режим 1
D1 направление обмена порта В
0 - вывод
1- ввод
D0 - направление обмена младшего полубайта порта С.
0- вывод
1 - ввод
Пример. Допустим, что надо запрограммировать порт А на ввод в режиме 0, порт В на вывод в режиме 0, РС4…РС7 – на вывод в режиме 0, РС0…РС3 – на ввод в режиме 0.
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 1 0 0 0 1
91h
Программирование ВВ55
MVI A, 91h; управляющее слово >аккумулятор
OUT portRUS; управляющее слово из аккумулятора > регистр управляющего слова
Формат управляющего слова установки-сброса разрядов порта С (второе управляющее слово)
Осуществляет установку и сброс разрядов порта С. Можно побитно управлять разрядами порта С.
![]() |
Пример: установить второй разряд порта С в единицу.
D7 D6 D5 D4 D3 D2 D1 D0
0 х х х ½ 0 1 0 1
05h
Временные диаграммы 0-го и 1-го режима.
![](image/ispolzuemye-porty_3.gif)
Ввод в режиме 0. | Вывод в режиме 0 |
Из временной диаграммы ввода в режиме 0 видно, что в этом режиме порт не фиксирует вводимую информацию (т.е. выполняет только функцию вентиля). Следовательно, вводимое слово должно присутствовать на входе порта во время действия активного сигнала ЧтВВ.
При выводе информация фиксируется на выходных линиях порта до ее замены в следующем цикле вывода (т.е. порт выполняет функции простого буферного регистра). |
Режим 1 (ввод или вывод с квитированием) обеспечивает возможность организации однонаправленной асинхронной передачи информации между МП-системой и периферийным устройством. Временная диаграмма ввода в режиме 1 для портов А и В приведены на рисунке ниже, где используются следующие обозначения сигналов:
С - Строб приема;
ВхБП Входной буфер полон;
ЗПр Запрос прерывания;
При вводе данных в режиме 1 сигнал «Строб» выполняет функции сигнала «Данные достоверны», а сигнал «Входной буфер полон» выполняет функции сигнала «Запрос данных».
![](image/ispolzuemye-porty_4.gif)
![]() |
Формирование служебных сигналов с помощью старшего и младшего полубайтов порта С приведено на рисунке ниже.
![](image/ispolzuemye-porty_5.gif)
Если РгРС4 сбросить в 0, то будут замаскированы аппаратные сигналы запроса прерывания порта А ( ЗПрА)
РгРС4 - запрещает / разрешает прерывания от порта А при вводе.
РгРС6 - запрещает / разрешает прерывания от порта А при выводе.
Ниже приведен формат слова состояния ППА (читается по адресу порта С) для случая ввода данных в режиме 1 через порты А и В.
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
D5 - Входной буфер порта А полон
D4 - РгРС4
D3 - Запрос прерывания от порта А
D2 - РгРС2
D1 - Входной буфер порта В полон
D0 - Запрос прерывания от порта В.
1.3.6. Интерфейс клавиатуры и индикации
Интерфейс клавиатуры и индикации рассмотрим на примере клавишного пульта ввода, содержащего для конкретности матрицу из 4х4 ключей и цифровой индикатор. В качестве интерфейсной схемы используется программируемый параллельный адаптер (ППА) КР580ВВ55.
Ключи в матрице располагаются так, как показано на рисунке ниже
На рисунке ниже приведена схема
Рассмотрим, как МП-система определяет, какая клавиша нажата, на примере клавиатуры 4х4.
![](image/ispolzuemye-porty_6.gif)
Согласно приведенному выше рисунку, порты ППА надо запрограммировать следующим образом:
Порт С |
младший полубайт - на вывод старший полубайт - на ввод |
Порт А Порт В |
В режиме 0 |
Из приведенного выше рисунка видно, что один вывод каждой клавиши соединен с одной из входных линий R0, R1, R2, R3, а другой – с одной из выходных линий S0, S1, S2, S3. Если на все выходные линии S0, S1, S2, S3 подавать высокий уровень 1, на всех входных линиях R0, R1, R2, R3 всегда будет уровень 1, вне зависимости от того есть ли нажатая клавиша или нет (см. табл. ниже).
S0 |
S1 |
S2 |
S3 |
1 |
1 |
1 |
1 |
R0 |
R1 |
R2 |
R3 |
1 |
1 |
1 |
1 |
Пока не нажата ни одна клавиша, везде на выходных линиях R0, R1, R2, R3 сохраняется высокий уровень напряжения.
Пусть в первой строке матрицы появился нулевой уровень напряжения, т.е.
S0 |
S1 |
S2 |
S3 |
0 |
1 |
1 |
1 |
R0 |
R1 |
R2 |
R3 |
0 |
1 |
1 |
1 |
номер клавиши |
|