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

• PS2, PS1, PS0 (биты 2, 1 и 0 соответственно) определяют коэффициент деления предделителя (2PS+1) Таймера 0 или постделителя (2PS) сторожевого таймера.

• T0SE (бит 4) позволяет программисту задать фронт импульсов на входе T0CKI, по которому будет осуществляться инкрементирование счетчика:

0 — нарастающий фронт, 1 — спадающий фронт.

T0CS (бит 5) используется для выбора источника тактового сигнала таймера: 0 — системный тактовый сигнал, 1 — импульсы со входа T0CKI.

• Остальные два бита регистра используются для выбора активного фронта внешнего прерывания и конфигурирования входов порта В.

Счетчик команд

Мы уже говорили (см. Рис. 4.2), что микроконтроллеры PIC среднего уровня имеют 13-битный счетчик команд (Program Counter — PC), выполняющий функцию указателя на команды в пределах 8 Кбайт. Сколько именно битов счетчика используется в каждой конкретной модели, зависит от имеющегося объема памяти программ. Так, в микроконтроллере PIC16F84 используется 10 бит (210 = 1 Кбайт), в PIC16F628 — 11 бит (211 = 2 Кбайт), в PIC16F874 — 12 бит (212 = 4 Кбайт), а в PIC16F877 задействованы все 13 бит.

Иногда может потребоваться изменить состояние счетчика команд из программы. Для этого младший байт PC напрямую доступен через регистр специального назначения PCL (Program Counter Low). А для изменения всех 13 бит требуется дополнительный регистр. Регистр-защелка старшего байта PCLATH не является в действительности старшим байтом PC, а служит в качестве буфера. Изменение содержимого регистра PCLATH не влияет на старший байт счетчика команд, однако одновременно с записью в регистр PCL новое значение PCLATH загружается в старший байт 13-битного счетчика команд. Таким образом, как показано на Рис. 4.8, все 13 бит счетчика команд обновляются одновременно. Запомните эту особенность, она потребуется вам при ответе на Вопрос для самопроверки 4.2.

Рис. 4.8.Изменение всех 13 битов счетчика команд при записи в регистр PCL

Для манипулирования счетчиком команд используются следующие регистры:

∙ PCL (h’02’)

Регистр PCL физически является младшим байтом счетчика команд. Этот регистр доступен как для чтения, так и для записи.

∙ PCLATH (h’0A’)

Регистр PCLATH является регистром-защелкой для хранения данных, которые должны быть загружены в старший байт счетчика команд. Загрузка старшего байта происходит при записи в регистр PCL, что обеспечивает одновременное обновление всех 13 бит счетчика.

Не забывайте, что регистр PCLATH используется только в качестве буфера, поэтому значение, считанное из него, не будет соответствовать текущему состоянию старшего байта счетчика команд[75].

Параллельные порты ввода/вывода

Способность одновременно изменять или контролировать состояние нескольких цифровых линий представляет собой воистину универсальную возможность систем на базе микроконтроллеров. В зависимости от типа корпуса микроконтроллеры среднего уровня имеют от 4 до 52 таких линий ввода/вывода. К примеру, в 40-выводном микроконтроллере PIC16F877 имеется в общей сложности 33 линии ввода/вывода.

Микроконтроллер PIC16F84 имеет 13 линий ввода/вывода, разделенных на два порта. ПортА имеет 5 линий ввода/вывода, отображенных на адресное пространство памяти данных по адресу h’05’. Остальные 8 линий относятся к порту В, размещенному по адресу h’06’. Эти порты можно считать своеобразными «окнами» в памяти данных, поскольку значения, записываемые в регистры с адресами h’05’ и h’06’, появляются на выводах микроконтроллера RA4…RA0 и RB7…RB0 соответственно (см. Рис. 10.2 на стр. 304). Однако физически и логически эти порты гораздо сложнее, чем обычные внутренние регистры. Мы еще вернемся к этому вопросу в главе 11, пока же скажем только, что линия порта может быть сконфигурирована как выход (при этом ЦПУ может управлять состоянием соответствующего вывода) или как вход (при этом ЦПУ может считывать состояние данного вывода). Для этого предназначены регистры направления данных TRISA и TRISB (для порта А и В соответственно), расположенные по адресам h’85’ и h’86’. Название TRIS образовано от слова TRIState[76] (см. Рис. 11.3 на стр. 333). Эти регистры находятся в 1-м банке, поскольку они обычно конфигурируются в начале программы и впоследствии не изменяются.

В качестве примера рассмотрим следующую ситуацию. Предположим, что нам необходимо сделать выводы RB[6:0] порта В входами, а вывод RB7 — выходом. Тогда код для конфигурирования порта будет выглядеть следующим образом:

bsf 5,3; Переходим к 1-му банку

movlw h’7F’; Двоичному числу 0111 1111 соответствует:

movwf h ’86’; RB7 — выход, RB6…0 — входы

bcf 5,3; Возвращаемся к 0-му банку

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

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

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

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

Сид Катцен

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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