Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 35
Текст из файла (страница 35)
Выполняют операции АНП, ОК, «исклсочаюшее ИЛИ», сдвиги содержимого аккумулятора вправо и влево, очистку аккумулятора и перестановку его тетрад. В качестве операндов могут использоваться непосредственные данные и содержимое ячеек внутренней памяти данных. Выполнение некоторых логических команд влияет на значение флага С (перенос) регистра РЯЪК Команды пересылки данных. Осушествляют передачу данных между ячейками внутренней памяти данных (команды МОЧ), внешней памяти данных (команды МОЪ'Х) и аккумулятором. Существусот две команды МОУС, позволяющие читать в аккумулятор содержимое памяти программ. К этой группе относятся парные команды РЬЯН и РОР осушествляюшие загрузку и выгрузку содержимого прямо адресуемой ячейки в стек (из стека).
Имеются четыре команды взаимного обмена информацией между ячейками внутренней памяти данных (ХСН и ХСНО). Команды пересылки данных значения флагов в регистре РЯЮ не изменяют. Команды работы с битами. Эти команды устанавливают в «1» (ЧЕТВ) или «0» (СЕК) прямо адресуемый бит внутренней памяти данных, изменя- 170 МИКРОКОНТРОЛЛЕРМ: АРКИТЕКГУ ПРОГРАММИРОВАНИЕ ИНТЕРФЕЯС ют его значение на противоположное (СРЕ), выполняют операции АХП и ОК над флагом переноса С и прямо адресуемым битом (АХЕ и ОК1.), осуществляют пересылку значения между флагом С и прямо адресуемым битом (МОЪ'), осуществляют передачу управления по состоянию флага С или прямо адресуемого бита ()С, )ХС, )В, )ХВ, )ВС). Команды этой группы, выполняющие логические операции и осуществляющие пересылку значения бита, изменяют значение флага С регистра РЗ тт'.
Остальные команды на флаги не действуют. Команды передача управления. Передача управления может осуществляться безусловно или по условию, без возврата или с возвратом. В последнем случае для возврата необходимо хранить состояние процессора. Система команд МС5-51 кроме обычных «длинных» переходов с использованием 16- разрядного адреса унаследовала от семейства МС5-48 команды передачи управления с «коротким» 11-разрядным адресом. Группа команд передачи управления включает четыре комады безусловного перехода без возврата («ультракороткая» 5)МР «короткая» А1МР «длинная» 1ДМР и переход по значению А+ПРТК в команде )МР), две комады безусловного перехода с возвратом («короткая» АСА1.1. и «длинная» 1.СА1.1), восемь команд условного перехода без возврата.
Имеются две команды возврата: из обычной подпрограммы команда КЕТ и из подпрограммы обработки прерывания команда КЕТ1. Завершает эту группу и всю систему команд ХОР— «нет операции». Команды передачи управления значения флагов в регистре РВЖ не изменяют, кроме команд условного перехода С1ХЕ, влияющих на значение флага С. В главе 3 проведено сравнение системы команд МС5-51 с системой команд семейства МС5-251. В разделе 3.3 и Приложении 7 можно подчерпнуть некоторуто дополнительную информацию по командам МС5-51, которые отмечены в таблицах заливкой. При описании системы команд далее используются следующие обозначения: Кп один из регистров КО..К7 в банке регистров, определенном битами регистра Р5%; Йгест адрес ячейки внутренней памяти данных.
ЕРК1 ячейка внутренней памяти данных, косвенно адресуемая через регистры КО или К1 текущего банка; №дата 8-разрядная константа, включенная в команду; №оата 16 16-разрядная константа, включенная в команду; аддг 16 16-разрядный адрес перехода в командах ЕСА1Л. и 1ДМР; аЫГ 11 11-разрядный адрес перехода в командах АСА1.1. и А)МР; ГЛ Е МИКРОКОИТРОЛЛЕРМС МЕЯС1 МС "Е1 161 171 ге1 8-разрядная константа со знаком (в дополнительном коде). Определяет величину смещения в команде 51МР и всех командах условных переходов; ЬЫ адрес бита во внутренней памяти данных.
Команды следующим образом изменяют значение флагов регистра РБЖ: Таблица команд микроконтроллеров семейства МСБ-51 приведена в Приложении 5. 2.6. Система прерываний Исходная система прерываний в архитектуре МСБ-51 включает пять источников — два внешних и три внутренних. Система развивается, с появлением микроконтроллеров типа 8052 число источников прерываний в архитектуре семейства постоянно увеличивается и достигло в микроконтроллерах типа 8ХС51СР пятнадцати.
Некоторые усовершенствования претерпел механизм приоритетов прерываний. Здесь мы рассмотрим исходную систему прерываний, а все отличия будут указаны при описании старших версий микроконтроллеров. Из пяти источников прерываний внешними являются входы 1ХТОФ и 1ХТ1Ф, а внутренними — два счетчика/таймера и последовательный порт.
Активные сигналы на входах 1ХТОФ, 1ХТ1Ф устанавливают флаги 1ЕО, 1Е1 регистра ТСОХ. Таймер 0 и Таймер 1 используют для выработки запросов прерываний флаги переполнения ТГО, ТР1 в регистре управления ТСОХ, а последовательный порт использует для этого два флага — приемника К1 МИКРОКОНТРОЛЛ РЫ: АРХИТЕКТУР ЛРОГРАММИ И ИНТЕРФЕЙС 172 и передатчика Т1 в регистре управления БСОХ. Каждый из флагов последовательного порта может вызвать прерывание, а конкретный источник определяет процедура обслуживания посредством опроса.
Реакция на любой запрос, разрешенный к обслуживанию, заключается в передаче управления от текущей программы специальной процедуре обслуживания прерывания данного типа. Осуществляется эта передача посредством команды 1САЬ1, код которой не выбирается из памяти, а формируется внутри микроконтроллера.
Адрес перехода в архитектуре МС8-51 соответствует вектору прерывания и фиксирован для каждого источника: Векторы системы прерываний Вектор прврывания Источник прерывания Внешнее прерывание 1ХТО 0003Н Таймер/счетчик Т/СО ОООВН Внешнее прерывание 1ХТ1 0013Н Таймер/счетчик Т/С1 001ВН Последовательный порт 0023Н Из таблицы видно, что интервал между адресами составляет всего 8 ячеек памяти программ, поэтому по первым четырем адресам может располагаться либо очень короткая процедура, либо команда)МР перехода на область памяти, где находится более длинная процедура обслуживания. По адресу последовательного порта места больше.
Если по адресам векторов прерываний находятся команды )МР то имеет место так называемая таблица переходов системы прерываний. Когда запрос прерывания принят на обслуживание, выполняется следующая последовательность действий. Текущая команда выполняется до конца. Затем внутренне формируемая команда 1.СА11. сохраняет текущее значение счетчика команд РС (адрес следующей команды) в стеке.
Это позволяет после завершения процедуры обслуживания прерывания вернуться в прерванную программу. Далее эта команда загружает в РС адрес- вектор. Сохранение в стеке других регистров микроконтроллера, кроме РС, осуществляется программистом командами РПБН в начале процедуры обслуживания. В конце процедуры должны стоять соответствующие команды выгрузки РОР Этот процесс отдан на усмотрение разработчика, поскольку от объема сохраняемой информации сильно зависит время реакции на прерывание.
Процедура обслуживания прерывания завершается командой КЕТ1, которая выгружает из стека адрес возврата и помещает его в РС. 17З Гл ми О лле»м ем ал мс "$1 1е! 1Е ЕА — — ЕЗ ЕТ1 ЕХ1 ЕТО ЕХО Ноееар Функция бита Имя бита ЕА 1Е.7 Запрещение запросов от всех источников, имеет место при ЕА-0 — 1Е.6 Зарезервирован 1Е.5 Зарезервирован ЕЗ 1Е.4 Запрещение запроса от последовательного порта, имеет место при ЕЯ - 0 ЕТ1 1Е.З Запрещение запроса от Таймера 1, имеет место при ЕТ1 - 0 ЕХ1 1Е.2 Запрещение запроса по входу 1НТ1№, имеет место прн ЕХ1 - 0 ЕТО 1Е.1 Запрещение запроса от Таймера О, имеет место при ЕТО 0 ЕХО 1Е.О Запрещение запроса по входу 1НТО№, имеет место при ЕХО - 0 При появлении запросов от нескольких источников очередность их обслуживания определяется с помощью механизма приоритетов прерываний.
В архитектуре МСБ-51 имеет место двухступенчатый механизм определения приоритетов. В исходной системе прерываний микроконтроллеров 8051АН приоритеты на первой ступени имеют два уровня: евысокий» и енизкий», и определяются значениями битов регистра 1Р. Р8 РТ1 РХ! РТО РХО Имя бита Номар Функция бита 1Р.7 Зарезервирован 1Р6 Зарезервирован 1Р5 Зарезервирован 1Р4 Определяет приоритет последовательного порта 1Р.З Определяет приоритет Таймера 1 1Р.2 Определяет приоритет входа 1ХТ1№ 1Р1 Определяет приоритет Таймера 0 1РО Определяет приоритет входа 1ХТО№ РЗ РТ1 РХ1 РТО РХО Каждый из источников прерываний может быть разрешен или запрещен с использованием соответствующего бита регистра 1Е.
Кроме того, в этом регистре есть бит общего запрета всех прерываний. микеоконт»опля»ы. я»яитеотвя пизг»ямми ии инте еаас 174 При «1» в определенном разряде регистра 1Р приоритет соответствующего источника прерывания высокий, а при «О» — низкий. При одновременном появлении нескольких запросов одного уровня очередность обслуживания определяется с помошью внутренней процедуры поллинга (последовательного опроса), который производится в порядке фиксированного старшинства источников внутри одного уровня приоритета.
Этот порядок следуюший: Приоритеты прерываний при яоллииге Источник Вход 1ХТО№ Приоритет внутри уровня Высший Таймер О Вход 1ХТ1№ Таймер 1 Последовательный порт Низший Запрос Фиксация прерывания запроса Наиболее быстрый вариянт, когда С2 является последним машинным циклом команды (кроме Квт), а такие команд обрагления к!Е н )р). Рис.2.9. Вызов процедуры обслуживания прерывания На основе двухступенчатого анализа выбирается запрос с наиболее высоким приоритетом из поступивших.
Если какое либо прерывание уже обслуживается, то его процедуру может прервать только прерывание с более высоким приоритетом. Механизм приоритетов прерываний использует два внутренних программно-недоступных флага текущего уровня обслуживания (первой ступени). Прием на обслуживание прерывания устанавливает флаг того уровня приоритета, к которому относится запрос.