Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микроконтроллеры семейства MCS-196.DOC
Скачиваний:
67
Добавлен:
02.05.2014
Размер:
1.09 Mб
Скачать

2.2. Прерывания

Основной функцией микроконтроллера является обеспечение управления устройствами в реальном времени. Схема контроллера прерываний позволяет событиям реального времени управлять выполнением программы. Когда событие вызывает прерывание, CPU обслуживает это прерывание перед выполнением следующей команды. Встроенная периферия, внешний сигнал или команда могут выставить запрос на прерывание. В простейшем случае 8XC196KC/KD получает запрос прерывания, осуществляет обслуживание и возвращается к прерванной программе.

2.2.1. Модификация приоритетов прерываний

Программное обеспечение может модифицировать установленные по умолчанию приоритеты маскируемых прерываний через регистры маски прерываний (INT_MASK и INT_MASK1). Например, можно определить, какие прерывания, если это необходимо, могут обслуживаться подпрограммой обработки прерывания, а какие в цикле PTS. Следующая программа показывает возможный вариант запрещения всех прерываний, кроме EXTINT (приоритет 7), в подпрограмме обработки прерывания при приёме в последовательном канале (приоритет 9).

SERIAL_RI_ISR:

PUSHA ; Save PSW, INT_MASK, & WSR

DI ; Disable all interrupts

LDB INT_MASK1, #00100000B ; Ехсept EXTINT

EI ; Enable interrupt servicing

; Service the RI interrupt

POPA ; Restore PSW, INT_MASK, & WSR regsret

RET

Ячейка, которая расположена с адреса 2032h в таблице векторов прерывания, загружается значением метки SERIAL_RI_ISR, для разрешения прерывания приёма.

В таблице 1 показаны источники прерываний, их адрес-векторы и приоритеты контроллеров 8XC196KC/KD

Таблица 1

Номер

Вектор прерывания

Источник

Ячейка вектора прерывания

Ячейка вектора PTS

Приоритеты*

Спец.

Неподдерживаемый код

Неподдерживаемый код

2012h

******

******

Спец.

Программное прерывание

Команда TRAP

2010h

******

******

INT15

NMI**

NMI

203Eh

******

15

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

INT14

HSI FIFO Full

Буфер FIFO HSI полный

203Ch

205Ch

14

INT13

EXTINT**

P2.2

203Ah

205Ah

13

INT12

Timer 2 Overflow

Переполнение таймера2

2038h

2058h

12

INT11

Timer 2 Capture**

Фиксация значения таймера 2

2036h

2056h

11

INT10

HSI FIFO 4

Четвертый вход в FIFO HSI

2034h

2054h

10

INT09

Receive

RI флаг**

2032h

2052h

9

INT08

Transmit

TI флаг **

2030h

2050h

8

INT07

EXTINT **

P2.2 илиP0.7

200Eh

204Eh

7

INT06

Serial Port

RI флаг иTI флаг ****

200Ch

204Ch

6

INT05

Software Timer

Программный таймер 0-3, сброс таймера 2, запуск АЦП.

200Ah

204Ah

5

INT04

HSI.0 **

Вход HSI.0

2008h

2048h

4

INT03

HSO

HSO.0-HSO.5

2006h

2046h

3

INT02

HSI Data Available

Заполнение FIFO HSI или загрузка фиксирующего регистраHSI.

2004h

2044h

2

INT01

A/D Conversion Complete

Завершение A/D преобразования

2002h

2042h

1

INT00

Timer Overflow

Таймер 1 или 2

2000h

2040h

0

Примечания:

* Прерывание по неподдерживаемым кодам и программное прерывание не имеют приоритетов. Они проходят напрямую в контроллер прерывания на обработку. NMI имеет наивысший приоритет из всех прерываний с приоритетом. Любое PTS-прерывание имеет больший приоритет, чем остальные маскируемые прерывания.

** Данные прерывания могут быть сконфигурированы как независимые внешние прерывания.

*** Если прерывание Serial Port замаскировано , а прерывания Receive и Transmit разрешены, RI флаг и TI флаг генерируют отдельные прерывания Receive и Transmit.

**** Если прерывания Receive и Transmit замаскированы, а прерывание Serial Port разрешено, оба флага RI и TI генерируют прерывания Serial Port.