Одновекторные системы прерываний. Восьмивекторные системы пре­рываний

Страницы работы

Содержание работы

2.4. Ввод-вывод по прерыванию

При вводе-выводе по прерыванию внешние устройства подают на вход INT микропроцес­сора 8080 сигнал запроса прерывания IRQ {Interrupt Request). Значение сигнала INT МП анали­зирует в последнем такте последнего машинного цикла каждой выполняемой команды. При обнаружении значения INT= 1 при состоянии внутреннего триггера 1NTE = 1 микропроцессор приостанавливает выполнение текущей программы и переходит к выполнению подпрограммы обработки прерывания (ППОП), закончив которую возвращается к выполнению прерванной программы. Для реализации ввода-вывода по прерыванию требуются дополнительные аппа­ратные средства. Типичным примером ввода по прерыванию является ввод кода нажатой кла­виши клавиатуры (частота нажатия клавиш невелика и потери времени при программном вводе с квитированием были бы необоснованно большими). Выполняются ППОП на фоне основной программы, что обеспечивает наиболее рациональное использование процессорного времени.

Одновекторные системы прерываний. На рис. 2.12 изображены структурные схемы МП-систем 8080 с обслуживанием одновекторных прерываний. Вектор прерывания — это ад­рес подпрограммы обработки прерывания или число, по которому этот адрес автоматически вычисляется микропроцессором. Подключение выхода INTA системного контроллера 8238 к источнику напряжения питания +12 В переводит его в режим выдачи в МП машинного кода FFh  команды RST 7 в ответ на запрос прерывания IRQ = 1 по входу INT [10]. При приеме за­проса прерывания (при условии, что командой EI предварительно было установлено значение сигнала INTE= 1) МП 8080 выдает в системный контроллер слово состояния SW8,10 = 0010x011 (см. табл. 1.15), младший разряд которого D0, = 1 блокирует системную шину данных, т. е. вы­борка команды RST 7 производится не из памяти команд программы, а из самого системного контроллера 8238. Формат команд RST n показан на рис. 2.13 —  адрес вызова ППОП вычисля­ется автоматически  и определяется числом 8 * п = ( 8 * 7 ) 10, = 56 1 0 = 3816.

На рис. 2.12, а изображена структурная схема МП-системы с обслуживанием по прерыва­нию одного внешнего устройства I/O - 0. Прием  запросов  прерывания   IRQ = 1 возможен только после установки командой EI значения сигнала INTE = 1. Сразу после приема запроса преры­вания МП сбрасывает сигнал 1NTE в 0, что используется для сброса в 0 сигнала IRQ. Таким образом, ввод-вывод по прерыванию определяется схемой:

IRQ ∫      => INTE I    =>   IRQ I   (аппаратное квитирование ввода-вывода).

                  =>SW8,  10    =>   RST 7   =>   ППОП по адресу addr = 0038h

(команда RST 7 поступает в МП по локальной шине данных из системного контроллера 8238).

a)

б)

Рис. 2.12. Одновекторные системы прерываний

D7    D6   D5   D4   D3   D2   D1   D0

1

1

n

n

n

1

1

1

Рис. 2.13.Машинные коды команд RST n

Содержимое всех внутренних регистров МП, которые будут использоваться подпрограммой обработки прерывания, необходимо сохранить в оперативной памяти, а в само конце ППОП следует восстановить содержимое этих регистров. Для этих целей наиболее целесообразно использовать команды PUSH rp и POP rp, адресующие стек. Так как ввод и вывод данных при обработке прерываний от внешних устройств производится командами IN port и OUT port c использованием аккумулятора, то всегда следует сохранять и восстанавливать, по крайней мере, регистр PSW – аккумулятор и регистр признаков. Типовое оформление подпрограммы обработки прерывания при сохранении и восстановлении содержимого всех внутренних регистров МП приведено ниже:

; Начало подпрограммы обработки прерывания RST 7 с адресом вызова 7 х 8 = 56d =0038h

PUSH    PSW   ;Сохранение в стеке состояния прерванной (основной ) программы

PUSH    H

PUSH    D

PUSH    B

                          ; Собственно подпрограмма обработки прерывания

POP       B         ; Восстановление  состояния прерванной программы

POP       D

POP       H

POP       PSW

EI                       ; Разрешение прерываний ( INTE ← 1 )

RET                   ; Возврат в прерванную программу

На рис. 2.12, б показана структурная схема МП - системы  с одновекторным обслуживанием по прерыванию восьми внешних устройств I/O – m (m=0…7) с восемью уровнями приоритета. При выдаче активного уровня сигнала запроса прерывания Im =0 хотя бы одним внешним устройством приоритетный шифратор PRCD вырабатывает активный уровень группового сигнала запроса прерывания GS = 0 и выдает двоичный код номера m = A2A1A0, внешнего устройства, имеющего наибольший приоритет из всех внешних устройств, одновременно запросивших обслуживание. Чем больше номер m входа Im у приоритетного шифратора 555ИВ1, тем выше приоритет этого входа.

          Пример 1 (подпрограмма обслуживания прерывания, соответствующая рис.2.12,б):

PUSH     PSW                ; Сохранение в стеке состояния прерванной программы

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
246 Kb
Скачали:
0