Для счетчика CD4060 ситуация еще хуже, поскольку здесь можно использовать только 10 выходов. В результате необходимо применять каскадное соединение микросхем. Модель CD4040 отлично подходит для решения этой задачи.
Последний выход первого счетчика (Q12, если начинать отсчет от Q1), соединен с тактовым входом второго счетчика (рис. 2.19).
Входы обнуления (Reset) соединяются и управляются общим сигналом сброса. Составленный таким образом счетчик будет иметь 24 выхода, но использоваться будут только 15 первых.
Аналогичный подход возможен также при работе с ППЗУ большего объема. При необходимости ничто не помешает вслед за вторым счетчиком поставить и третий. Такой вариант схемы можно применять для последовательного поиска данных (например, при синтезировании звуковых сигналов или при создании сообщения на алфавитно-цифровом индикаторе). В этом случае управление устройством лучше доверить микроконтроллеру, хотя при желании можно разработать управляющую схему на дискретных логических элементах.
Обнуление счетчиков
Установка сложной логической схемы в исходное состояние часто требует обнуления одного или нескольких счетчиков, которые могут быть построены на триггерах различных типов. Выполнение этой операции должно быть тщательно продумано, так как от нее в значительной степени зависит функционирование всей системы.
Лучше создать устройство обнуления, общее для всех узлов, а не отдельные независимые модули. Это возможно, только если уровни сигнала обнуления согласованы. Как правило, обнуление всех счетчиков осуществляется сигналом логической единицы и происходит автоматически при подаче напряжения питания (рис. 2.20).
Микроконтроллеры обычно имеют инвертированный сигнал обнуления, поэтому их не удается включить в общую схему. В этом случае лучше дать микроконтроллеру возможность автоматически устанавливать в исходное состояние все остальные компоненты устройства.
Сочетание счетчика с линейным индикатором
Лицевые панели современных приборов часто содержат светящиеся шкалы, отображающие какую-либо аналоговую величину или настройку приемника. Такой тип индикации, которая называется «линейной», формируется с помощью нескольких светодиодов, расположенных в ряд. Выпускаются готовые шкалы, состоящие из восьми или десяти светодиодов, собранных в корпусе DIP16 или DIP20.
Можно также построить линейный индикатор собственными силами, используя круглые или прямоугольные светодиоды разных цветов или одного цвета. Однако управлять таким индикатором не очень просто. Для этого необходимо располагать двоичными сигналами, число которых равно числу светодиодов. Если прибор содержит несколько однотипных модулей, разработка его схемы заметно усложняется. Более простое решение — использовать один или несколько двоичных счетчиков (рис. 2.21).
Счетчик заставляют считать вперед, воздействуя на его тактовый вход до тех пор, пока на выходах не появится требуемый результат. При подаче сигнала сброса все выходы счетчика переходят в нулевое состояние. После первого тактового импульса выход младшего разряда переходит в состояние логической единицы. Следующий период устанавливает это состояние на втором выходе, а первый разряд обнуляется. Третий период переводит в состояние логической единицы оба первых выхода и т. д. Если каждый из выходов соединить со светодиодами, такой двоичный счет будет отображаться индикатором.
По этому принципу можно построить линейный индикатор точечного типа (в каждый момент горит один светодиод) или типа светящейся шкалы. Управлять счетчиком для получения требуемой индикации должен микроконтроллер. Сложность этой задачи заключается в том, что счетчик невозможно сразу вернуть назад. Например, если горит третий светодиод, а необходимо зажечь второй, сначала надо погасить оба (через вход Reset), а затем отправить нужное число тактовых импульсов. Чтобы промежуточные этапы счета не были видны на индикаторе, следует увеличить скорость операций, особенно при зажигании последних светодиодов. Действительно, зажигание последнего диода из ряда, содержащего 10 штук, требует отправления 512 импульсов, а зажигание одновременно всех десяти — 1023 импульсов. Такая процедура не требует сложных вычислений для определения числа импульсов, соответствующего заданному состоянию индикатора.