Замечание
Вы можете легко подключить почти любой 4-разрядный двоичный счетчик так, чтобы он сбрасывался после 2,4 или 8 входящих импульсов.
Количество состояний выхода счетчика, прежде чем он начнет повторный счет, называется
Изменение коэффициента пересчета
Как это связано с нашим устройством генерации значений электронных игральных костей? Перехожу к нему. Поскольку кубик имеет шесть сторон, мне кажется, что нам необходимо подключить счетчик так, чтобы он повторял счет после шести состояний.
В двоичном коде последовательность значений на выходе будет выглядеть следующим образом: 000, 001, 010, 011, 100, 101. Мы можем проигнорировать старший бит, в столбце D, поскольку при шести состояниях он нам не нужен. Необходимо, чтобы счетчик сбрасывался после значения 5 в десятичной системе, которое соответствует числу 101 в двоичной.
Почему 5, а не 6? Потому что мы начинаем считать с 0. Для наших целей было бы удобнее, если бы счетчик начинал работать с 1, но он так не делает.
Какое следующее выходное значение после двоичного числа 101? Ответ – 110 в двоичной системе.
Есть ли что-то характерное для числа 110? Если вы изучите последовательность, то увидите, что число 110 является первым в ряду чисел, которые начинаются с двух единиц.
Как мы можем сказать счетчику: «Когда в столбце В появится 1 и в столбце С также будет 1, необходимо сброситься до 0000?» Слово «и» здесь должно дать вам подсказку. Логический элемент И выдает высокий уровень на выходе, тогда и только тогда, когда на двух его входах высокие уровни. Именно это нам и нужно.
Можем ли мы воспользоваться этим прямо сейчас? Разумеется, поскольку все микросхемы серии 74НСхх можно легко комбинировать друг с другом. На рис. 4.140 вы видите, что я добавил элемент И. Конечно, на макетной плате вам придется добавить соответствующую микросхему – 74НС08. Она содержит четыре элемента И, из которых нам нужен только один. Поэтому, помимо подвода питания, необходимо заземлить неиспользуемые входы. Это непросто, но я покажу вам, как это сделать, после того как мы реализуем несколько дополнений и улучшений. (Неиспользуемые выходы должны остаться без подключения.)
Замечание
Изменить коэффициент пересчета счетчика можно с помощью логической микросхемы (или логической комбинации микросхем), отыскав характерную конфигурацию выходных состояний и направив сигнал обратно на вывод сброса.
Рис. 4.140. Добавлен элемент И для настройки счетчика таким образом, чтобы его цикл счета состоял лишь из шести состояний вместо обычных шестнадцати
Отказ от семисегментного дисплея
Для отображения значений игральных костей я мог бы использовать семисегментный дисплей, который считает от 1 до 6. Но здесь есть проблема, поскольку счетчик считает от 0 до 5. Я не знаю простого способа преобразовать двоичное число 000 в семисегментную цифру 1, число 001 – в цифру 2, и т. д.
Можем ли мы как-то заставить счетчик пропускать двоичное значение 000? Возможно, но я не знаю в точности, как. Наверное, применив трехвходовый элемент ИЛИ, который мог бы подавать сигнал обратно на тактовый вход для перевода счетчика на следующее значение, но тогда возник бы конфликт с обычными тактовыми сигналами. Все это выглядит как нагромождение сложностей.
В любом случае, меня не воодушевляет отображение цифр на семисегментном индикаторе в данном устройстве, поскольку это не похоже на реальный кубик. Почему бы не использовать обычные светодиоды, которые выглядят как точки на настоящем игральном кубике (рис. 4.141)?
Рис. 4.141. Последовательность расположения точек, которую предстоит воспроизвести с помощью светодиодов
Можете ли вы придумать способ преобразования двоичного выходного сигнала счетчика, чтобы светодиоды горели таким образом?
Логическая схема
Я начну с самого простого случая. Если соединить выход А счетчика (см. рис. 4.134) со светодиодом, который соответствует центральной точке в игральном кубике, то все будет работать хорошо, поскольку центральная точка зажигается только для комбинаций 1,3 и 5 и не горит для 2, 4 и 6. Именно так ведет себя выход А.
Далее все немного усложняется. Мне нужно зажечь диагональную пару точек для конфигураций 4, 5 и 6, а также другую диагональную пару для конфигураций 2, 3, 4, 5 и 6. Но как?