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

Когда процессор исполняет команду sleep, он сбрасывает бит  в регистре STATUS (см. Рис. 4.6 на стр. 95) и выключает внутренний тактовый генератор. Если сторожевой таймер (см. стр. 453) включен, то при выполнении этой команды он вместе со своим предделителем сбрасывается, но продолжает работать, поскольку имеет собственный внутренний генератор. При этом устанавливается флаг , индицирующий отсутствие тайм-аута. Содержимое всех регистров, включая различные установки портов, остается неизменным.

Для пробуждения микроконтроллера по прерыванию флаг этого прерывания должен быть сброшен, а соответствующий бит маски прерывания — установлен, чтобы разрешить запрос прерывания от этого источника. Если флаг общего разрешения прерываний GIE (см. Рис. 7.3 на стр. 213) установлен, то после выполнения команды, следующей за командой sleep, процессор перейдет к процедуре обработки прерывания, как и при обычном отклике на запрос прерывания. Однако если бит GIE сброшен, запрещая реакцию на прерывания, то процессор не будет передавать управление в обработчик прерывания, а просто выполнит команду, следующую за sleep, и продолжит работу в обычном режиме. Обратите внимание, что в этом случае программист должен будет после выхода из спящего режима сбросить соответствующий флаг прерывания.

Если при сброшенном бите GIE разрешенное прерывание произойдет до выполнения команды sleep (на что указывает установленный флаг прерывания), то команда sleep будет выполнена как команда nop (нет операции). При этом бит  сброшен не будет, так что программа сможет, при необходимости, определить, действительно ли микроконтроллер находился в «спящем» режиме после выполнения команды sleep. Программа также может определить ситуацию пробуждения по тайм-ауту сторожевого таймера, контролируя состояние бита ТО регистра STATUS (в этом случае он должен быть сброшен). При использовании в программе сторожевого таймера хорошим тоном считается помещение перед командой sleep команды сброса сторожевого таймера clrwdt. Проверяя состояние флага соответствующего прерывания в регистре INTCON, можно будет определить, вышел ли микроконтроллер в результате прерывания из спящего режима или нет.

Независимо от причины, вызвавшей выход микроконтроллера из «спящего» режима, перед выполнением команды, следующей за sleep, формируется задержка длительностью 1024 такта fOSC. Эта задержка необходима для запуска тактового генератора и установления его сигнала. Данная задержка, показанная на Рис. 10.10, не формируется, если микроконтроллер использует тактовый генератор на -цепочке (см. Рис. 10.5, б и Табл. 10.3).

При выключенном сторожевом таймере ток ждущего режима IРD намного меньше. К примеру, в модели PIC16F87XA-I типичные значения тока IРD равны 1.5 мк (максимальное — 16 мкА) и 10.5 мкА (максимальное — 42 мкА) при выключенном и включенном сторожевом таймере соответственно. Указанные значения справедливы для VDD = 4 В, при этом все линии ввода/вывода микроконтроллера сконфигурированы как входы и подтянуты либо к VSS (как правило), либо к VDD.

Во всех микроконтроллерах PIC имеется встроенный тактовый генератор, который в совокупности с узлами схемы синхронизации формирует внутренние синхросигналы, показанные на Рис. 4.4 (стр. 92). Все модели могут работать в одном из четырех стандартных режимов, перечисленных в Табл. 10.2. В трех из этих режимов в качестве времязадающего элемента используется кварцевый или керамический резонатор, подключаемый между выводами OSC1 и OSC2 микроконтроллера. Для бюджетных приложений, не предъявляющих повышенных требований к стабильности частоты тактового сигнала, можно использовать режим, в котором частота тактового сигнала задается RС-цепочкой.

Таблица 10.2. Режимы работы тактового генератора

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

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

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

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

Сид Катцен

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

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

Электроника для начинающих
Электроника для начинающих

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

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

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