Урок 4. Дешифратор CD4511B

В картинках

После этого урока в библиотеке CD4511B — он превращает двоичный код в цифру на 7-сегментном индикаторе. Счётчик CD4029 считает, CD4511 показывает.


4.1. Идея: семь палочек

Цифра на индикаторе — семь сегментов a–g. Для каждой цифры горит свой набор: 1 — b c, 8 — все семь. Дешифратор — таблица: на входе код D C B A, на выходе семь проводов.

abcdefg00000abcdef10001bc20010abdeg30011abcdg40100bcfg50101acdfg60110cdefg70111abc81000abcdefg91001abcfgкоды 10–15 (1010–1111) — индикатор погашен
Семь сегментов a–g и какие из них горят для каждой цифры. Под цифрой — её код D C B A на входе CD4511 и сегменты на выходе: это и есть таблица дешифратора.

4.2. Идея: защёлка, гашение, проверка

  • LE = 0 — код проходит насквозь; LE = 1 — CD4511 держит последнюю цифру (защёлка на ключах TG);
  • BL = 0 — индикатор погашен;
  • LT = 0 — горят все сегменты: проверка, что ни один не перегорел.

В этом наборе LT, BL — на 1, LE — на 0: просто показываем число.

4.3. Идея: ключ на двух транзисторах

TG — nmos и pmos параллельно. Один хорошо пропускает 0, другой — 1; вместе — любой сигнал. Затворы всегда получают противоположные сигналы: N = 1 и P = 0 — замкнут.

4.4. Сборка

Тот же проект. В библиотеке нужны вентили урока 0, NOR3, NOR4 и CD4029 (урок 3).

Шаг 1. Чип TG — ключ на паре транзисторов

Как на схемах TI: nmos и pmos параллельно между A и B. N = 1 и P = 0 — ключ замкнут, N = 0 и P = 1 — разомкнут. Затворы всегда получают противоположные сигналы.

ДетальНогаМетка
Порт входавыходA
Порт входавыходN
Порт входавыходP
Порт выходавходB
nmosзатвор
сток
исток
N
A
B
pmosзатвор
сток
исток
P
A
B

Ctrl+G → имя TG. Ноги: входы A, N, P; выходы B.

Шаг 2. Чип CD4511 — дешифратор BCD → 7 сегментов с защёлкой

Ноги корпуса по даташиту TI: 1 B, 2 C, 3 LT, 4 BL, 5 LE, 6 D, 7 A, 9 e, 10 d, 11 c, 12 b, 13 a, 14 g, 15 f; 8 — VSS, 16 — VDD. Внутри — Fig. 8 TI: защёлки на TG (LE = 0 — прозрачна, LE = 1 — держит), дешифратор на NOR3/NOR4, гашение BL = 0 (все сегменты погашены), проверка LT = 0 (все горят), на выходе — NOT-драйверы. Коды 10–15 — пусто.

ДетальНогаМетка
Порт входавыходB
Порт входавыходC
Порт входавыходLT
Порт входавыходBL
Порт входавыходLE
Порт входавыходD
Порт входавыходA
Порт выходавходe
Порт выходавходd
Порт выходавходc
Порт выходавходb
Порт выходавходa
Порт выходавходg
Порт выходавходf
NOTI0
O0
A
n1
NOTI0
O0
B
n2
NOTI0
O0
C
n3
NOTI0
O0
D
n4
NOTI0
O0
LE
n5
TGA
N
P
B
n1
n5
n6
n7
TGA
N
P
B
n2
n5
n6
n8
TGA
N
P
B
n3
n5
n6
n9
TGA
N
P
B
n4
n5
n6
n10
NOTI0
O0
n5
n6
TGA
N
P
B
n11
n6
n5
n7
NOTI0
O0
n7
n12
NOTI0
O0
n12
n11
TGA
N
P
B
n13
n6
n5
n8
NOTI0
O0
n8
n14
NOTI0
O0
n14
n13
TGA
N
P
B
n15
n6
n5
n9
NOTI0
O0
n9
n16
NOTI0
O0
n16
n15
TGA
N
P
B
n17
n6
n5
n10
NOTI0
O0
n10
n18
NOTI0
O0
n18
n17
NOR3A
B
C
Y
n11
n13
n15
n19
NORI0
I1
O0
n13
n16
n20
NOR3A
B
C
Y
n15
n13
n12
n21
NOR3A
B
C
Y
n11
n14
n15
n22
NOR3A
B
C
Y
n12
n14
n15
n23
NOR3A
B
C
Y
n12
n13
n16
n24
NOR3A
B
C
Y
n11
n14
n16
n25
NANDI0
I1
O0
n15
n13
n26
NANDI0
I1
O0
n26
n18
n27
NOR4A
B
C
D
Y
n11
n14
n16
n18
n28
NOR4A
B
C
D
Y
n12
n14
n16
n18
n29
NANDI0
I1
O0
BL
n27
n30
NOR4A
B
C
D
Y
n30
n23
n21
n28
n31
NOR3A
B
C
Y
n30
n22
n21
n32
NORI0
I1
O0
n30
n24
n33
NOR4A
B
C
D
Y
n30
n23
n19
n25
n34
NOR3A
B
C
Y
n30
n12
n23
n35
NOR4A
B
C
D
Y
n30
n28
n20
n19
n36
NOR4A
B
C
D
Y
n30
n19
n28
n29
n37
NORI0
I1
O0
n31
n38
n39
NORI0
I1
O0
n32
n38
n40
NORI0
I1
O0
n33
n38
n41
NORI0
I1
O0
n34
n38
n42
NORI0
I1
O0
n35
n38
n43
NORI0
I1
O0
n36
n38
n44
NORI0
I1
O0
n37
n38
n45
NOTI0
O0
LT
n38
NOTI0
O0
n39
a
NOTI0
O0
n40
b
NOTI0
O0
n41
c
NOTI0
O0
n42
d
NOTI0
O0
n43
e
NOTI0
O0
n44
f
NOTI0
O0
n45
g

Ctrl+G → имя CD4511. Ноги: входы B, C, LT, BL, LE, D, A; выходы e, d, c, b, a, g, f.

Шаг 3. Счётчик CD4029, тумблер, генератор, кнопка

Clock — 1Hz. «Сброс» — RST. CD4029 — десятичный (BD = 0); «Сброс» — на PE: пока кнопка нажата, счётчик записывает J = 0000. Свободные входы — на GND.

ДетальНогаМетка
PowerвыходVCC
GroundвыходGND
Input (тумблер)выходUD
ClockвыходCLOCK
Button «Сброс»выходRST
CD4029PE
Q4
J4
J1
CI
Q1
BD
UD
Q2
J2
J3
Q3
CLOCK
RST
U3
GND
GND
GND
U0
GND
UD
U1
GND
GND
U2
CLOCK

Шаг 4. Дешифратор CD4511

ДетальНогаМетка
CD4511B
C
LT
BL
LE
D
A
e
d
c
b
a
g
f
U1
U2
VCC
VCC
GND
U3
U0
Ue
Ud
Uc
Ub
Ua
Ug
Uf

Шаг 5. Индикатор

  1. Поставь Segment LCD (палитра, иконка-табло рядом с точечным дисплеем).
  2. ⚙ → поле Size: 24 × 30 (клик по числу, ввести, Enter).
  3. Правая панель Stamps → размер L 21 → раздел Digits → первая плитка (восьмёрка без точки) → клик в центр поля → Esc.
  4. S (выделение) → клик по верхнему сегменту → Enter (New pin) → имя a → Enter. Так же по часовой: правый верхний b, правый нижний c, нижний d, левый нижний e, левый верхний f, средний g.
  5. Закрой редактор: на корпусе семь ног a–g. Метки на ноги:
ДетальНогаМетка
Segment LCDa
b
c
d
e
f
g
Ua
Ub
Uc
Ud
Ue
Uf
Ug

4.5. Проверка

  1. Clock — 1Hz. Нажми Сброс — на индикаторе 0.
  2. UD = 1: 0, 1, 2 … 9, 0 — цифра меняется на каждом такте.
  3. UD = 0: счёт вниз — 0, 9, 8 …
Тумблер UDИндикаторЧто это
10 → 9 → 0счёт вверх
09 → 0 → 9счёт вниз
Сброс0PE = 1: записан ноль

После проверки удали пробу — TG, CD4511 остаются в библиотеке. Индикатор оставь (без меток): в уроке 6 его копируют.


Вставка урока 4 (Cmd+I)

Нужны вентили урока 0, NOR3, NOR4 и CD4029 (урок 3). Индикатор вставка не ставит — поставь руками (шаг «Индикатор»): сегменты после штампа называются S1…S7, имена a–g даёшь сам.

# Урок 4 — CD4511B: дешифратор BCD → 7 сегментов с защёлкой (Fig. 8 TI); счётчик CD4029 → CD4511 → цифра.# Вставка: Cmd+I в тот же проект (нужны вентили урока 0, NOR3, NOR4 и CD4029 из урока 3). # TG — ключ на паре транзисторов (как на схемах TI): N = 1 и P = 0 — A соединён с B; N = 0 и P = 1 — разомкнутchip TG {  portIn(A)  portIn(N)  portIn(P)  portOut(B)  nmos(N, A, B)  pmos(P, A, B)} # CD4511 — дешифратор BCD → 7 сегментов с защёлкой (Fig. 8 TI). Ноги: 1 B, 2 C, 3 LT, 4 BL, 5 LE, 6 D, 7 A, 9 e, 10 d, 11 c, 12 b, 13 a, 14 g, 15 fchip CD4511 {  portIn(B)  portIn(C)  portIn(LT)  portIn(BL)  portIn(LE)  portIn(D)  portIn(A)  portOut(e)  portOut(d)  portOut(c)  portOut(b)  portOut(a)  portOut(g)  portOut(f)  NOT(A, n1)  NOT(B, n2)  NOT(C, n3)  NOT(D, n4)  NOT(LE, n5)  TG(A=n1, N=n5, P=n6, B=n7)  TG(A=n2, N=n5, P=n6, B=n8)  TG(A=n3, N=n5, P=n6, B=n9)  TG(A=n4, N=n5, P=n6, B=n10)  NOT(n5, n6)  TG(A=n11, N=n6, P=n5, B=n7)  NOT(n7, n12)  NOT(n12, n11)  TG(A=n13, N=n6, P=n5, B=n8)  NOT(n8, n14)  NOT(n14, n13)  TG(A=n15, N=n6, P=n5, B=n9)  NOT(n9, n16)  NOT(n16, n15)  TG(A=n17, N=n6, P=n5, B=n10)  NOT(n10, n18)  NOT(n18, n17)  NOR3(A=n11, B=n13, C=n15, Y=n19)  NOR(n13, n16, n20)  NOR3(A=n15, B=n13, C=n12, Y=n21)  NOR3(A=n11, B=n14, C=n15, Y=n22)  NOR3(A=n12, B=n14, C=n15, Y=n23)  NOR3(A=n12, B=n13, C=n16, Y=n24)  NOR3(A=n11, B=n14, C=n16, Y=n25)  NAND(n15, n13, n26)  NAND(n26, n18, n27)  NOR4(A=n11, B=n14, C=n16, D=n18, Y=n28)  NOR4(A=n12, B=n14, C=n16, D=n18, Y=n29)  NAND(BL, n27, n30)  NOR4(A=n30, B=n23, C=n21, D=n28, Y=n31)  NOR3(A=n30, B=n22, C=n21, Y=n32)  NOR(n30, n24, n33)  NOR4(A=n30, B=n23, C=n19, D=n25, Y=n34)  NOR3(A=n30, B=n12, C=n23, Y=n35)  NOR4(A=n30, B=n28, C=n20, D=n19, Y=n36)  NOR4(A=n30, B=n19, C=n28, D=n29, Y=n37)  NOR(n31, n38, n39)  NOR(n32, n38, n40)  NOR(n33, n38, n41)  NOR(n34, n38, n42)  NOR(n35, n38, n43)  NOR(n36, n38, n44)  NOR(n37, n38, n45)  NOT(LT, n38)  NOT(n39, a)  NOT(n40, b)  NOT(n41, c)  NOT(n42, d)  NOT(n43, e)  NOT(n44, f)  NOT(n45, g)} # ---------- цифра ----------power(VCC)ground(GND)# UD: 1 — вверх, 0 — вниз; «Сброс» — PE: пока нажата, счётчик держит 0input(UD)clock(CLOCK)button{label="Сброс"}(RST)CD4029(PE=RST, Q4=U3, J4=GND, J1=GND, CI=GND, Q1=U0, BD=GND, UD=UD, Q2=U1, J2=GND, J3=GND, Q3=U2, CLOCK=CLOCK)# LT, BL = 1 (не проверка, не гашение), LE = 0 (защёлка прозрачна); a–g — на индикатор (ставится руками)CD4511(B=U1, C=U2, LT=VCC, BL=VCC, LE=GND, D=U3, A=U0, e=Ue, d=Ud, c=Uc, b=Ub, a=Ua, g=Ug, f=Uf)

Не получается? Что-то не работает →