Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

В первом случае результат может быть помешен либо обратно в память данных, если бит адресата равен 0 (см. Рис. 3.5 на стр. 68), либо в рабочий регистр, если этот бит равен 1, например в случае команд типа addwf h'20',w

Рис. 4.5.Исполнительный блок микроконтроллера PIC16F84

Регистр STATUS

Этот регистр, тесно связанный с АЛУ, содержит три бита-флага, которые используются для информирования программы о результате выполнения команды. В частности, не было ли переноса при выполнении операции сложения.

Флаг переноса

Бит 0 регистра STATUS используется в качестве флага переноса С (от англ. carry — перенос). Основное его назначение — хранение бита переноса предыдущей операции сложения. При операциях вычитания значение этого бита соответствует инвертированному биту заема (см. Пример 4.2). Например, 24–12 = 12В¯1, а 12–24 = 88B¯0. Флаг С также используется в операциях сдвига, как показано на Рис. 5.13 (стр. 148). Пометка «R/W?» на Рис. 4.6 отражает тот факт, что этот бит доступен как для чтения (R), так и для записи (W), а после сброса по питанию его состояние не определено (при любом другом сбросе состояние этого бита не изменяется).

Рис. 4.6.Формат регистра STATUS микроконтроллера PIC16F84

Флаг десятичного переноса

Бит 1 регистра STATUS используется в качестве флага десятичного переноса DC (от англ. digit carry). Этот флаг функционирует точно так же, как и обычный флаг С, только содержит бит переноса из младшего полубайта в старший, т. е. из 3-го бита в 4-й. Аналогично флагу С, флаг DC содержит дополнение бита заема из 3-го бита в 4-й.

Информация о наличии или отсутствии переноса между полубайтами полезна при работе с данными, представленными в двоично-десятичном коде (посмотрите хотя бы на Пример 4.5). При использовании этого кода в каждом полубайте хранится 4-битное представление десятичного числа от 0 до 9 (см. стр. 20), и флаг десятичного переноса указывает на возникновение переноса между десятичными разрядами.

Флаг нуля

Бит 2 регистра STATUS используется в качестве флага нуля Z (от англ. zero — ноль). Этот бит устанавливается, если результат выполнения команды равен нулю, и сбрасывается в противном случае.

В отличие от многих других микроконтроллеров, в микроконтроллерах PIC отсутствуют команды, специально предназначенные для сброса или установки флагов, подобные команде sec, имеющейся в микроконтроллерах семейств 6800/5/11 компании Motorola.

Тем не менее, как видно из Рис. 4.7, к регистру STATUS можно обращаться как к регистру данных с адресом h’03’. Поэтому любая команда, которая изменяет содержимое регистра данных, может в принципе использоваться для изменения состояния флагов. Однако существует определенная проблема, заключающаяся в том, что многие из этих команд сами по себе влияют на состояние одного или нескольких флагов (см., к примеру, Табл. 5.1 на стр. 129) и таким образом переопределяют значение, являющееся результатом выполнения команды. Если мы, к примеру, попробуем сбросить все флаги с помощью команды очистки регистра сlrf 3 (см. Табл. 5.2 на стр. 131), то в результате флаг Z окажется установленным в 1, сообщая о том, что результат операции равен нулю! Для изменения отдельных битов регистра STATUS рекомендуется использовать команды сброса/установки бита регистра данных bcf и bsf (см. Табл. 5.2), поскольку сами по себе эти команды не влияют на состояние флагов. Например, команда bsf 3,0 (установить 0-й бит регистра h’03’) эквивалентна команде sec, а команда bcf 3,2 (сбросить 2-й бит регистра h’03’) сбросит флаг Z.

Назначение более специализированных флагов, размещающихся в 3-м и 4-м битах, будет описано в последующих главах. В общих чертах флаг  (Power Down) сбрасывается при выполнении команды sleep, которая используется для выключения тактового генератора и перевода микроконтроллера в режим ожидания с малым потреблением (< 1 мкА). Флаг  (Time Out) сбрасывается при наступлении тайм-аута сторожевого таймера[70]. Оба этих флага доступны только для чтения — их состояние не может быть изменено программно. После сброса указанные флаги устанавливаются в 1.

Все эти биты называются флагами или, иногда, семафорами, поскольку они сигнализируют о том или ином результате выполнения команды. Бит 5 этого регистра несколько отличается от остальных, так как на его состояние не влияют происходящие события. Наоборот, флаг RP0 используется программистом для изменения состояния процессора. Чтобы проиллюстрировать назначение этого бита-переключателя, нам потребуется более подробно изучить структуру памяти данных микроконтроллера PIC16F84.

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника