Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vvod-vyvod (1).doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
659 Кб
Скачать
☆

Программно-управляемый ввод-вывод.

Выше сказано, что при организации программно-управляемого ВВ все действия по ВВ выполняются командами прикладной программы.

До выполнения собственно передачи данных МП должен выдать в ПУ приказ о подготовке его к операциям ВВ. Приказ может быть одним битом или полным словом. После этого МП должен проверить готовность устройства и произвести ВВ, когда бит готовности установлен в 1. Поэтому программно-управляемый ВВ обычно включает в себя выполнение следующих действий:

  1. в ПУ передается приказ об инициировании действий ВВ.

  2. МП считывает состояние устройства

  3. Проверяет готовность устройства к обмену данными

  4. Если устройство не готово к обмену то пункты 2 и 3 повторяются

  5. Если устройство готово к обмену, то МП осуществляет собственно ввод или вывод. Обычно это действие сбрасывает бит готовности ПУ.

Р егистровая модель считывателя с перфоленты с использованием ВВ с отображением на память. Адрес FF20 соответствует регистру состояния и управления, который подключается к порту двунаправленного ВВ, а адрес АА21 – регистру данных считывателя, который подключается к порту считывателя.

Ассемблерная программа одного байта информации в аккумулятор:

INBYT: MVI A,1 ; инициирование запуска

STA 0FF20h ; считывателя

WAIT: LDA 0FF20h ; считывание состояния

ORA A ; установка флажков

JP WAIT ; зацикливание до готовности

LDA 0FF21h ; ввод байта данных

Команда MVI загружает в А код 1, а команда STA передает его в регистр состояния и управления, после чего считыватель начинает движение перфокарты. Затем в А вводиться код из регистра состояния и управления, команда вводиться код из регистра состояния и управления, команда ORA A устанавливает флажки в соответствии с введенным кодом, а команда JP (переход, если S=0) зацикливает процесс проверки состояния. После восприятия сигнала готовности (S=1) МП вводит в А из регистра данных считанное с перфокарты слово. Длина фрагмента программы составляет 15 байт.

В изолированном ВВ программа несколько изменяется: адреса портов становятся однобайтными (взяты две последние цифры предыдущих адресов), а ввод-вывод производиться специальными командами:

INBYT: MVI A,1 ; инициирование запуска

OUT 20h ; считывателя

WAIT: IN 20h ; считывание состояния

ORA A ; установка флажков

JP WAIT ; зацикливание до готовности

IN 21h ; ввод байта данных

Длина этого фрагмента на 3 байта короче предыдущего.

Аналогичный вид имеет подпрограмма вывода, но в этой подпрограмме нужно учесть, что если выводимое слово сначала находиться в А, его необходимо временно запомнить в стеке, чтобы освободить А для операции проверки готовности. Пусть бит готовности устройства подключен к старшему биту порта READY, а вывод осуществляется в порт DPORT. Тогда подпрограмма вывода имеет вид:

WRITE: PUSH PSW ; освобождение А

WAIT: IN READY ; считывание состояния

ORA A ; установка флажков

JP WAIT ; зацикливание до готовности

POP PSW ; восстановление выводимого слова

OUT DPORT ; вывод байта данных

Выделять параллельный порт ввода для бита готовности одного ПУ нецелесообразно. Поэтому обычно в 8-битный порт ввода READY упаковывают биты готовности до 8 устройств. После ввода в А упакованного слова состояния нескольких ПУ возникает проблема проверки бита определенного устройства. Она решается с помощью операции поразрядной конъюнкции упакованного слова состояния и слова маски MASK, содержащего единицу в бите, соответствующем подключению нового устройства, и нули в остальных битах.

…

IN READY ; ввод упакованного состояния

ANI MASK ; выделение нужного бита

…

Чтобы несколько сократить непроизводительные потери времени на ожидание готовности ПУ к обмену данными, вводят периодическую проверку готовности устройств.

Б лок-схема периодического последовательного опроса нескольких устройств, называемого также полингом. Частота опроса выбирается таким образом, чтобы система обеспечивала работу ПУ с их номинальным быстродействием.

Асинхронная система передачи удобна, надежна, поскольку в организации обмена участвуют оба устройства. Если одно из ПУ неисправно или не включено, то обмен данными не состоится, о чем легко уведомить систему.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]