Zoran Mijanovic, Nedjeljko Lekic
EDN
В статье мы рассмотрим один из вариантов увеличения количества цифровых выходов микроконтроллера. Особенностью данного метода является использование только одной линии ввода/вывода микроконтроллера и микросхемы 8-разрядного регистра сдвига и хранения со стробирующим входом, что позволяет добиться точного контроля выходных линий.
Выходы микросхемы регистра сдвига могут использоваться для управления светодиодами, реле и другими устройствами, иными словами они могут использоваться как (дополнительные) цифровые выходы общего назначения.
Существуют регистры сдвига, которые имеют только входы данных (DATA) и тактирования (CLOCK), например, 74HC164, и регистры сдвига, которые дополнительно имеют вход стробирования (STROBE), например, 74HC4094 или 74HC595. Недостатком регистров сдвига без входа стробирования является отсутствие «защелки», другими словами, при заполнении регистра сдвига данными они тут же появляются на выходе. Связано это с тем, что регистр сдвига подключен напрямую к выходным линиям микросхемы. Такой тип регистров сдвига может применяться для управления светодиодами или другими подобными устройствами, где кратковременные переходные состояния не будут иметь значения. Например, человеческий глаз не может заметить вспышку светодиода длительностью менее 10 мс. Микросхемы регистров сдвига с входом стробирования содержат два регистра.
![]() |
|
Рисунок 1. | Логическая схема регистра сдвига с входом стробирования (74HC4094). |
Первый это регистр сдвига, второй – регистр хранения. Регистр хранения удерживает данные, пока новые данные загружаются в регистр сдвига. После того как новые данные (8 бит) будут загружены в регистр сдвига, подается импульс на вход STROBE для одновременной передачи новых данных в регистр хранения. Таким образом, на выходных линиях микросхемы отсутствуют переходные состояния. Такая возможность позволяет применять этот регистр сдвига для управления устройствами, чувствительными к кратковременным переходным процессам, например симисторами, ультра яркими светодиодами и пр.
Существуют различные методы управления регистром сдвига с использованием лишь нескольких линий ввода/вывода микроконтроллера. Некоторые из них публиковались на сайте РадиоЛоцман и страницах журнала РадиоЛоцман.
Чтобы пояснить метод управления регистром сдвига с входом стробирования, используя лишь одну линию ввода/вывода микроконтроллера, мы рассмотрим схемы на Рисунках 2 – 4. На Рисунке 2 изображена схема управления регистром сдвига с использованиме трех сигналов: DATA (данные), CLOCK (тактовый сигнал) и STROBE (стробирование).
![]() |
|
Рисунок 2. | Типовая схема управления микросхемами регистров сдвига с использованием трех сигналов: DATA, CLOCK и STROBE. |
Если на вход управления стробированием микросхемы подать +5 В (лог. 1), то в этом случае мы получим регистр сдвига без функции управления стробированием. Подобное решение, в котором одна выходная линия микроконтроллера используется для управления входом данных и тактирования регистра сдвига, мы уже рассматривали – «Одна линия ввода/вывода микроконтроллера для управления 16 светодиодами» (Рисунок 3).
![]() |
|
Рисунок 3. | Один порт микроконтроллера управляет входом данных и тактирования микросхемы регистра сдвига. Вход стробирования в данном случае неактивен, подключен к 5 В (лог. 1). |
Однако, если мы хотим использовать вход управления стробированием (с целью избавиться от появления кратковременных переходных состояний на выходе регистра сдвига), то кажется, что нам потребуется два порта микроконтроллера для управления входами CLOCK и STROBE. Также возможно применение схемы ждущего мультивибратора. Но мы предлагаем вам самое простое решение: вход стробирования регистра сдвига управляется RCD цепью (Рисунок 4).
![]() |
|
Рисунок 4. | Для управления регистром сдвига с входом стробирования потребуется один порт микроконтроллера и RCD цепь. |
RCD цепь образована дискретными элементами: резистором Rn=220 кОм, конденсатором Cn=47 пФ и диодом Dn. RCD цепь предназначена для управления входом стробирования регистра сдвига: сигнал STROBE быстро падает до нуля, но нарастание до уровня лог. 1 идет с постоянной времени Rn×Cn=10.34 мкс.