КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Указания к выполнению работы. Прерывания в микропроцессорных системах позволяют синхронизировать работу системы с различными внешними процессами ⇐ ПредыдущаяСтр 6 из 6 Прерывания в микропроцессорных системах позволяют синхронизировать работу системы с различными внешними процессами. В МК51 возможна обработка прерываний от пяти источников: - два внешних прерывания от сигналов INT0 (P3.2) и INT1 (P3.3); - от таймеров при их переполнении, то есть от появления флагов TF0 и TF1; - от последовательного порта при приеме и передаче байта. Внешние прерывания могут вызываться как фронтом, так и уровнем сигнала. Это определяется битами IT0 и IT1 регистра TCON. Обработка прерываний производится при разрешении прерывания от соответствующего источника и при общем разрешении обработки прерываний. Управление прерываниями производится установкой или сбросом соответствующих битов регистра разрешения прерываний IE, имеющего следующую структуру:
Здесь EA = 0 – все прерывания запрещены; 1 – можно разрешать прерывания. ES = 1 – разрешено прерывание от последовательного порта. ET1 = 1 – разрешено прерывание от таймера 1. ET0 = 1 – разрешено прерывание от таймера 0. EX1 = 1 – разрешено прерывание от INT1. EX0 = 1 – разрешено прерывание от INT0. Любому из прерываний можно назначить один из двух уровней приоритета. Уровень приоритета определяется битами регистра приоритетов прерываний IP со следующей структурой:
PX0 – приоритет INT0. PT0 - приоритет T0 PX1 - приоритет INT1 PT1 - приоритет T1 PS – последовательного порта. Установка битов приоритетов в 1 означает более высокий приоритет. Обращение к битам регистров IE и IP возможно по имени бита. Обработка прерывания осуществляется так же, как и вызов подпрограммы. Отличие заключается в том, что место вызова подпрограммы обработки прерывания определяется не командой CALL в программе, а моментом возникновения прерывания. Адреса подпрограмм обработки прерываний в МК51 имеют определенные значения:
При входе в программу обработки прерывания в стеке запоминается адрес возврата, и запрещаются прерывания того же уровня, что и обрабатываемое. Выход из подпрограммы обработки осуществляется командой RETI. Для реализации обработки прерываний необходимо: - определить тип внешнего прерывания (по умолчанию IT=0 – прерывание по уровню); - определить приоритеты прерываний ( по умолчанию все прерывания имеют одинаковый низший уровень); - по соответствующим адресам разместить подпрограммы обработки прерываний. Например, задача по генерированию прямоугольных импульсов частотой 10 кГц может быть решена с использованием прерывания следующим образом:
|