Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Micro_systK.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
4 Мб
Скачать
☆

4.5.2. Организация ввода/вывода в режиме прерывания программы

Рассмотрим организацию ввода-вывода в режиме прерывания на примере решения задачи 1.

Реализация ввода в этом режиме потребует включения в состав МПС логических элементов “Исключающее ИЛИ” DD3,DD4, элемента “ИЛИ” DD4 и контроллера прерываний DD6 (см. рис. 4.17).

Работа схемы протекает в следующей последовательности:

  1. Постоянный опрос порта не производится, но при нажатии любой кнопки на выходе элемента ИЛИ формируется сигнал единичного уровня, который поступает на вход запроса прерывания IR0 программируемого конт­роллера прерываний.

  2. Контроллер прерываний формирует на своем выходе INT запрос прерывания (если он не замаскирован). Запрос прерывания поступает на вход INT микропроцессора.

  3. Микропроцессор в конце каждой команды проверяет наличие запроса прерывания на входе INT. Если на входе INT имеет место сигнал единичного уровня и прерывание разрешено (флаг IF в регистре флагов находится в единичном состоянии), то микропроцессор заканчивает выполнение текущей команды и приступает к формированию последовательности подтверждения прерывания. Последовательность подтверждения прерывания состоит из двух циклов подтверждения прерывания разделенных двумя холостыми тактами.

  4. В первом цикле подтверждения прерывания МП загружает в стек содержимое регистра флагов F, сегментного регистра кода CS, указателя команд IP и формирует первый сигнал подтверждения прерывания INTA. При формировании сигнала INTA сбрасывается триггер разрешения прерывания.

  5. В о втором цикле подтверждения прерывания микропроцессор форми­рует второй сигнал подтверждения прерывания INTA, в ответ на который контроллер прерываний выдает на шину данных номер прерывания.

  6. Микропроцессор принимает номер прерывания, умножает его на 4 и по полученному адресу извлекает из таблицы векторов прерываний значения командного сегмента и указателя команд, соответствующие программе обслу­живания прерывания.

  7. З агрузка этих значений в соответствующие регистры приводит к тому, что очередной выполняемой командой будет являться первая команда программы обслуживания прерывания.

В нашем случае эта программа должна иметь следующий вид:

PR: CALL TZ ; Уход на п/программу задержки TZ

IN AL, 00h ; Опрос порта 00h

AND AL, 03h ; Маскирование старших разрядов

MOV ADR, AL ; Запись информации в ячейку ADR

OUT 01h, AL ; Вывод в порт 01h принятой кодовой

; комбинации с целью снятия запроса прерывания

STI ; Разрешение прерывания

IRET ; Возврат из п/программы

; обслуживания прерывания

  1. При выполнении последней команды обслуживания запроса прерывания микропроцессор извлекает из стека записанные значения указателя команд, сегментного регистра кода, регистра флагов и помещает их в соответствующие регистры. Этим обеспечивается переход к выполнению следующей команды основной программы.

Достоинства ввода/вывода информации в режиме прерывания программы:

  • считывание информации происходит только в случае ее изменения. В остальное время микропроцессор может решать другие задачи.

  • задержка в получении информации является величиной постоянной.

Недостатки ввода/вывода информации в режиме прерывания программы:

  • дополнительные аппаратные затраты (контроллер прерываний, логика).

  • дополнительные программные затраты (необходимость предваритель­ного программирования контроллера прерываний).

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