|
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
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.