Функциональная организация микро-ЭВМ и микроконтроллеров. Часть 2: К1816ВЕ48. Негода В.Н - 40 стр.

UptoLike

Квазидвунаправленные схемы портов Р1 и Р2 и команды
логических операций ANL и ORL предоставляют разработчику
эффективное средство маскирования для обработки однобитных
входных и выходных переменных.
В системе команд МК есть команды, которые позволяют выполнять
запись нулей и единиц в любой разряд или группу разрядов порта ,
но так как в этих командах маска задается непосредственным
операндом, то необходимо знать распределение сбрасываемых и
устанавливаемых линий на этапе разработки прикладной
программы. В этом случае, если маска вычисляется программой и
заранее неизвестна, в ОЗУ необходимо иметь копию состояния
порта вывода. Эта копия по командам логических операций
объединяется с вычисляемой маской в аккумуляторе и затем
загружается в порт. Необходимость этой процедуры вызвана тем,
что в МК отсутствует возможность выполнить операцию чтения
значения портов Р1 и Р2 для определения прежнего состояния порта
вывода. Порт Р2 отличается от порта Р1 тем, что его младшие
четыре бита могут быть использованы для расширения МК-системы
по вводу/выводу. Через младшую тетраду порта Р2 по специальным
командам обращения возможен доступ к четырем внешним
четырехбитным портам ввода/вывода Р4-Р7. Работа этих внешних
портов синхронизируется сигналом ПРОГ.
Порт ввода/вывода BUS представляет собой двунаправленный
буфер с тремя состояниями и предназначен для побайтного ввода,
вывода или ввода/вывода информации. Если порт BUS используется
для двунаправленных передач, то обмен информацией через него
выполняется по командам MOVX. При выводе байта генерируется
стробирующий сигнал ЗП, а выводимый байт фиксируется в
буферном регистре. При вводе байта генерируется стробирующий
сигнал ЧТ, но вводимый байт в буферном регистре не фиксируется.
В отсутствие передач порт BUS по своим выходам находится в
высокоимпедансном состоянии. Если порт BUS используется как
однонаправленный, то вывод через него выполняется по команде
OUTL, а ввод - по команде INS. Вводимые и выводимые через
порт BUS байты можно маскировать с помощью команд ORL и
ANL, что позволяет выделять и обрабатывать в байте отдельный
бит или группу бит. В МК-системах простой конфигурации, когда
порт BUS не используется в качестве порта-расширителя системы,
обмен выполняется по командам INS, OUTL и MOVX. Возможно
попеременное использование команд OUTL и MOVX. Однако при
этом необходимо помнить, что выводимый по команде OUTL байт
фиксируется в буферном регистре порта BUS, а команда MOVX
уничтожает содержимое буферного регистра порта BUS. (Команда