Управление восемью лампами более мудреное. Для этой операции порт В необходимо сконфигурировать как выход. Включение требуемых ламп осуществляется копированием соответствующей маски в порт В, установкой RA3 в состояние ВЫСОКОГО уровня для отключения дешифратора буферов зон и последующего формирования импульса на линии RA0. В Программе 11.5 эти операции выполняет подпрограмма LAMP_OUT. При отсутствии проникновения, т. е. когда выходы всех датчиков зоны сброшены в 0, байт маски, управляющий свечением ламп, равен h’FF’ (все лампы выключены).
При обнаружении проникновения необходимо включить
В программе унарный код формируется в переменной TEMP, которой первоначально присваивается значение b’11111111’. Сбрасывая флаг переноса перед входом в цикл Z_LOOP, но устанавливая его в теле цикла, можно выполнить сдвиг сброшенного бита влево с помощью команды rlf TEMP,f. В результате содержимое регистра будет изменяться следующим образом: Ь’11111111’ <- Ь’11111110’ <- Ь’11111101’ <-…<- b’01111111’. В процессе сдвига переменная ZONE (приведенная к диапазону 1…8, так что выполняется, по крайней мере, один сдвиг) декрементируется, а выход из цикла производится, когда она становится равной нулю. Таким образом, позиция единственного нулевого бита (начальное значение С = 0) соответствует исходному номеру зоны. Этот унарный код затем выдается в порт в секции LAMP_OUT.
Для управления обмоткой возбуждения небольшого шагового двигателя используется биполярный
Решение
Для таких величин токов можно предположить, что напряжение на выводе будет меньше 5 В. В документации приводится минимальная величина выходного напряжения при IOH = -3 мА, которая равна 4.3 В (на 0.7 В ниже напряжения питания), но для больших значений токов нам придется воспользоваться графиками.
На Рис. 11.13 приведены графики зависимости выходного тока IOH от напряжения ВЫСОКОГО уровня VOH при граничных значениях температуры (-40 °C и +80 °C).
Напряжение VOH зависит от сопротивления базового резистора в соответствии с уравнением VOH = 0.7 + IOH х RB.Прямая линия, выражающая это соотношение (называемая
Рис. 11.13
Крутизна нагрузочной линии ΔV/ΔI представляет собой сопротивление в кОм (так как ток выражается в мА) и получается равной 280 Ом. Обратите внимание, что напряжение ВЫСОКОГО уровня при таком токе снижается до 4 В (-10,4.0).
Продолжив линию, мы можем определить максимальный ток как координату X точки пересечения линии с верхней кривой. Этот ток равен примерно 11.5 мА, что не слишком отличается от предыдущего значения. Если бы нам требовалось получить бóльший ток, то вы бы увидели, что его величина очень сильно зависит от температуры. Например, чтобы получить минимальный базовый ток, равный 20 мА, нам потребуется резистор сопротивлением около 120 Ом (учитывая, что напряжение базы равно 0.8 В). Максимальный базовый ток в этом случае будет равен уже 28 мА.
Микроконтроллер PIC среднего уровня используется в качестве цифрового компаратора, который сравнивает 8-битное значение
Значение
Решение
Напишем алгоритм, удовлетворяющий заданию:
1. Вычесть