Соколов Ю.П. Микроконтроллеры семейства MCS-51 (2002) (1095895), страница 8
Текст из файла (страница 8)
Система прерыванийСистема прерываний предназначена для обеспечения реакциимикроконтроллера на внешние и внутренние запросы прерывания. Базовые микроконтроллерысемейства MCS-51 имеют 5 прерываний: два____ ____внешних (входы INT0 и INT1) и три внутренних (от таймеров/счетчиковTC1, TC2 и последовательного порта)Система прерываний позволяет:• фиксировать запросы от внешних и внутренних источников прерываний до их исполнения;• программным способом разрешить или запретить работу системыпрерываний в целом;• программным способом маскировать запросы прерываний отдельных источников;• программным способом устанавливать высокий или низкий приоритет каждому источнику запроса прерываний;• формировать вектор прерывания;• аппаратным способом снять запрос на прерывание при его исполнении.36Работу системы прерываний обслуживают регистры IE,IP, а такжечасть разрядов регистров TCON и SCON.Логическая схема системы прерываний приведена на рис.
27.Фиксация запросов двух внешних прерываний выполняется разрядами IE0 и IE1, прерываний таймеров/счетчиков - разрядами TF0 иTF1 регистра TCON, а последовательного порта – разрядами TI и RI регистра SCON. При наличии запроса прерываний от конкретного источника соответствующий ему разряд устанавливается в 1.________ Запрос на прерывание от внешних источников с входов INT0 иINT1 может реализовываться по уровню или фронту сигнала.
Для этойцели на входе установлены мультиплексоры-переключатели S1 и S2,управляемые разрядами IT0 и IT1 регистра TCON.При ITx=0 (x=0,1) запрос на прерывание от внешнего источникаосуществляется по уровню, а при ITx=1 – по фронту.При прерывании по уровню запрос на прерывание____ устанавливается низким уровнем сигнала, подаваемого на вход INTx (x=0,1). Входнойсигнал инвертируется логическим элементом DD1 (или DD2) и устанавливает в 1 разряд IEx (x=0,1).____ Разряд IEx повторяет, не фиксируя, состояние внешнего входа INTx, поэтому для надежного обнаружениясигнала запроса прерывания его длительность должна быть не менеедлительности машинного цикла.
Разряд IEx при обработке прерыванияаппаратным способом не сбрасывается. Чтобы исключить повторнуюобработку одного и того же запроса, источник запроса____прерываниядолжен установить высокий уровень сигнала на входе INTx до окончания обработки прерывания либо прерывающая программа должна заканчиваться командой RET (вместо RETI). Команда RET, в отличие откоманды RETI, не сбрасывает зафиксированный системой прерыванияDD1S1INT001IT0DD2S2INT10IT1D11D2SCONTIRIРис.
27TCONIEDD4DD5IPEX0&&PX0ET0&&PT0EX1&&PX1ET1&&PT1ES&&PSIE0TF0IE1TF1DD31------------EA---S310S410S510S610S710ВысокийприоритетНизкий0H приоритет1H2H3H4H0L1L2L3L4LНаправление опроса линийTCON37приоритет запроса обслуживаемого прерывания. Осуществить прерывания далее могут только источники с более высоким приоритетом.При фиксации запроса прерывания по фронту формирователямиD1____(или D2) вырабатывается импульс при переходе сигнала на входеINTx из 1 в 0. Этим импульсом устанавливает в 1 разряд IEx (x=0,1).
Вэтом случае разряд IEx сбрасывается аппаратным способом при обработке прерывания.Разряды TF0 и TF1 устанавливаются таймерами/счетчиками ТС0и ТС1 соответственно при переходе счетного регистра из состояния«все единицы» в состояние «все нули». Сброс разрядов TF0 и TF1 выполняется аппаратным способом при переходе к подпрограмме обслуживания прерываний.Разряд TI устанавливается передатчиком последовательного порта после передачи последнего бита кадра - освобождения регистраSBUF, а разряд RI – приемником после приема последнего бита кадра заполнения регистра SBUF.
Разряды RI и TI сбрасываются программным способом обычно в пределах вызванной подпрограммы обработкипрерывания.Все разряды установки запроса прерываний (IE0, IE1, TF0, TF1,RI, TI) могут быть установлены или сброшены программным способом,т.е. прерывание может быть вызвано, а ожидающее обслуживания прерывание сброшено программным способом, а не сигналом____запросапрерывания. Кроме того, внешние прерывания по входам INTx можновызвать программной установкой разрядов порта Р3.2=0 и Р3.3 =0.Регистр IE (Interrupt Enable) предназначен для управления разрешением прерываний. Разряд EA=0 запрещает все прерывания, блокируя передачу запросов прерывания через ЛЭ DD5.
При EA=1 прерывания разрешены, однако прерывание от каждого источника или группыисточников может быть маскировано (запрещено) установкой 0 в соответствующих разрядах регистра IE, блокирующих передачу запросапрерывания через ЛЭ DD4. Все разряды регистра IE устанавливаются исбрасываются программным способом. Обозначение разрядов регистрапоказано в таблице 13.Таблица 13. Регистр IE (A8H)7654EAES3ET12EX11ET00EX0Назначение разрядов регистра:____IE.0EX0Прерывание от внешнего источника INT0.IE.1ET0Разрешение прерывания от таймера/счетчикаTC0.____IE.2EX1Прерывание от внешнего источника INT1.IE.3ET1Разрешение прерывания от таймера/счетчика TC1.IE.4ESРазрешение прерывания от последовательного порта.IE.5Зарезервирован.IE.6Зарезервирован.IE.7EAОбщее управление прерываниями.38Каждому из пяти источников прерываний присваивается один издвух уровней приоритета установкой или сбросом соответствующихразрядов регистра IP (Interrupt Priority).
Все разряды регистра IP устанавливаются и сбрасываются программным способом. Обозначениеразрядов регистра показано в таблице 14.Таблица 14. Регистр IP (B8H)7654PS3PT12PX11PT00PX0Назначение разрядов регистра:____IP.0PX0Приоритет внешнего источника INT0.IP.1PT0Приоритет таймера/счетчика TC0.____IP.2PX1Приоритет внешнего источника INT1.IP.3PT1Приоритет таймера/счетчика TC1.IP.4PSПриоритет последовательного канала.IP.5Зарезервирован.IP.6Зарезервирован.IP.7Зарезервирован.Установка разряда в 1 соответствует высокому уровню приоритета, в 0 – низкому. Каждый разряд регистра IP управляет одним из переключателей – демультиплексоров S3…S7, соединяющих выходы запроса прерываний (выходы ЛЭ DD5) с линиями высокого (0H…4H) инизкого (0L…4L) уровней приоритетов.
В конце машинного цикла производится опрос состояния линий высокого приоритета, а затем линийнизкого приоритета. Опрос ведется в порядке возрастания номеров линий, что определяет распределение приоритетов вторичного арбитража, приведенного в таблице 15. На каждом уровне наиболее высокимприоритетом обладают нулевые линии, опрашиваемые первыми, анаиболее низким – четвертые, опрашиваемые последними. Наличиевторичного арбитража устраняет конТаблица 15фликтные ситуации, возникающие приодновременном появлении запросовИсточникПриоритетпрерывания от нескольких источниковIE00 (высший)одинакового уровня.TF01Например, если внешние прерываIE12ния имеют высший приоритет, как покаTF13зано на рис.
27 (PX0=1 и PX1=1) и они не4 (низший)RI ∨ TIмаскированы (EA=1, EX0=1 и EX1=1), тоодновременном появлении запросов____ при____прерывания на входах INT0 и INT1 первым,____в результате вторичногоарбитража, будет обслужен запрос по входу INT0.Процедура обслуживания низкоуровневого прерывания можетбыть прервана запросом более высокого уровня. Обработка высокоуровневого прерывания не может быть остановлена.39Опрос состояния системы прерываний производится в конце каждого машинного цикла в фазе S5P2, за исключением команд RETI илюбых команд с обращением к регистрам IE и IP. От момента фиксациизапроса на прерывания до обслуживания прерывания требуется от 38до 86 периодов частоты f OSC , в зависимости от фазы поступления запроса и числа машинных циклов команды, во время выполнения которой поступил запрос.При реализации прерывания аппаратным способом выполняетсякоманда LCALL addr16, обеспечивающая запоминание в стеке текущегосостояния программного счетчика (запоминание адреса возврата), ипереход к стартовому адресу addr16 соответствующей процедурыобслуживания.
С каждым источником запроса прерываний связан свойстартовый адрес (вектор прерывания):____EXTI0IE00003hВнешнее прерывание INT0.TIMER0TF0000BhПрерывание таймера/счетчикаТС0.____EXTI1IE10013hВнешнее прерывание INT1.TIMER0TF1001BhПрерывание таймера/счетчика ТС1.SINTПрерывание последовательного порта.RI ∨ TI 0023h2.7. Методы адресации и система команд семейства MCS-51Система команд семейства MCS-51 ориентирована на организацию гибкого ввода-вывода данных через универсальные порты P0...P3и первичную обработку информации. Особое внимание уделено операциям с битами и передаче управления по их значению.
Команды, выполняющие такие операции, составляют многочисленную группу и образуют вместе с соответствующими аппаратными средствами так называемый «булев процессор» в составе архитектуры MCS-51.Система команд предоставляет программисту возможность использовать большинство операций с полным набором методов адресации и программно-доступных ресурсов аппаратуры.2.7.1.