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

UptoLike

25
При подаче напряжения питания бит GIE автоматически обнуляется, т. е.
изначально все прерывания запрещаются. Если далее в программе разрешаются
прерывания (GIE устанавливается программой в единицу), то когда прерывание
происходит, выполняется переход на подпрограмму обработки прерывания.
При этом бит GIE автоматически обнуляется, чтобы запретить дальнейшие
прерывания. Адрес возврата посылается в стек, а в программный счетчик
загружается адрес 0004h. Время реакции на прерывание для внешних событий,
таких как прерывание от ножки INT или порта B, составляет приблизительно
пять циклов. Это на один цикл меньше, чем для внутренних событий, таких как
прерывание по переполнению от таймера RTCC. Время реакции от одного и
того же источника всегда одинаковое.
В подпрограмме обработки прерывания
источник прерывания может
быть определен по соответствующему взведенному биту в регистре флагов
INTCON. Этот флаг-бит должен быть сброшен подпрограммой обработки
прерывания. Флаги запросов прерываний не зависят от соответствующих
маскирующих битов и бита общего маскирования GIE. Команда возврата из
прерывания RETFIE должна завершать подпрограмму обработки прерывания.
Она загружает в счетчик команд адрес возврата (
берет из стека) и
устанавливает в единичное состояние бит GIE, чтобы разрешить последующие
прерывания. Если за время обработки данного прерывания произошло другое
незамаскированное прерывание, то после выхода из текущего прерывания
программа сразу перейдет к выполнению нового прерывания.
Регистр запросов и масок INTCON
Адрес: 0Bh
Значение при reset= 0000 000?
7 6 5 4 3 2 1 0
GIE EEIE RTIE INTE RBIE RTIF INTF RBIF
RBIF - Флаг прерывания от изменения на порту RB.
Флаг устанавливается, когда сигнал на входе RB<7:4> изменяется.
Любое изменение сигналов на четырех входах порта RB<7:4> установит бит
RBIF (INTCON<0>). Это прерывание может быть разрешено/запрещено
установкой/сбросом бита маски RBIE (INTCON<3>).
Сброс флага RBIF должен выполнятся программой обработки этого
прерывания.
INTF - Флаг прерывания от входа INT.
Флаг устанавливается, когда на
ножке INT появляется сигнал от
внешнего источника прерывания. Сбрасывается программным способом.