Система прерываний
2.16.1.Прерывание (interrupt) – это реакция вычислительной системы на внутреннее или внешнее событие, возникновение которого приводит к приостановке выполнения текущей программы и передаче управления подпрограмме обслуживания источника прерывания, по завершении которой осуществляется возврат к прерванной программе.
В общем случае прерывание может быть инициировано внешним по отношению к процессору устройством (внешнее прерывание – external interrupt) или какой-либо внутренней причиной, например, ошибкой в программе (внутреннее прерывание – internal interrupt). Различают также аппаратные прерывания (hardware interrupt), вызванные физическими устройствами, и программные прерывания (software interrupt), вызванные специальными машинными командами.
Совокупность программных и аппаратных средств, предназначенных для обслуживания прерываний, называется системой прерываний. Система прерываний принимает запросы прерываний, определяет порядок обслуживания запросов (устанавливает приоритеты), передает управление подпрограмме обслуживания прерывания и обеспечивает корректный возврат из этой подпрограммы.
2.16.2. Система прерываний МК 80С51 обслуживает только аппаратные прерывания, которые могут быть инициированы внешними по отношению к микроконтроллеру устройствами (внешние прерывания) или встроенными периферийными устройствами (внутренние прерывания). Сигналы запросов внешних прерываний поступают на входы INT0’ и INT1’ микроконтроллера, запросы внутренних прерываний формируются таймером 0, таймером 1, приемником или передатчиком последовательного порта.
Аппаратная реализация рассмотренных выше функций системы прерываний в МК 80С51 осуществляется встроенным периферийным устройством, которое называется контроллером прерываний (IC– interrupt controller).
Для временного хранения адреса возврата в прерванную программу используется системный стек.
Начальные участки подпрограмм обслуживания прерываний, называемые векторами прерываний, размещаются в специальной области программной памяти, начиная с адреса 0003Н. Под каждый вектор прерывания отводится 8 байт памяти. Адрес первого (младшего) байта, называемый адресом вектора прерывания, формируется контроллером прерываний при предоставлении обслуживании соответствующему устройству. Адреса векторов прерываний МК 80С51 приведены в табл. 2.12.
Таблица 2.12
Дата добавления: 2015-10-09; просмотров: 747;