ОРГАНИЗАЦИЯ СИСТЕМЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ

Для связи МК с объектом управления, для ввода и вывода информации используется 27 линий: три порта по 8 линий Р1, Р2 и BUS и три независимые линии тестируемые командами условного перехода: Т0, Т1 и INT.

Организация системы прерываний. МК имеет одноуровневую систему прерываний с двумя источниками запросов по входу ~INT (вектор 3) и переполнения таймера/счетчика Т (вектор 7). Одноуровневость означает отсутствие вложенности прерываний, т.е. новые запросы не воспринимаются до завершения обслуживания текущего запроса. При одновременном поступлении запросов высший приоритет имеет внешний источник. Каждый источник может быть замаскирован по специальным командам DIS I, DIS TCNT (запрет прерывания INT или от таймера) или размаскирован по командам EN I, EN TCNT соответственно (рис.6).

Линия INT контролируется во время сигнала ALE и результат тестирования запоминается в триггере внешнего прерывания TIX, установка которого инициирует эквивалент команды CALL 003h (переход по вектору прерывания). В стеке сохраняется РС и PSW, выполняется переход на ППОП, последней командой которой должна быть команда RETR - возврата из прерывания, восстанавливающая содержимое PSW и РС. К моменту выполнения команды RETR внешний сигнал запроса ~INT должен быть снят внешними средствами или выдачей из МК по какой-либо линии портов Р1 или Р2 сигнала подтверждения прерывания.

Аналогично работает схема обработки прерываний от таймера. Если прерывания от таймера разрешены (TRP TCN=1), то в момент возникновения переполнения таймера триггер TIT устанавливается и вызывает переход на ППОП от таймера по вектору 7, после чего автоматически сбрасывает флажок TIT.

Линии Т0 и Т1 используются для ввода тестирующего сигнала от двоичного датчика с объекта управления, по значению которых в МК может выполняться условный переход JT0, JT1, JNT0, JNT1 в программе.

Кроме того по линии Т0 из МК может выдаваться сигнал синхронизации CLK (опорная частота МК деленная на 3) после выполнения команды разрешения выдачи синхросигналов ENT0 CLK).

Линия Т1 может использоваться в качестве входа счетчика событий от внешних источников. Рассмотрим организацию таймера/счетчика (рис.7).

Устройство работает в двух режимах: таймера и счетчика, в которые оно переводится по командам START, а останов по команде STOP TCNT. При переходе через границу счета инициируется запрос на прерывание (переполнение) и устанавливается флажок переполнения TF, который может быть проверен командой условного перехода JTF addr8 и триггер TF автоматически сбрасывается.

В режиме счетчика подсчитывается количество переходов из 1 в 0 на внешнем входе Т1.

В режиме таймера устройство считает метки времени деления частоты машинных циклов ALE на 32. Это позволяет получить паузы от 1/32 ALE до 256 * 1/32 ALE.

Порты ввода-вывода Р1 и Р2.Специальная схемотехника портов Р1 и Р2 (квазидвунаправленная) позволяет выполнять ввод или вывод, причем каждая линия может быть индивидуально настроена на один из режимов. Выходные буфера портов имеют встроенные регистры, которые запоминают выводимые данные. При вводе данных информация поступает непосредственно в АС, минуя выходной буферный регистр, который должен находиться в состоянии 0FFh. Иначе выполняется операция маскирования вводимых данных по схеме "монтажное ИЛИ" с содержимым буферного регистра. Это и позволяет одни линии портов использовать для ввода, а другие для вывода. Упрощенная структура портов показана на рис.8.

Порт 2 отличается от Р1 тем, что его младшие 4 бита и линия PROG могут использоваться для расширения МК-системы по вводу-выводу с использованием БИС расширителя интерфейса К580ВР43 (рис.9).

 
 

Порт ввода-вывода BUS - это двунаправленная 8-разрядная мультиплексированная шина адреса/данных с z-состоянием и предназначен для побайтного ввода и вывода.

Порт BUS может использоваться как для подключения внешней памяти программ и данных, так и для расширения числа линий ввода-вывода для подключения дополнительных периферийных устройств, например, БИС параллельного и последовательного интерфейса ВВ55 или ВВ51. Ввод-вывод может осуществляться по двум типам команд: MOVX или командам ввода и вывода INS и OUTL.

Также как и для портов Р1 и Р2 при выводе байт фиксируется во внутреннем буферном регистре и вырабатывается сигнал ~ЗП (~WR), а при вводе формируется сигнал ~ЧТ (~RD).

 

 


Вводимые и выводимые через порт BUS данные можно маскировать по командам ORL BUS,#d и ANL BUS,#d, что позволяет выделять и обрабатывать отдельный бит или группу бит.

Рассмотрим подключение к порту BUS БИС параллельного интерфейса К580ВВ55.

Вариант А.Порты ВВ55 адресуются как ячейки внешней памяти данных, доступ к которым осуществляется по командам MOVX (рис.10).

Вариант В.Выбор порта ВВ55 осуществляется через установку адреса через порт Р2 МК48 (рис.11).