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

Чтобы понять, как это можно сделать, нам придется забежать немного вперед и рассмотреть команды манипуляций с битами, приведенные в Табл. 5.2 на стр. 131. Во всех микроконтроллерах требуется иметь возможность управления состоянием отдельных битов регистра как для задания опций в РСН, так и для «дрыгания» ножками портов ввода/вывода. В микроконтроллерах PIC для этих целей используются следующие команды[74].

∙ bcf

Команда сброса бита регистра данных (Bit Clear File) позволяет программисту сбросить любой бит в любом регистре. К примеру, команда bcf h’20’,7 сбрасывает 7-й бит регистра h’20’. Состояние остальных битов регистра при этом не изменяется.

∙ bsf

Команда установки бита регистра (Bit Set File) позволяет программисту установить любой бит в любом регистре. К примеру, команда bsf h131’,3 устанавливает 3-й бит регистра h’31’. Состояние остальных битов не изменяется.

Возвращаясь к нашему примеру, теперь мы можем написать:

bsf 3,5; Установка 5-го бита (RP0) регистра STATUS позволяет обращаться к 1-му банку памяти

movlw b100001111’; Загружаем константу h’0F’ в W

movwf h’86’; и копируем его в регистр с адресом h’86’

bcf 3,5; Сбрасываем RP0 для возврата к 0-му банку

На самом деле использование 1-го банка в микроконтроллере PIC16F84 сведено к минимуму. Все 68 РОН отображены на оба банка памяти, т. е. по адресу h’n’ и по адресу h’n+80’ расположен один и тот же регистр. Например, если программисту необходимо прочитать содержимое регистра h’20’, не имеет значения, какой из банков при этом используется процессором, поскольку в регистре h’A0’ находятся те же самые данные, а не просто их копия! Такое встречается достаточно редко, поскольку микроконтроллеры PIC с памятью данных большего объема «разбрасывают» свои уникальные РОН (и РСН) по всем имеющимся банкам памяти. Тем не менее в более новых моделях, таких как PIC16F628, имеется небольшая группа (обычно 16) РОН, отображенных на все банки памяти. Такое решение позволяет максимально быстро сохранять и восстанавливать критические данные независимо от того, с каким из банков процессор работает в данный момент времени (см. стр. 218).

Большинство наиболее часто используемых РСН также отображаются на все банки памяти. Типичным примером может служить регистр STATUS, который одновременно расположен и по адресу h’03’, и по адресу h’83’. Это сделано из-за того, что к флагам и битам регистра STATUS приходится обращаться очень часто, и постоянное переключение банков было бы неэффективным. В самом деле, когда в коде, приведенном выше, мы сбрасываем бит RP0 для перехода от 1-го банка к 0-му, мы предполагаем, что регистр STATUS присутствует в обоих банках. В противном случае мы никогда бы не смогли переключить бит RP0 и сменить банк памяти.

Большинство РСН микроконтроллера PIC16F84 встречаются во всех представителях семейств среднего уровня, более того, они, как правило, и размещаются по тем же самым адресам. Так, регистр STATUS расположен по адресам h’03’/h’83’.

Формально мы не будем в этой главе рассматривать никакие РСН, за исключением регистра STATUS и регистров, имеющих отношение к счетчику команд. Однако будет удобнее, если все эти регистры будут кратко описаны в одном месте. Поэтому мы просто перечислим их здесь, а подробно об их назначении поговорим в соответствующих главах книги.

Косвенная адресация

При непосредственной адресации адрес операнда содержится в коде команды. В микроконтроллерах среднего уровня для этого зарезервировано 7-битное поле, показанное на Рис. 3.5 (стр. 68). В сфере встраиваемых устройств, когда коды команд хранятся в ПЗУ какого-либо типа, такие адреса являются фиксированными и, соответственно, не могут модифицироваться.

Альтернативным способом, используемым в том или ином виде всеми вычислительными устройствами, является хранение адреса операнда в каком-либо регистре. В случае PIC этот адрес содержится в регистре FSR (File Select Register), располагающемся по адресу h’04’ памяти данных. Для переключения в режим косвенной адресации внутренняя логика отслеживает обращение по нулевому адресу памяти данных. Когда в команде указывается этот нулевой адрес, на шину адреса памяти данных выставляется содержимое регистра FSR, как показано на Рис. 5.6 (стр. 124).

При косвенной адресации местоположение операндов является не константой в памяти программ, а переменной в регистре FSR. То есть положение операнда может изменяться в процессе выполнения программы. В качестве примера можно взглянуть на Программу 5.2, приведенную на стр. 125.

К режиму косвенной адресации имеют отношение следующие регистры:

∙ INDF (h’00’)

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

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

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

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

Сид Катцен

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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