
2026-08-15
Блок-схема системы внешних прерываний:
Флаги запросов прерывания этих источников прерывания защелкиваются в ответных битах специальных функциональных регистров TCON и SCON.
1. Регистр TCON
Связанные с прерыванием — это четыре младших бита.
1) IT0 и IT1 — флаги запроса внешнего прерывания:
0 —— срабатывает при низком уровне;
1 —— срабатывает по фронту падения
Может быть установлен и сброшен программно.
2) IE0 и IE1 — флаги запросов внешних прерываний
1 —— указывает на наличие прерывания, процессор должен обработать запрос на прерывание, перейти к процедуре обработки прерывания, обработать процедуру прерывания по приоритету, при переходе в процедуру обработки прерывания аппаратное обеспечение сбрасывает флаг.
0 — указывает на отсутствие запроса прерывания.
Сбросные значения TCON равны нулю.
SCON — регистр управления последовательным интерфейсом, подробнее см. в разделе о последовательном интерфейсе.
2. Регистр разрешения прерываний IE может адресоваться по битам и сбрасывается в 0.
Когда бит установлен в 1, разрешается прерывание на соответствующем уровне; когда установлен в 0, прерывание запрещено. EA — это общий переключатель прерываний.
Примечание: После обработки внешнего прерывания микроконтроллер автоматически сбрасывает флаг внешнего прерывания в 0. Однако из-за особенностей способа активации внешнего запроса на прерывание, необходимо избегать повторных запросов при использовании внешних прерываний.
Программирование внешнего прерывания 0;
1. Установите бит разрешения внешнего прерывания, установите биты EA и EX0 в регистре IE;
2. Выберите подходящий способ внешнего запроса прерывания, то есть установите IT0 (или IT1) в регистре TCON;
3. Написание функции обработки прерывания.
Пример:
main()
{
IT0 = 1; // Установить внешний прерывание 0 на срабатывание по фронту падения
EX0 = 1; // Включение внешнего прерывания 0
EA = 1; // Включение общего прерывания
while (1)
;
}
void ext_interrupt(void) interrupt 0
{
delay(5);
if (button0 == 0) {