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

Управление восемью лампами более мудреное. Для этой операции порт В необходимо сконфигурировать как выход. Включение требуемых ламп осуществляется копированием соответствующей маски в порт В, установкой RA3 в состояние ВЫСОКОГО уровня для отключения дешифратора буферов зон и последующего формирования импульса на линии RA0. В Программе 11.5 эти операции выполняет подпрограмма LAMP_OUT. При отсутствии проникновения, т. е. когда выходы всех датчиков зоны сброшены в 0, байт маски, управляющий свечением ламп, равен h’FF’ (все лампы выключены).

При обнаружении проникновения необходимо включить N-ю лампу. Для этого двоичный код зоны, хранящийся в переменной ZONE, необходимо преобразовать в соответствующий унарный (один из n) код. Так, число Ь’00000010’ (2-я зона) преобразуется в число Ь’11111011’, число b’00000011’ (3-я зона) преобразуется в число Ь’11110111’ и т. д.

В программе унарный код формируется в переменной TEMP, которой первоначально присваивается значение b’11111111’. Сбрасывая флаг переноса перед входом в цикл Z_LOOP, но устанавливая его в теле цикла, можно выполнить сдвиг сброшенного бита влево с помощью команды rlf TEMP,f. В результате содержимое регистра будет изменяться следующим образом: Ь’11111111’ <- Ь’11111110’ <- Ь’11111101’ <-…<- b’01111111’. В процессе сдвига переменная ZONE (приведенная к диапазону 1…8, так что выполняется, по крайней мере, один сдвиг) декрементируется, а выход из цикла производится, когда она становится равной нулю. Таким образом, позиция единственного нулевого бита (начальное значение С = 0) соответствует исходному номеру зоны. Этот унарный код затем выдается в порт в секции LAMP_OUT.

Примеры

Пример 11.1

Для управления обмоткой возбуждения небольшого шагового двигателя используется биполярный n-р-n транзистор 2N3055. Принимая во внимание минимальный коэффициент усиления этого транзистора в диапазоне температур —40…+85 °C, было принято решение, что ток базы должен быть не менее 10 мА. Транзистор подключен к линии ввода/вывода микроконтроллера, причем полагается, что падение напряжения на переходе база-эмиттер не превышает 0.7 В при VDD = 5 В. Какое максимальное сопротивление может иметь базовый резистор RB и чему в самом худшем случае будет равен максимальный ток базы при таком резисторе?

Решение

Для таких величин токов можно предположить, что напряжение на выводе будет меньше 5 В. В документации приводится минимальная величина выходного напряжения при IOH = -3 мА, которая равна 4.3 В (на 0.7 В ниже напряжения питания), но для больших значений токов нам придется воспользоваться графиками.

На Рис. 11.13 приведены графики зависимости выходного тока IOH от напряжения ВЫСОКОГО уровня VOH при граничных значениях температуры (-40 °C и +80 °C).

Напряжение VOH зависит от сопротивления базового резистора в соответствии с уравнением VOH = 0.7 + IOH х RB.Прямая линия, выражающая это соотношение (называемая нагрузочной линией), проведена на рисунке через точку (0,0.7) и точку, соответствующую минимальному напряжению при токе —10 мА. Эта точка является единственной, удовлетворяющей обоим соотношениям ток-напряжение.

Рис. 11.13. Зависимость выходного напряжения ВЫСОКОГО уровня оттока

Крутизна нагрузочной линии ΔVI представляет собой сопротивление в кОм (так как ток выражается в мА) и получается равной 280 Ом. Обратите внимание, что напряжение ВЫСОКОГО уровня при таком токе снижается до 4 В (-10,4.0).

Продолжив линию, мы можем определить максимальный ток как координату X точки пересечения линии с верхней кривой. Этот ток равен примерно 11.5 мА, что не слишком отличается от предыдущего значения. Если бы нам требовалось получить бóльший ток, то вы бы увидели, что его величина очень сильно зависит от температуры. Например, чтобы получить минимальный базовый ток, равный 20 мА, нам потребуется резистор сопротивлением около 120 Ом (учитывая, что напряжение базы равно 0.8 В). Максимальный базовый ток в этом случае будет равен уже 28 мА.

Пример 11.2

Микроконтроллер PIC среднего уровня используется в качестве цифрового компаратора, который сравнивает 8-битное значение Р, считываемое с выводов порта, с байтом, хранящимся в регистре TRIP. Компаратор формирует три сигнала — «меньше, чем», «равно» и «больше, чем» и должен иметь гистерезис ±1 бит. То есть если в результате сравнения будет получено Р < TRIP, то уровень переключения для сигнала «равно» увеличится до значения TRIP + 1. Аналогично, при обратном соотношении уровень переключения для сигнала «равно» становится равным TRIP — 1.

Значение Р считывается из порта В, все линии которого сконфигурированы как входы, а для вывода результатов сравнения используются три младших вывода порта А — RA2 («меньше»), RA1 («равно») и RA0 («больше») с ВЫСОКИМ активным уровнем.

Решение

Напишем алгоритм, удовлетворяющий заданию:

1. Вычесть Р из LEVEL.

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

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

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

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

Сид Катцен

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

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

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

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

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

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