Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 51
Текст из файла (страница 51)
Состояние каждого флага зависит от последней команды, которая могла повлиять на этот флаг. Флаги условий использутотся для проверки одного из шести логических отношений между операндами: равно ( - ), не равно (РА) больше чем (>), меньше чем (<) больше чем или равно (>), меньше чем или равно(ь) Есть две команды для каждого отношения, одна для знаковых, а другая для беззнаковых операндов. Безусловные переходы.
Имеется пять команд безусловного перехода: ХОР и 5!МР— переходы к новому адресу относительно РС; А)МР, 1)МР, Е!МР— переходы по прямому или косвенному адресу. ГЛАВА 3 МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МОЕ"ЕЕ! г61 ХОР (Хо Орегаг!Оп) зто безусловный переход к следующей команде. ЯМР (БЬоге )нтпр) переходит к любой команде на расстояние от — 128 до 127 относительно следующей команды. АКР (АЬЕО!цсе )цтттр) заменяет младшие 11 бит РС и обеспечивает переход в любое место в пределах текущего 2-Кбайт блока памяти. Адрес может быть прямым или косвенным. ЕЯМР (котти ДцГпр) меняет младшие 16 бит РС и обеспечивает переход в любое место в пределах текущего 64 Кбайт региона памяти.
ЕЯМР (Ехсеттт!ес! )цшр) меняят все 24 бита РС и обеспечивает переход в любое место в пределах 16 Мбайт области адресации. Адрес может быть прямым или косвенным. Вызовы и воэвравеи. В архитектуре МСБ-251 реализованы относительные, прямые и косвенные вызовы и возвраты. АСА1.!. (АЬЕО!цге Са!!) засылает младшие 16 разрядов адреса следующей команды в стек, а затем меняет младшие 11 разрядов РС на 11-разрядный адрес, указанный в команде. Вызов передает управление команде с адресом, находящемся в том же 2-Кбайтном блоке памяти, что и адрес следующей команды.
1.САЕ1 (вопя СаП) засылает младшие 16 разрядов адреса следующей команды в стек, а затем меняет младшие 16 разрядов РС на 16-разрядный адрес, указанный в команде. Вызов передает управление команде с адресом, находящемся в том же 64-Кбайтном блоке памяти, что и адрес следующей команды. ЕСАЕЕ (Ехсепе!ет! Са!!) засылает 24 разряда адреса следующей команды в стек, а затем меняет 24 разряда РС на 24-разрядный адрес, указанный в команде. Вызов передает управление команде с адресом, находящемся в лтобом месте памяти. КЕТ (Еегцгп) выдает два верхих байта из стека, чтобы вернуться к команде, следовавшей за вызовом подпрограммы. Адрес возврата должен быть в пределах 64-Кбайтной области. ЕКЕТ (Ехсепг!ее! Еегпгп) выдает три верхих байта из стека, чтобы вернуться к команде, следовавшей за вызовом подпрограммы.
Адрес возврата может быть в лтобом месте памяти. КЕТ1 (Еегпгп 1гош 1псеггцрг) обеспечивает возврат из подпрограммы обслу- живанн прерывания. Работа ЕЕТ! зависит от бита конфигурации 1ХТЕ в регистре СОХЕ!О1: 262 + Если 1ХТК - О, то прерывание приводит к засылке двух младших байтов РС в стек. По команде КЕТ1 эти два байта выдаются из стека и используются как 16-битовый адрес возврата в область РР:. Команда КЕТ1 восстанавливает логику прерываний так, чтобы принять дополнительные прерывания с тем же уровнем приоритета, как только что отработанное.
+ Если 1МТК - 1, то прерывание приводит к загрузке четырех байтов в стек: три байта РС плюс регистр РБЧЧ1. Команда КЕТ1 возвращает эти четыре байта, а затем переходит к указанному 24-разрядному адресу, который может быть в любом месте пространства памяти. КЕТ1 также очищает линию запроса прерывания. Команда ТКАР полезна при разработке средств отладки для систем на ос- нове микроконтроллеров МС5-251.
3.3.10. Регистры состояния В архитектуре МСЯ-251 имеются два регистра состояния: РЯЪУ и РЯЪУ1. Их формат и назначение отдельных флагов следующие: Функция Имя Номер битв бита СУ РБ%К7 АС РБЖ6 РО РЯЖ5 Флаг О, программируется пользователем РЯЧ1 СЧ АС Х К51 КБО ОЧ Е КЯ1 РЯЖ4 КБО РБ'тУ.З ОУ РЯ%.2 $ЛЗ РБ тАГ. 1 Р РЯЖО МИКРОКОНТРОЛЛЕРЫ: АРХИТЕКТУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС СЧ АС РО КБ! КБО ОЧ 1ЛУ Р Флаг переноса Флаг вспомогательного переноса (между тетрадами) Первый бит селектора регистрового банка Нулевой бит селектора регистрового банка Флаг переполнения Флаг, программируется пользователем Флаг четности. Устанавливается/очищается аппаратно каждый цикл инструкции и показывает нечетное/четное число '1' в аккумуляторе ГЛАВА 3 МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-331 263 Имя Номер Функция бита бита СУ РБЪЪГ.7 Флаг переноса.
Идентичен биту регистра РБЪЧ АС РЯЪЪГ.6 Флаг вспомогательного переноса (между тетрадами). Иден- тичен биту регистра РЯЪЧ Х Р5%К5 Флаг отрицательного результата КИ Р5ЪЧ4 Первый бит селектора регистрового банка КЯО РБЪЧ.З Нулевой бит селектора регистрового банка ОЧ РЯЪЧ.2 Флаг переполнения Е Р5ЪЪГ.1 Флаг нулевого результата РБЪЧО Бит зарезервирован. Его про пггапное значение ие имеет смысла.
Не следует записывать в пего «1» Регистры РЯЪЪГ и РЯЪЧ1 являются регистрами лл и чтения-записи, однако па бит четности в РЯЪЧ операции записи ие влияют. Биты в РБЪЧ и РБЪЧ1 используеотся в командах условного перехода. Регистр РБЪЧ микроконтроллеров МСЯ-251 идентичен регистру РБЪЧ микроконтроллеров МС5-51. Регистр РБЪЧ1 имеется только в микроконтроллерах МС5-251.
Биты СУ, АС, КЯО, К51 и ОЧ в РБЪЧ1 идентичны соответствующим битам в РБЪЧ, т.е. к одному и тому же биту можно обратиться в обоих регистрах. Ниже в таблице перечислены команды, влияющие иа значения битов СУ, АС, ОЧ, 1ь1 и Е: 1. Х комнина нозлсйстнуст иа йит 0- команла очигцаст йнм: 2. Флаг АС измсннстсн только нри оосрацинх с 8-разрннными онсранлами. 3. Осли лслитсль раасн нулкь флаг ОАУустаналлинастсн, остальньи бити нс имен>т зоачснин. 4.
При нынолнснии кнманл 8К/., 8Ы. и 8КА оослслний ньнгнигасмый бит заглкитси но флаг СУ, 264 3.4. Система прерываний 3.4.1. Источники прерываний Система прерываний микроконтроллеров 8ХС251ЯВ обслуживает семь аппаратных маскируемых прерываний и одно немаскируемое прерывание от команды ТИАР. К маскируемым относятся: два прерывания по сигналам на внешних входах (1ХТО№ и 1ХТ1№), три прерывания от таймеров (таймеры О, 1 и 2), прерывание от блока РСА и прерывание от последовательного порта.
Каждому маскируемому источнику соответствует флаг запроса, который может устанавливаться программно или аппаратно. Программа может очистить любой флаг прерывания, чтобы снять с очереди ожидагощее прерывание. Флаги некоторых прерываний очищаются аппаратно после подтверждения запроса. Табл. 3.4. Аппаратные прерывания микроконтроллеров ВХС2618В Бит разрешении в росист!м !ЕО 3;АЕН Ст. бит приоритета а регнстре ®3 Втн Мл, бит приорн шта в регистре ®Б:Вйн Аппаратны очнштн флага Адрес Источник Флаг — (уровень) + (фронт) — (уровень) + (фронт) ! (высший) 2 РР:ОООЗН )Рн 0.0 !ЕЮ ЕХ 0 )РЕ 0.0 РР;ОООВН РР:ОО!ЗН )РН ОЛ !РН 0.2 ТРО ЕТ 0 !Р1.О.
! 1Е ! ЕХ ! )Рь 0.2 РР:00 1ВН РР:0023Н РР:002ВН РР:ООЗЗН ТР ! ЕТ ! ПЧ. 0.3 )РН О.З )РН Оя П!+Т! ПЧ.О4 Т) А+ЕХР2 СР, ССРп п = 0..4 Пьн 0.5 1РН 0.6 ЕТ2 )Рь 0.5 (РЕ 0.6 ЕС Прерывание ло команде ТИАР. При выполнении команды ТИАР возникает прерывание, по которому управление передается иа адрес ге:007 ВН. Это прерывание имеет наивысший приоритет и используется в целях отладки. Внешние прерывания. Входы 1ХТО№ и 1ХТ1№ (1ХТх№) можно запрограммировать по отдельности ца срабатывание по уровню сигнала или по фронту.
Выбор определяется значениями битов 1ТО, !Т1 регистра ТСОХ. При 1Тх - 0 активное значение сип!ала 1ХТх№ фиксируется при низком потенциале иа входе, при 1Тх = 1 активное значение сигнала 1ХТх№ фиксируется по отрицательному фронту сигнала иа входе. При смене сигналов иа входах 1ХТх№ устанавливаются флаги запроса 1Ех регистра ТСОХ. Эти биты очищаготся аппаратно при переходе иа подпрограмму прерывания только в том случае, когда запрос фиксировался по фронту сигнала. Если запрос фикси- Внешний сигнал ПЧТОй Таймер 0 Внешний сигнал ПЧТГЕ Таймер ! Последователь- ный порт Таймер 2 Блок РСАО МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ЕВ1 265 ровался по уровню, то подпрограмма прерывания должна сама очистить флаг.
Внешний сигнал прерывания должен быть снят до завершеиия подпрограммы обслуживания и за 4 машинных такта до появления нового запроса. Входы 1ХТх№ опрашиваются через каждые 4 такта. Если вход запрограммирован иа срабатывание по уровню сигнала, то для надежного обнаружения низкий и высокий потенциалы иа входе должны удерживаться ие менее пяти тактов. Если вход запрограммирован иа срабатывание по франту сигнала, то для надежного обнаружения низкий потенциал иа входе должен удерживаться ие менее пяти тактов. Внешние прерывания разрешаются битом общего разрешения ЕА и битами индивидуального разрешения ЕХх регистра 1ЕО. Прерывания Ове ятайлееров.
Два флага прерываний от таймеров (ТРО и ТР1 в регистре ТСОХ) устанавливаются при переполнении таймеров О или 1, соответственно (кроме таймера О в режиме 3). Эти биты очищаются аппаратно при переходе иа подпрограмму обслуживания прерывания. Запрос прерывания от таймера 2 формируется как функция ИЛИ от зиачеиия битов ТР2 и ЕХР2 регистра Т2СОХ.