Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Курс лекций по микропроцессорам 1999.DOC
Скачиваний:
197
Добавлен:
21.02.2014
Размер:
3.02 Mб
Скачать

Подсистема прерываний

Рис.3.12. Организация подсистемы прерываний.

Подсистема прерываний (ПП) реализована в виде двухуровневой подсистемы с пятью источниками запросов - 2 внешних (INT0,INT1), 2 прерывания от счетчиков TF0,TF1 и одно от последовательного канала(TI V RI ).

В качестве регистров запроса прерываний используются регистры TCON и SCON.

В TCON хранятся биты переполнения счетчиков, которые сбрасываются автоматически при обращении к подпрограмме обработки прерываний, и флаги внешних прерываний. В SCON – флаги готовности последовательного порта.

Восприятие запроса по входам INTO,INT1 может быть программно установлено по уровню (ноль) или срезу (единица). Запрос по срезу предпочтительнее, так как сброс флага запроса прерываний реализуется автоматически при обращении к подпрограмме обработки прерываний; а в первом случае необходимы дополнительные программно-апппаратные средства для сброса запроса.

Последовательный порт имеет один вектор прерывания общий для TI и RI. Поэтому, в процедуре обработки прерываний, необходимо уточнять источник запроса методом поллинга.

Прерывание можно вызвать также, если установить соответствующие флаги в регистрах TCON и SCON программно.

Управление подсистемой прерывания осуществляется при помощи регистра маски IE и регистра приоритетов IP.

7

6

5

4

3

2

1

0

IE

EA

X

X

ES

ET1

EX1

ET0

EX0

Рис.3.13. Формат регистра масок прерываний IE: EA - бит общего разрешения прерываний; ES - бит разрешения прерывания от флагов TI и RI; ETI,ET0 - биты разрешения прерываний от таймеров/счетчиков; EXI,EX0 - биты разрешения внешних прерываний INT1,INT0; 1 – прерывание разрешено, 0 – запрещено.

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

7

6

5

4

3

2

1

0

IP

X

X

X

PS

PTI

PXI

PT0

PX0

Рис.3.14. Формат регистра приоритетов прерываний IP; PS - бит приоритета последовательного канала,; PTI,PTI0 - биты приоритета таймеров; PXI,PXO - биты приоритета внешних прерываний (1 - высший приоритет, 0 – низший).

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

IE0(INT0) - высший

TF0

IE1(INT1)

TF1

RI V TI - низший

Запросы на прерывание могут быть приняты к обслуживанию в конце каждого командного цикла за исключением исполнения команды RETI и команд с любым обращением к регистрам IE и IP. Это обстоятельство гарантирует выполнение хотя бы еще одной инструкции после команд обращения к IE, IP, RETI, прежде чем возникнет новое прерывание. Эта особенность может быть использована для организации пошагового режима

Если прерывание разрешено, то ОМК генерирует команду LCALL vect, где vect принимает значения

IE0(INT0) 0003h EXIT0

TF0 000Bh TIMER0

IE1(INT1) 0013h EXIT1

TF1 001Bh TIMER1

RI V TI - 0023h SINT

По адресу вектора обычно располагается команда LJMP или LCALL с адресом начала подпрограммы обработки прерывания. Так как вектора располагаются в начальных адресах памяти, программы обработки прерываний следует располагать по адресам большим, чем 0026h.

При переходе к процедуре обслуживания прерываний состояние РС автоматически загружается в стек, обеспечивая возврат к прерванной программе по команде RETI.

Если число внешних источников запросов больше двух, то их можно объединить по ИЛИ на входах INT0 и INT1. Дальнейшая обработка запросов производится методом поллинга. Наиболее просто это реализуется по схеме «Монтажное ИЛИ»(открытый коллектор или открытый сток). Дополнительно потребуется регистр запросов прерывания, в качестве которого может использоваться свободный параллельный порт или его часть.

Для организации ввода/вывода информации по срезу импульса запроса INT0 необходимо реализовать следующую программу:

MOV SP,#2F; запись вершины стека

CLR TCON.0; настройка на динамический вход

SETB IP.0; присвоение высшего приоритета (для INT0 это не нужно)

MOV IE,#81h; разрешние прерывания

...

EXIT0(0003h):

LJMP addr16; начальный адрес подпрограммы обработки прерываний

addr 16:

CLR IE.7;

Сохранение информации о прерванной программе

SETB IE.7

...процедура обработки прерываний

CLR IE7

Восстановление информации о прерванной программе

SETB IR.7

RETI; Возврат из прерывания

Если вместо RETI использовать RET, то повторное прерывание по этому входу не будет выполнено

Однокристальная микроЭВМ может работать в режиме сброса: cброс реализуется положительным импульсом, формируемым на входе RST. По сбросу устпнавливается в '0': PC, AC, B, PSW, DPTR, TMOD, TCON, Thi, TLi, SCON.

(SP):=07,

(IP):=(xxx00000),

(IE):='0',

(PCON):=(0xx...x).

ВЕ51 реализует следующие режимы работы: запись/чтение информации в РПЗУ, работу в режиме холостого хода, при которой сокращается энергопотребление, режим пониженного энергопотребления, режим записи бита защиты, при котором запрещается чтение ПЗУ микроконтроллера. Управление режимами осуществляется в слове PCON, и путем установки соответствующих значений на управляющих входах контроллера.

Соседние файлы в папке лекции