Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ к цифрам.doc
Скачиваний:
28
Добавлен:
06.05.2019
Размер:
2.08 Mб
Скачать

Структура регистра ie

Таблица 11.1

Адрес A8h

Значение после сброса 00h

Побитовая адресация

IE.7

IE.6

IE.5

IE.4

IE.3

IE.2

IE.1

IE.0

EA

-

-

ES

ET1

EX1

ET0

EX0

Глобальная блокировка прерываний

Не используется

Не используется

Разрешение/ запрет от приемопер.

Разрешение/ запрет от TC1

Разрешение/ запрет от

Разрешение/ запрет от TC0

Разрешение/ запрет от

Выполнять какие-либо действия с разрядами этого регистра можно используя либо непосредственный адрес – IE.x, либо альтернативный символический, например либо IE.7 , либо EA. Установка бита в «1» разрешает соответствующие действия, а в «0» запрещает.

При возникновении прерываний микроконтроллер после завершения очередного машинного цикла, запомнив программный адрес, на котором возникло прерывание, переходит на программный адрес в зависимости от произошедшего события, называемый вектором прерываний, и определяемый табл. 11.2.

Адреса векторов прерывания

Таблица 11.2

Источник прерывания

Адрес (вектор)

Вн. прерывание

0003h

Переполнение Т0

000Bh

Вн. прерывание

0013h

Переполнение Т1

001Bh

Последовательный порт

0023h

Таким образом, в случае необходимости обработки прерываний, начиная с указанных адресов должна выполняться подпрограмма обработки прерываний, с выполнением тех или иных действий. Возврат из подпрограммы обработки прерываний следует осуществлять командой reti. При программировании прерываний следует учитывать, что сегменты, выделенные в программной памяти для обработки векторов прерываний весьма невелики и составляют всего лишь 8 (байт х 2), поэтому в случае достаточно сложной обработки, необходимо пользоваться подпрограммами, помещенными в основную область программной памяти и командой «длинного» абсолютного перехода ljmp. Следует учесть также, что с целью исключения искажения глобальных данных, находящихся в основной области памяти данных (имеются ввиду DPTR, регистры которые могут быть использованы при обработке прерываний, аккумулятор и т. п.), необходимо перед началом подпрограммы обработки сохранять значения этих данных в стеке командой PUSH с последующим восстановлением командой POP перед выходом из подпрограммы прерываний.

В микроконтроллере имеется специальный регистр приоритетов прерываний IP (Interrupt Priority), доступ к которому осуществляется программно:

Регистр приоритетов прерываний

Таблица 11.3

IP.7

IP.6

IP.5

IP.4

IP.3

IP.2

IP.1

IP.0

X

X

X

PSP

PTI

PXI

PT0

PX0

Здесь:

PX0 – приоритет прерывания от внешнего входа ;

PT0 - приоритет прерывания от таймера Т/C0;

PXI - приоритет прерывания от внешнего входа ;

PTI - приоритет прерывания от таймера Т/C1;

PSP - приоритет прерывания от последовательного порта;

X – не используется;

Наличие «1» в сотов. бите обеспечивает высокий приоритет соответствующего события (первоочередность обслуживания), а наличие «0» - низкий.

В случае одинакового приоритета, при появлении соответствующих флагов, прерывания обслуживаются в следующей последовательности:

IE0 -> TF0 -> IE1 -> TF1 -> (TI+RI).

Установка флагов производится в конце машинного цикла, а их опрос – в начале следующего.