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

После отклика микроконтроллера на данное прерывание необходимо повторным чтением порта В снять внутренний сигнал, вызвавший установку бита RBIF. При этом в обоих D-защелках окажется одинаковое значение. И только затем можно будет сбросить флаг RBIF. Если этого не сделать, то сразу же после сброса флаг прерывания снова установится.

Приведем пример использования клавиатуры для вывода микроконтроллера из «спящего» режима (предполагается, что бит GIE сброшен, т. е. прерывания в программе не используются):

movf PORTB,w; Считываем порт В, чтобы сбросить защелки

bcf INTCON,RBIF; Сбрасываем флаг прерывания по изменению порта

bsf INTCON,RBIE; Разрешаем генерацию прерывания

sleep; Переходим в «спящий» режим

; ссс-п-и-и-и-и-м…

call DELAY; После «пробуждения» ждем некоторое время

movwf PORTB,w; перед сбросом защелок

bcf INTCON,RBIF; Сбрасываем флаг прерывания

bcf INTCON,RBIE; Запрещаем генерацию прерывания

В большинстве микроконтроллеров PIC имеется относительно мало линий портов ввода/вывода (см. Табл. 11.1). Даже в развитых моделях (например, PIC16F877), имеющих в общей сложности 33 линии ввода/вывода, этих ресурсов может в ряде случаев оказаться недостаточно, особенно если часть выводов будет задействована встроенными периферийными устройствами.

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

Исходя из условий задачи, нам потребуется 72 линии ввода/вывода (64 входа и 8 выходов). Вместо того чтобы устанавливать в каждой зоне по микроконтроллеру, каждый из которых отсылал бы информацию центральному контроллеру[147], было принято решение расширить возможности ввода/вывода одного-единственного микроконтроллера PIC16F627.

Один из возможных вариантов решения этой задачи изображен на Рис. 11.12. В данном случае порт В используется для реализации внешней шины данных, подключенной к восьми микросхемам параллельных регистров (буферов) с тремя состояниями (по одной для каждой зоны) и одному регистру индикации. Датчики каждой из зон подключаются к локальной шине через эти 8-битные буферы с тремя состояниями. Разрешение одного из восьми буферов осуществляется с использованием дешифратора 3 на 8, подключенного к порту А. К примеру, если RA[2:0] = b’111’ и RA3 = 0, то будет разрешен буферный регистр 7-й зоны, в результате чего с выводов порта В можно будет считать состояния восьми датчиков этой зоны.

Рис. 11.12. Многозонная система охранной сигнализации

Для управления лампочками бит RA3 необходимо установить в 1, а порт В сконфигурировать как выход. После этого содержимое порта можно будет занести в регистр, выставив на вывод RA0 напряжение НИЗКОГО, а затем ВЫСОКОГО уровня, формируя тем самым нарастающий фронт.

Количество выходных портов в этой системе можно увеличить до восьми, добавив в схему второй декодер 3 на 8, посредством которого будет осуществляться выбор требуемого порта при RA3 = 1. Правда, один или два дополнительных выходных порта можно добавить еще проще, подключив тактовые входы новых регистров к линиям RA1 и RA2. Один из этих портов, к примеру, может использоваться для индикации активного датчика раздела, а для управления звуковым излучателем, включающимся при обнаружении вторжения в любую из зон, можно использовать вывод RA4.

Чтобы продемонстрировать управление такой схемой, рассмотрим подпро грамму, код которой приведен в Программе 11.5. Эта подпрограмма считывает со стояние N-й зоны и, если возвращаемое значение отлично от нуля, включает N-ю лампу (N — число от 0 до 7, загружаемое перед вызовом подпрограммы в регистр ZONE). Предполагается, что на выходе сработавшего датчика формируется лог. 1 а индикаторная лампа загорается при лог. 0.

Программа 11.5. Управление системой охранной сигнализации

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

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

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

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

Сид Катцен

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

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

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

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

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

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