ОРГАНИЗАЦИЯ ВВОДА — ВЫВОДА ИНФОРМАЦИИ В МК
Для связи МК 1816 с объектом управления, для ввода и вывода информации используются 27 линий. Эти линии сгруппированы в З порта по 8 линий в каждом и могут быть использованы для вывода, ввода или для ввода—вы вода через двунаправленные линии. Кроме портов ввода—вывода, имеются З входные линии, сигналы на которых могут изменять ход программы по командам условного пере хода: линия ЗПР используется для ввода в МК сигнала запроса прерывания от внешнего источника; линия ТО предназначена для ввода тестирующего сигнала от двоичного датчика объекта управления; кроме того, под управлением программы (ЕNТ0 СLC) по этой линии из МК может выдаваться сигнал синхронизации; линия Т1 используется для ввода тестирующего сигнала или в качестве входа счетчика событий (по команде SТRT СNT).
Порты ввода—вывода Р1 и Р2. Каждая линия портов Р1 и Р2 может быть программным путем настроена на ввод,
вывод или на работу с двунаправленной линией передачи. Специальная схемотехника цепей вывода портов Р1 и Р2, которая получила название квазидвунаправленной структуры, позволяет выполнять ввод, вывод и двунаправленные передачи, несмотря на то, что выходы схем вывода статически заперты. Каждый контакт ввода — вывода пор тов Р1 и Р2 является выходом с открытым стоком и входом с высоким импедансом, соответствующим логическому уровню сигналу 1. На рис. 4.6 показана схема одной линии ввода — вывода. Линия постоянно подключена к источнику электропитания +5 В через резистор большого сопротивления (50 КОм), обеспечивая для единичной стандартной ТТЛ -нагрузки достаточный входной ток, соответствующий логической 1. В то же время потенциал в линии может быть приближен к потенциалу земли (уровень логического О) нулевым сигналом на выходе стандартной ТТЛ-схемы. Именно это обстоятельство и позволяет использовать статически запертую схему вывода как для ввода, так и для вывода информации.
При передаче на выход из МК уровня 1 по сигналу ЗАПИСЬ для ускорения переходного процесса от 0 к 1 на короткое время (0,5 мкс) открывается верхний МОП-транзистор с относительно низким сопротивлением (5 КОм). При передаче в линию уровня 0 открытым оказывается нижний МОП-транзистор выходной схемы с сопротивлением 3 кОм. Это сопротивление достаточно малое для того, чтобы обеспечить отвод тока из входной цепи ТТЛ-нагрузки.
Для того, чтобы настроить некоторую линию на режим ввода в МК, необходимо перед этим в буферный D-триггер этой линии записать 1. При этом нижний МОП-транзистор выходной схемы окажется закрытым и это обеспечит ТТЛ источнику вводимого сигнала высокоимпедансную нагрузку. Сигнал системного сброса СБРОС автоматически записывает во все линии портов Р1 и Р2 сигнал 1.
Квазидвунаправленная структура портов Р1 и Р2 для программиста МК 1816 специфична тем, что в процессе ввода информации выполняется операция логического И над вводимыми данными и текущими (последними выводимыми) данными. Для того, чтобы можно было осуществить ввод, программист должен следить за тем, -чтобы в со ответствующих линиях ввода сохранялось значение 1. Квазидвунаправленные буферные схемы портов Р1 и Р2 и команды логических операций ANL и ORL представляют программисту эффективное средство маскирования для об работки однобитовых входов и выходов в МК.
В системе команд МК есть команды, которые позволяют выполнять запись нулей и единиц в любой разряд или группу разрядов порта. Но так как в этих командах маска задается непосредственным операндом, то необходимо знать распределение сбрасываемых и устанавливаемых линий на этапе разработки исходной программы. В том случае, если маска вычисляется программой и заранее не известна, то ОЗУ необходимо иметь копию состояния порта вывода. Эта копия по командам логических операций соединяется с вычисляемой маской в аккумуляторе и затем загружается в порт. Необходимость этой процедуры вызвана тем, что квазинаправленная структура не позволяет вы полнить операцию чтения состояний портов Р1 и Р2, за фиксированных по последней команде вывода.
Порт Р2 отличается от порта Р1 тем, что его младшие 4 бита могут быть использовав для расширения МК-системы по вводу—выводу.. Через младшую тетраду порта .Р2 по специальным командам с обращением к портам Р4—Р7 возможен доступ к четырем внешним четырехбитным пор там ввода—вывода. Работа этих внешних портов синхронизируется сигналом ПРОГ/СТБВВ.
Порт ввода—вывода ВUS. Порт ВUS представляет собой двунаправленный буфер с тремя состояниями и предназначен для побайтного ввода, вывода или ввода—вывода информации.
Если порт ВUS используется для двунаправленных передач, то обмен информацией через него выполняется по командам MOVX. При выводе байта генерируется стробирующий сигнал ЗП, а выводимый байт фиксируется в буферном регистре. При вводе байта генерируется стробирующий сигнал ЧТ, но вводимый байт в буферном регистре не фиксируется. В отсутствие передач порт ВUS по своим выходам находится в высокоимпедансиом состоянии.
Если порт ВUS используется как однонаправленный, то вывод через него выполняется по команде ОUТL а ввод — по команде INS.
Вводимыте и выводимые через порт ВUS байты можно маскировать с помощью команд АND и ОR, что позволяет выделять и обрабатывать в байте отдельный бит или группу бит. для этого предварительно по команде ОUTL ВUS, А в порт ВUS из аккумулятора должна быть загружена маска.
В МК-системах простой конфигурации, когда порт ВUS не используется в качестве порта системы, обмен выполняется по командам INS, OUTL и МОVХ. Воз можно попеременное использование команд OUTL и МОVХ. Однако при этом необходимо помнить, что выводимый по команде OUTL байт фиксируется в буферном регистре порта ВUS, а команда МОVХ уничтожает содержимое буферного регистра порта.
В МК-системах, имеющих внешнюю память программ, порт ВUS используется для выдачи и для приема команды из внешней памяти программ. В таких системах использование команды OUTL ВUS недопустимо, так как фиксация в буферном регистре порта ВUS выводимого байта явится причиной неправильной выборки следующей команды.
В командах ввода—вывода информации имя порта, через который осуществляется передача, содержится в коде команды. Следовательно (из-за невозможности динамического определения имени порта в каком-либо рабочем регистре), отсутствует возможность использования одной, программы управления идентичными устройствами, подключенными к разным портам. Это вынуждает программиста загружать в память программ две или более по существу (но не по кодам) одинаковых программ управления однотипными устройствами.
Однако динамический выбор идентичных устройств, а следовательно, и использование одной параметризуемой подпрограммы управления этими устройствами возможны в том случае, если обращение к внешним портам ввода— вывода выполнять по командам обращения к внешней памяти МОVХ.
Дата добавления: 2015-02-25; просмотров: 1087;