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

В итоге вариант программы с циклом состоит из 8 команд против 96 в линейном варианте, т. е. размер программы уменьшился в 12 раз. Однако наша новая программа выполняется в 7 раз дольше из-за наличия различных команд, необходимых для организации цикла и выполняющихся 96 раз! Обычно затраты на накладные расходы не так велики, как в данном примере.

* * *

Наличие регистра FSR, хранящего адрес операнда, означает, что у нас теперь есть 8-битный изменяемый адрес для обращения к памяти данных вместо фиксированного 7-битного. В свою очередь, из этого следует, что при работе с памятью данных, имеющей два банка (аналогичной приведенной на Рис. 5.3), к любому регистру можно обратиться откуда угодно. Например, если мы хотим записать число b’01111111 в регистр данных h’86’ (регистр специального назначения TRISB, расположенный в 1-м банке), то вместо кода, приведенного на стр. 105, мы можем написать:

movlw h’86’; Настроим FSR для работы

movwf FSR; с регистром h’86’(TRISB)

movlw b01111111; Маска

movwf 0; Записываем ее в указываемый регистр

При этом нам не придется возиться с битом переключения страниц RP0. Если необходимо часто обращаться к какому-либо из регистров первого банка, то можно записать в FSR адрес этого регистра и больше регистр FSR не трогать. Разумеется, предполагается, что он не требуется для других целей[83].

В моделях с четырьмя банками памяти требуется дополнительный бит для образования 9-битного адреса. Бит IRP регистра STATUS, формат которого показан на Рис. 5.5, позволяет косвенно адресовать банки 0/1 (IRP = 0, состояние по умолчанию) и банки 2/3 (IRP = 1). Например, ранее написанный код для копирования содержимого регистра h’120’ банка 2 (PIC16F627/8) в рабочий регистр W, приведенный на стр. 119, можно переписать следующим образом:

bsf STATUS,7; Установим бит IRP (банки 2/3)

movlw h'120'; Инициализируем указатель в FSR

movwf FSR;

rnovf 0,w; Копируем содержимое регистра, указываемого FSR, в W

bcf STATUS,7; Сбрасываем IRP (банки 0/1)

Поскольку в регистре W могут находиться только 8-битные значения, старший бит адреса при выполнении команды movlw h’120’ будет отброшен, т. е. в регистр W будет записано число h’20’. Роль отсутствующего девятого бита выполняет бит IRP, установленный в 1, поэтому обращение произойдет к регистру h’120’, что и требовалось. Ассемблер, возможно, выдаст предупреждение, что в регистр W записывается слишком большое значение. Это предупреждение можно игнорировать.

Битовая адресация

Четыре команды (на что указывают два бита, помеченные знаками «??») предназначены либо для изменения, либо для проверки состояния отдельных битов в регистре данных. В этом случае в коде команды имеется 3-битное поле NNN, предназначенное для хранения позиции бита (0…7), тогда как адрес регистра кодируется обычным образом. Так, машинный код команды bcf h’20’,7 (сбросить бит 7 в регистре h’20’) выглядит как Ь’0100111010000’. Остальными командами этой группы являются команда bsf (установить бит регистра данных, код 01), btfsc (проверить состояние бита и пропустить следующую команду, если он сброшен, код 10) и btfss (проверить состояние бита и пропустить следующую команду, если он установлен, код 11). Последнюю из перечисленных команд мы уже использовали в Программе 5.2 для проверки 2-го бита регистра h’03’ (т. е. флага Z регистра STATUS) и выходили из цикла, если условие было истинно.

Пока что мы классифицировали команды по способу, которым они определяют местоположение своих операндов. Однако чаще используется деление команд по выполняемым функциям. С этой точки зрения все 33 команды микроконтроллеров PIC с 14-битным ядром можно разбить на 6 групп, четыре из которых будут рассмотрены в этой главе. Команды, относящиеся к подпрограммам и прерываниям, будут описаны в 6-й и 7-й главах, а управляющим командам, связанным с функционированием микроконтроллера, посвящена глава 10.

В таблицах команд, приводимых далее, в левом столбце приводятся мнемонические обозначения команд. Затем указывается влияние данной команды на три флага регистра STATUS, причем символ «» соответствует отсутствию какого-либо изменения, а символ «√» — нормальному воздействию. В последнем столбце приводится краткое описание операций, выполняемых командой. Полностью набор команд приведен в Приложении Г. Если вам потребуется более подробное описание, его можно найти в документации на любой микроконтроллер PIC соответствующего семейства (см. сайт, посвященный оригинальному изданию данной книги). Однако, в связи с тем что микроконтроллеры PIC имеют RISC-архитектуру, команд достаточно мало, и они простые.

Команды пересылки данных
Перейти на страницу:

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

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

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

Сид Катцен

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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