Привет! В прошлой статье с разбором всякого неожиданно вновь обретенного имущества я рассказал про крутой дешифратор К155ИД3. Но раз есть дешифратор - должен и шифратор быть! И с ними двумя можно не утруждать себя запоминанием соответствий между двоичной и десятичной системой, а просто подавать на вход шифратора нужное количество импульсов.
Одной из микросхем такого назначения является К561ИЕ16 - 14-разрядный двоичный счётчик-делитель (КМОП) - как раз то, что нужно было, когда я делил на 2! Но не совсем то, что нужно для динамической индикации - далее более подробно почему именно.
Немного теории.
Функция 14-разрядный асинхронный двоичный счётчик/делитель
Напряжение питания (Vdd) -0.5В ... +18В (абсолютный макс.)
Рекомендуемое Vdd 3В ... 15В
Рассеиваемая мощность (Pd) 300 мВт
Полярность сигналов CLK-Q1 (тактовый вход → выход Q1)
Температура (T,C) -10°C до +70°C
Корпус DIP-16
Электрические характеристики
При Vdd = 5В
Vil (Вход LOW) 1.5В - Уровень логического "0"
Vih (Вход HIGH) 3.5В - Уровень логического "1"
Потребляемый ток (Icc) <20мкА - Статическое потребление
Задержка tPHL типовое 65 - 110нс - HIGH→LOW задержка
Задержка tPLH типовое 65-130нс - LOW→HIGH задержка
При Vdd = 10В
Vil (Вход LOW) 3В
Vih (Вход HIGH) 7В
Потребляемый ток (Icc) <40мкА Задержка tPHL типовое 35-45нс Задержка tPLH типовое35-55нс
При Vdd = 15В
Vil (Вход LOW) 4В
Vih (Вход HIGH) 11В
Потребляемый ток (Icc) <80мкА Задержка tPHL типовое 25-33нс
Задержка tPLH типовое 25-37нс
Прямой аналог - микросхема CD4020
Назначение выводов:
· CLK (10) — Тактовый вход (спад импульса)
· RESET (11) — Сброс (HIGH = сброс в 0)
· Q0-Q13 — Выходы счётчика (Q0 — младший бит, Q13 — старший)
· Vdd (16) — Питание (+3...+15В)
· GND (8) — Земля.
Пример использования
На этой микросхеме можно собрать устройство для визуализации принципов подсчета. При подаче питания конденсатор C1 разряжен и через него с плюса питания подается кратковременный импульс для старта при сбросе. Далее тот же вход Reset подтягивается к "Земле" через резистор R6 и находится в устойчивом состоянии.
Резистор R3 нужен для формирования необходимых для переключения фронтов на входе тактирования.
К выходам подключены светодиоды. В этих самых выходах и кроется самая главная проблема, которая не позволит просто так использовать делитель как источник сигналов правильной последовательности для бегущей строки.
Не хватает самой малости. Деления на 2 и на 4. Они пропущены, возможно для того, чтобы уместить в корпусе с 16 выводами коэффициент 8192/1. А это нормальные 4 импульса в секунду для стандартного часового кварца(32 768 Гц, если у кого-то другие стандартные стандарты).
Как будет работать вот это вот всё. (такт - младшие биты от старшего к младшему. 4 штуки.)
0 - LLLL
1 - LLLH
2 - LLLL
3 - LLLH
4 - LLLL
5 - LLLH
6 - LLLL
7 - LLLH
8 - LLHL
9 - LLHH
....
28 - LHHL
29 - LHHH
30 - LHHL
31 - LHHH
32 - HLLL
33 - HLLH
....
А как нужно для прямого управления сдвиговым регистром?(такт - младшие биты от старшего к младшему. 4 штуки.)
0 - LLLL
1 - LLLH
2 - LLHL
3 - LLHH
4 - LHLL
5 - LHLH
6 - LHHL
7 - LHHH
8 - HLLL
9 - HLLH
10 - HLHL
11 - HLHH
12 - HHLL
13 - HHLH
14 - HHHL
15 - HHHH
Разница очевидна и она удручает. Но ничего! Потом сделаем что-то полезное и из этого!
Сначала спаяю эту схему и проверю работает ли микросхема.
Догадайтесь, сколько раз пришлось нажать на кнопку для состояния с последнего фото. Младший бит сверху.
Светодиодики поставил красные в этот раз. Мои сверхъяркие синенькие - слишком современное изобретение для объекта изысканий.
На счет полезного.
Из этой микросхемы можно сделать или часы, добавив тактовый генератор на основе часового кварца. Добавить кучу шестеренок и радоваться процессу сборки. Или можно сделать реле времени. Так же, добавив генератор с известным временем такта, и отслеживать логическим "И" все выходы, которые нам нужны в состоянии логической единицы.
Всё это будет отличной идеей для устройства на нескольких микросхемах, но для этого нужно добраться до того самого "И", например до отличной микросхемы К155ЛА3. Их есть у меня!
Чтобы эта статья была хоть сколько-то полезной, а не просто ностальгической вот написал:
Скрипт на пайтон для вычисления сочетаний уровней на выводах.
while True:
try:
inp = input("Такт (или q): ")
if inp.lower() == 'q':
break
num = int(inp)
# Маска для 14 битов
num_masked = num & 0x3FFF # 0x3FFF = 16383
print(f"\nТакт {num} -> по модулю 16384: {num_masked}")
bits = [(num_masked >> i) & 1 for i in range(14)]
for i in range(13, -1, -1):
print(f"Q{i}: {'H' if bits[i] else 'L'}", end=" " if i>0 else "\n")
print()
except ValueError:
print("Число или q")
ДЗЕН не любит форматирование кода, а Python очень любит. Чтобы что-то работало - вот скриншот для повторения. Выложу так же данный скрипт в чат канала в телеграм.
Вывод:
Такт (или q): 8000
Такт 8000 -> по модулю 16384: 8000
Q13: L Q12: H Q11: H Q10: H Q9: H Q8: H Q7: L Q6: H Q5: L Q4: L Q3: L Q2: L Q1: L Q0: L
Такт (или q): 8001
Такт 8001 -> по модулю 16384: 8001
Q13: L Q12: H Q11: H Q10: H Q9: H Q8: H Q7: L Q6: H Q5: L Q4: L Q3: L Q2: L Q1: L Q0: H
16384 - это до скольки считает микросхема. БОльшие числа перезапускают делитель и считаются с начала.
На этом пока что всё. Как всегда буду рад конструктивным комментариям и, если кому интересна какая-то конкретная микросхема из списка в предыдущей статье - можно посмотреть на нее следующей. На этот раз решил обойтись без таблиц, а то ДЗЕН уж очень их плохо отображает. Всем спасибо за просмотр!
До свидания!