|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
|
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
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.
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 |
Budowę sieci rozpoczynamy tradycyjnie od sygnałów wejściowych. Będą nam potrzebne sygnały adresowe A, B wraz z ich zaprzeczeniami A i B oraz sygnał G.

Teraz realizujemy kolejne funkcje wyjść:








Sieć jest gotowa.
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 |
Obciążenia wnoszone przez poszczególne wejścia:
A - 3, B - 3, G - 4.
|
|
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 Po lewej stronie przedstawiamy typowy symbol |

Układ SN74154 posiada dwa wejścia danych G1 i G2 (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 G1 i G2 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 G1 i G2. 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 |
|
|
Zwróć uwagę, iż jeżeli wejścia
G1 i G2 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 |

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.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.