Serwis Edukacyjny
Nauczycieli

w I-LO w Tarnowie
obrazek

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2026 mgr Jerzy Wałaszek

Bity w elektronice

4-bitowy demultiplekser

SPIS TREŚCI
Podrozdziały

Opis

Demultiplekser jest elementem cyfrowym, który przesyła dane z wejścia na jedno z wyjść, którego numer określa stan wejść adresowych. Pełni on zatem rolę przeciwną do multipleksera, który utworzyliśmy w poprzednim projekcie. Teraz stworzymy prosty demultiplekser, który będzie posiadał jedno wejście danych G, cztery wyjścia Y0, Y1, Y2, Y3 oraz dwa wejścia adresowe A i B.

obrazek

 


do podrozdziału  do strony 

Określenie funkcji logicznych

Dla każdego wyjścia możemy bezpośrednio napisać funkcję logiczną, która będzie iloczynem adresu i wejścia danych:

Funkcje przekształcamy w funkcje NAND, aby zastosować bramki standardowe.

B A G Y0 Y1 Y2 Y3
X X 0 0 0 0 0
0 0 1 1 0 0 0
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 1

do podrozdziału  do strony 

Budowa sieci logicznej

Budowę sieci rozpoczynamy tradycyjnie od sygnałów wejściowych. Będą nam potrzebne sygnały adresowe A, B wraz z ich zaprzeczeniami AB oraz sygnał G.

Teraz realizujemy kolejne funkcje wyjść:





Sieć jest gotowa.


do podrozdziału  do strony 

Symulacja sieci w języku C++

Numerujemy bramki:

Określamy sieć połączeń:

YB1 = NOT(B)
YB2 = NOT(A)
YB3 = NAND(YB2,YB1,G)
YB4 = NAND(A,YB1,G)
YB5 = NAND(YB2,B,G)
YB6 = NAND(A,B,G)
YB7 = NOT(YB3)
YB8 = NOT(YB4)
YB9 = NOT(YB5)
YB10 = NOT(YB6)
Y0 = YB7
Y1 = YB8
Y2 = YB9
Y3 = YB10

Na wejścia sieci będziemy podawać sygnały zgodne z poniższą tabelką:

G B A Y0 Y1 Y2 Y3
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
C++
// Symulacja sieci logicznej
// demultipleksera 4-bitowego
// (C)2020 mgr Jerzy Wałaszek
// I LO w Tarnowie

#include <iostream>

using namespace std;

// Funkcje bramek

int NOT(int a)
{
  return !a;
}

int NAND(int a, int b, int c)
{
  return !(a && b && c);
}

int main()
{
  // Stany wejściowe oraz stany wyjściowe
  int G,A,B,Y0,Y1,Y2,Y3;

  // Stany wyjściowe bramek
  int YB1, YB2, YB3, YB4, YB5, YB6, YB7, YB8, YB9, YB10;

  int i;

  // W pętli generujemy stany wejściowe
  cout << " G  B  A | Y0 Y1 Y2 Y3" << endl;
  for(i = 0; i < 8; i++)
  {
    // Wydzielamy stany wejściowe
    G = (i & 0x4) > 0;
    B = (i & 0x2) > 0;
    A = i & 0x1;

    // Symulujemy sieć
    YB1 = NOT(B);
    YB2 = NOT(A);
    YB3 = NAND(YB2,YB1,G);
    YB4 = NAND(A,YB1,G);
    YB5 = NAND(YB2,B,G);
    YB6 = NAND(A,B,G);
    YB7 = NOT(YB3);
    YB8 = NOT(YB4);
    YB9 = NOT(YB5);
    YB10 = NOT(YB6);
    Y0 = YB7;
    Y1 = YB8;
    Y2 = YB9;
    Y3 = YB10;

    // Wyniki
    cout << " " << G << " "
         << " " << B << " "
         << " " << A << " | "
         << " " << Y0 << " "
         << " " << Y1 << " "
         << " " << Y2 << " "
         << " " << Y3 << " " << endl;
  }
  cout << endl;
  return 0;
}
Wynik:
 G  B  A | Y0 Y1 Y2 Y3
 0  0  0 |  0  0  0  0
 0  0  1 |  0  0  0  0
 0  1  0 |  0  0  0  0
 0  1  1 |  0  0  0  0
 1  0  0 |  1  0  0  0
 1  0  1 |  0  1  0  0
 1  1  0 |  0  0  1  0
 1  1  1 |  0  0  0  1

do podrozdziału  do strony 

Symulacja interaktywna

Symulator

do podrozdziału  do strony 

Spis elementów

Obciążenia wnoszone przez poszczególne wejścia:

A - 3, B - 3, G - 4.

SN7404 × 1
obrazek
SN7410 × 2
obrazek

Scalone demultipleksery

obrazek

Przemysł elektroniczny produkuje demultipleksery
w postaci pojedynczych układów scalonych średniej
skali integracji - MSI. Służą one do konstruowania
różnego rodzaju koderów.
Typowy scalony demultiplekser posiada jedno lub
dwa wejścia danych G  (jeśli dwa, to wewnętrznie
podłączone są do bramki NOR - umożliwia to
worzenie układów złożonych z kilku
demultiplekserów)
, określoną liczbę wyjść
danych Yn (n = 16, 8, 4 lub 2) i wejścia adresowe,

Linie adresowe wybierają jedno z wyjść danych Yi
o numerze i odpowiadającym adresowi. Stan
wejścia G przenoszony jest na zaadresowane
wyjście Yi. Jeśli wyjście nie jest zaadresowane,
to znajduje się w stanie wysokim 1.

Po lewej stronie przedstawiamy typowy symbol
demultipleksera, stosowany na schematach
układów cyfrowych. Poniżej prezentujemy dwa
popularne układy scalone, zawierające różne
demultipleksery.

SN74154
szesnastowyjściowy demultiplekser

obrazek

Układ SN74154 posiada dwa wejścia danych G1G2 (jedno z nich można traktować jako wejście strobujące - stan wysoki na nim blokuje wyjścia demultipleksera). Zwróć uwagę, iż wejścia te pracują w logice ujemnej - świadczy o tym kółeczko na symbolu demultipleksera. Oznacza to, iż sygnał wejściowy jest negowany, a stanem aktywnym wejścia jest stan niski 0. Aby na wybranym wyjściu demultipleksera otrzymać stan niski, oba wejścia G1G2 muszą również znajdować się w stanie niskim. Wejścia adresowe D, C, B i A służą do wyboru jednego z 16 wyjść Y0 ... Y15. Wyjścia są również zanegowane, jednakże z powodu zanegowania wejść, stan wyjścia wybranego adresem odpowiada sygnałowi wejściowemu na G1G2. Poniżej umieściliśmy tabelkę stanów demultipleksera SN74154.

Wejścia Wyjścia
G1 G2 D C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 X X X X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 X X X X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 X X X X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

obrazek

Zwróć uwagę, iż jeżeli wejścia G1G2
ustawimy w stan niski 0, to układ SN74154
może pełnić funkcję konwertera kodu 8421
na kod 1 z 16. Słowo kodu 8421 podajemy
w takim przypadku na wejścia adresowe
D, C, B i A, a na wyjściach Y0...Y15
otrzymujemy zanegowane słowo w kodzie
1 z 16. Obok przedstawiamy schemat ideowy
transkodera 8421 na kod 1 z 16.  Inwertory
na wyjściach są konieczne do otrzymania
kodu w logice dodatniej.

Tego typu układy stosuje się np. do
sekwencyjnego sterowania różnych urządzeń
cyfrowych.

SN74155
dwa demultipleksery z dwóch linii na cztery linie

obrazek

Układ scalony SN74155 zawiera dwa demultipleksery z dwóch linii na cztery linie. Dzielą one wspólne wejścia adresowe B i A - nie można zatem adresować niezależnie wyjść demultiplekserów - pracują one zawsze w parze. Pierwszy demultiplekser posiada zanegowane wejście danych, co powoduje jego odmienne działanie.

Każdy z demultiplekserów zawiera jedno wejście danych C, jedno wejście strobowania G, dwa wspólne wejścia adresowe B i A, które wybierają aktywne wyjście oraz cztery wyjścia Y0 ... Y3. Poniżej umieściliśmy tabelki stanów dla obu demultiplekserów.

Wejścia Wyjścia
B A 1G 1C 1Y0 1Y1 1Y2 1Y3
0 0 0 1 0 1 1 1
0 1 0 1 1 0 1 1
1 0 0 1 1 1 0 1
1 1 0 1 1 1 1 0
X X 1 X 1 1 1 1
X X X 0 1 1 1 1
Wejścia Wyjścia
B A 2G 2C 2Y0 2Y1 2Y2 2Y3
0 0 0 0 0 1 1 1
0 1 0 0 1 0 1 1
1 0 0 0 1 1 0 1
1 1 0 0 1 1 1 0
X X 1 X 1 1 1 1
X X X 1 1 1 1 1

do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.