Проектирование средств контроля и диагностики с элементами высокой интеграции. Методические указания - 26 стр.

UptoLike

24
Организация прерываний
Прерывания в PIC16C84 могут быть от четырех источников:
- внешнее прерывание с ножки RB0/INT,
- прерывание от переполнения счетчика/таймера RTCC,
- прерывание по окончании записи данных в EEPROM,
- прерывание от изменения сигналов на ножках порта RB<7:4>.
К работе микроконтроллера по прерываниям имеют отношения три
группы флагов-битов.
К первой группе относятся флаги, которые
устанавливаются в единичное
состояние в момент возникновения события, которое может вызвать
прерывание. Тут следует различать два понятия: возникновение события,
которое может вызвать прерывания и собственно прерывание, которое
выражается в прерывании работы микроконтроллера и переходе на
подпрограмму обработки прерывания. Если событие произошло, то оно будет
отмечено в первой группе флагов, но
не обязательно вызовет прерывание.
Вторая группа флаговразрешает или запрещает каждый тип
прерывания индивидуально. Эторазрешительнаягруппа флагов.
Флаги в первой группе взводятся независимо от состояния флагов второй
группы и должны сбрасываться самой программой обработки прерывания.
Таким образом, первая группа является просто индикатором возникновения
того или иного события, которое вызывает
прерывание, если оно разрешено
флагом второй группы и если вообще все прерывания не запрещены флагом
третьей группы.
И, наконец, третья группа флагов состоит из единственного флага
полного запрета всех прерываний. Все три группы флагов объединены в
регистр INTCON (адрес 0Вh).
Все прерывания имеют один и тот же вектор/адрес – 0004h. Это означает
,
что при возникновении любого прерывания происходит принудительный
переход к выполнению команды, расположенной в памяти программ по адресу
04h. Адрес возврата автоматически сохраняется в аппаратном стеке. В регистре
INTCON записывается информация, по которой можно узнать, от какого
именно источника поступил запрос прерывания. Эта информация записывается
в виде перевода в единичное состояния соответствующего
бита-флага в
регистре INTCON. Единственным исключением является прерывание по концу
записи в EEPROM. Этот флаг находится в другом регистре – EECON1.
Бит общего разрешения/запрещения прерывания GIE (INTCON <7>)
разрешает (если=1) все индивидуально незамаскированные прерывания или
запрещает (если=0) их. Каждое прерывание в отдельности может быть
дополнительно разрешено/запрещено установкой/сбросом соответствующего
бита в регистре INTCON.