При выборе номера прерывания для проектируемого модуля необходимо учитывать задействованные номера прерываний IRQ микропроцессорной системы. Выберем номер прерывания IRQ10.

Программирование контроллера прерываний необходимо для того, чтобы при запросе на прерывание процессор передал управление программе- обработчику, специально написанной для обработки этой конкретной ситуации. В данном случае рассматривается как можно установить вектор прерывания на указанный адрес начала подпрограммы прерывания. Это можно сделать двумя путями: прямым изменением таблицы векторов прерываний (рекомендуют использовать только в случаях крайней необходимости) и с помощью двух системных функций: 25h и 35h  установить и считать адрес обработчика прерывания, которые рекомендуется использовать в обычных случаях. Чтобы завершить обработчик, любая процедура прерывания должна завершаться командой IRET. В конце каждого из аппаратных прерываний нужно включать строки:

MOV AL, 20H

OUT 20H, AL

Если аппаратное прерывание не заканчивается этими строками, то микросхема программируемого контроллера прерываний Intel 8259 не очистит информацию регистра обслуживания, с тем чтобы была разрешена обработка прерываний с более низкими уровнями, чем только что обработанное. Это может привести к сбою программы.

Рисунок5.7 – Алгоритм обработки прерываний

Соседние файлы в папке Проектирование микропроцессорного устройства системы управления