Bity w elektronice
4-bitowy multiplekser


Bramki logiczne
Cyfrowe układy scalone TTL i CMOS
Zasilanie układów TTL i CMOS
Zjawisko hazardu w sieciach logicznych
  Projekty
Bramka sterowana OR - AND - EXOR - NAND
Czytnik klawiatury numerycznej
Konwerter kodu 8421 na kod Gray'a
Konwerter kodu Gray'a na kod 8421
8-bitowy generator bitu parzystości
Konwerter kodu BCD na kod Aikena
Konwerter kodu Aikena na kod BCD
Sterowanie wyświetlaczem kostki do gry
Sterowanie wyświetlaczem cyfrowym LED
Konwerter kodu BCD na kod 1 z 10
Sterownik wskaźnika postępu z 10 diod LED
4-bitowy multiplekser
4-bitowy demultiplekser
1-bitowy sumator

Określenie funkcji logicznych

Multiplekser (selektor danych) jest układem cyfrowym posiadającym n wejść danych, jedno wyjście y oraz wejścia adresowe. Na wyjściu y pojawia się stan wejścia danych, którego numer podany został na wejścia adresowe. Przykładowy projekt dotyczy układu z czterema wejściami danych D0, D1, D2, D3, z jednym wyjściem Y oraz dwoma wejściami adresowymi A i B.

 

 

Poniższa tabelka definiuje stan wyjścia w zależności od sygnałów wejściowych.

 

B A D0 D1 D2 D3 Y
0 0 0 X X X 0
0 1 X 0 X X 0
1 0 X X 0 X 0
1 1 X X X 0 0
0 0 1 X X X 1
0 1 X 1 X X 1
1 0 X X 1 X 1
1 1 X X X 1 1

 

Na podstawie tabelki układamy tablice Karnaugha.

 

Obszar Y1
00 01 11 10
 0  0  0  0 0 0 0 0
 0  0  0  1 0 0 1 0
 0  0  1  1 0 0 1 1
 0  0  1  0 0 0 0 1
 0  1  1  0 0 1 0 1
 0  1  1  1 0 1 1 1
 0  1  0  1 0 1 1 0
 0  1  0  0 0 1 0 0
 1  1  0  0 1 1 0 0
 1  1  0  1 1 1 1 0
 1  1  1  1 1 1 1 1
 1  1  1  0 1 1 0 1
 1  0  1  0 1 0 0 1
 1  0  1  1 1 0 1 1
 1  0  0  1 1 0 1 0
 1  0  0  0 1 0 0 0
Obszar Y2
00 01 11 10
 0  0  0  0 0 0 0 0
 0  0  0  1 0 0 1 0
 0  0  1  1 0 0 1 1
 0  0  1  0 0 0 0 1
 0  1  1  0 0 1 0 1
 0  1  1  1 0 1 1 1
 0  1  0  1 0 1 1 0
 0  1  0  0 0 1 0 0
 1  1  0  0 1 1 0 0
 1  1  0  1 1 1 1 0
 1  1  1  1 1 1 1 1
 1  1  1  0 1 1 0 1
 1  0  1  0 1 0 0 1
 1  0  1  1 1 0 1 1
 1  0  0  1 1 0 1 0
 1  0  0  0 1 0 0 0
Obszar Y3
00 01 11 10
 0  0  0  0 0 0 0 0
 0  0  0  1 0 0 1 0
 0  0  1  1 0 0 1 1
 0  0  1  0 0 0 0 1
 0  1  1  0 0 1 0 1
 0  1  1  1 0 1 1 1
 0  1  0  1 0 1 1 0
 0  1  0  0 0 1 0 0
 1  1  0  0 1 1 0 0
 1  1  0  1 1 1 1 0
 1  1  1  1 1 1 1 1
 1  1  1  0 1 1 0 1
 1  0  1  0 1 0 0 1
 1  0  1  1 1 0 1 1
 1  0  0  1 1 0 1 0
 1  0  0  0 1 0 0 0
Obszar Y4
00 01 11 10
 0  0  0  0 0 0 0 0
 0  0  0  1 0 0 1 0
 0  0  1  1 0 0 1 1
 0  0  1  0 0 0 0 1
 0  1  1  0 0 1 0 1
 0  1  1  1 0 1 1 1
 0  1  0  1 0 1 1 0
 0  1  0  0 0 1 0 0
 1  1  0  0 1 1 0 0
 1  1  0  1 1 1 1 0
 1  1  1  1 1 1 1 1
 1  1  1  0 1 1 0 1
 1  0  1  0 1 0 0 1
 1  0  1  1 1 0 1 1
 1  0  0  1 1 0 1 0
 1  0  0  0 1 0 0 0

   

 

Testowy program w języku C++

Wyprowadzoną funkcję testujemy w odpowiednio przygotowanym programie w języku C++.

 

// Test funkcji Y dla 4-bitowego multipleksera
//--------------------------------------------
// (C)2007 mgr Jerzy Wałaszek I-LO w Tarnowie
//--------------------------------------------

#include <iostream>

using namespace std;

int main()
{
  bool D0,D1,D2,D3,A,B,Y;
  int  i,j,gray;

  cout << "D0 D1 D2 D3 | 00 01 11 10 \n"
          "------------+-------------\n";
  for(i = 0; i < 16; i++)
  {

// Wyznaczamy wyraz kodu Gray'a dla danych D0...D3

    gray = i ^ (i >> 1);
    D0 = (gray & 8) > 0;
    D1 = (gray & 4) > 0;
    D2 = (gray & 2) > 0;
    D3 = (gray & 1) > 0;
    
// Wyświetlamy kolejne dane D0...D3

    cout << " " << D0 << "  " << D1 << "  " << D2 << "  " << D3 << " | ";

// Generujemy wartości Y dla kolejnych adresów A i B:
   
    for(j = 0; j < 4; j++)
    {
      gray = j ^ (j >> 1);
      B = (gray & 2) > 0;
      A = (gray & 1) > 0;
      Y = !(!(!A&&!(!(!B&&D0)&&!(B&&D2)))&&!(A&&!(!(!B&&D1)&&!(B&&D3))));
      cout << Y << "  ";  
    }   
    cout << endl;    
  }            
  cout << endl;
  system("PAUSE");
}
D0 D1 D2 D3 | 00 01 11 10
------------+-------------
 0  0  0  0 | 0  0  0  0
 0  0  0  1 | 0  0  1  0
 0  0  1  1 | 0  0  1  1
 0  0  1  0 | 0  0  0  1
 0  1  1  0 | 0  1  0  1
 0  1  1  1 | 0  1  1  1
 0  1  0  1 | 0  1  1  0
 0  1  0  0 | 0  1  0  0
 1  1  0  0 | 1  1  0  0
 1  1  0  1 | 1  1  1  0
 1  1  1  1 | 1  1  1  1
 1  1  1  0 | 1  1  0  1
 1  0  1  0 | 1  0  0  1
 1  0  1  1 | 1  0  1  1
 1  0  0  1 | 1  0  1  0
 1  0  0  0 | 1  0  0  0

 

Otrzymane wyniki zgadzają się z tabelą stanów, zatem wyprowadzona funkcja logiczna wyjścia Y jest poprawna. Możemy przystąpić do budowy sieci logicznej.

Symulacja sieci logicznej

Zestawienie elementów

Obciążenia wnoszone przez poszczególne wejścia: A - 1,  B - 1, D0 - 1,  D1 - 1, D2 - 1, D3 - 1

 

SN7400 x 3

SN7404 x 1

 

Scalone multipleksery

Ponieważ funkcje spełniane przez multipleksery są bardzo popularne w urządzeniach cyfrowych, przemysł elektroniczny produkuje je w postaci pojedynczych układów scalonych średniej skali integracji - MSI.

Typowy scalony multiplekser posiada określoną liczbę wejść danych (16, 8, 4 lub 2), wejścia adresowe, wyjście danych Y, wyjście zanegowane Y i wejście strobujące S.

Linie adresowe wybierają jedno z wejść danych o numerze odpowiadającym adresowi. Stan wybranego wejścia przenoszony jest na wyjście Y (a w postaci zanegowanej na wyjście Y). Wejście strobujące S umożliwia blokowanie multipleksera. Jeśli podamy na nie stan niski (kółeczko na wejściu oznacza, iż stan niski jest stanem aktywnym, czyli włączającym funkcję strobowania), to na wyjściu Y pojawi się stan wejścia, którego numer podano na wejścia adresowe. Przy stanie wysokim na wyjściu mamy zawsze 0 bez względu na stany wejść. Jest to pomocne przy łączeniu multiplekserów do wybierania sygnałów z większej liczby linii wejściowych (np. 32 lub 64).

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

SN74150 - szesnastowejściowy multiplekser

 

Układ SN74150 posiada 16 wejść danych D0...D15, cztery wejścia adresowe A, B, C, D, wejście strobujące S oraz wyjście Y. Adres wybiera jedno z wejść D0...D15. Stan wybranego wejścia pojawia się w postaci zanegowanej na wyjściu Y.

Adres S Y
D C B A
X X X X 1 1
0 0 0 0 0 D0
0 0 0 1 0 D1
0 0 1 0 0 D2
0 0 1 1 0 D3
0 1 0 0 0 D4
0 1 0 1 0 D5
0 1 1 0 0 D6
0 1 1 1 0 D7
1 0 0 0 0 D8
1 0 0 1 0 D9
1 0 1 0 0 D10
1 0 1 1 0 D11
1 1 0 0 0 D12
1 1 0 1 0 D13
1 1 1 0 0 D14
1 1 1 1 0 D15

SN74151 - ośmiowejściowy multiplekser

 

Układ SN74151 posiada 8 wejść danych D0...D7, trzy wejścia adresowe A, B, C, wejście strobujące S oraz dwa komplementarne wyjścia Y i Y. Adres wybiera jedno z wejść D0...D7. Stan wybranego wejścia pojawia się na wyjściu Y oraz w postaci zanegowanej na wyjściu Y.

 

Adres S Y Y
C B A
X X X 1 0 1
0 0 0 0 D0 D0
0 0 1 0 D1 D1
0 1 0 0 D2 D2
0 1 1 0 D3 D3
1 0 0 0 D4 D4
1 0 1 0 D5 D5
1 1 0 0 D6 D6
1 1 1 0 D7 D7

SN74153 - dwa czterowejściowe multipleksery o wspólnym adresowaniu

 

Układ SN74153 zawiera dwa czterowejściowe multipleksery - bardzo podobne w działaniu do multipleksera, który stworzyliśmy w tym projekcie. Multipleksery posiadają wspólne wejścia adresowe - zatem wejścia są wybierane parami. Wewnętrznie wejścia adresowe są buforowane i wnoszą obciążenie 1. Niezależne są natomiast sygnały strobujące.

 

Adres S Y
B A
X X 1 0
0 0 0 D0
0 1 0 D1
1 0 0 D2
1 1 0 D3

SN74157 - cztery dwuwejściowe multipleksery o wspólnym adresowaniu i strobowaniu

 

Układ SN74157 zawiera cztery multipleksery, z których każdy posiada dwa wejścia danych D0, D1, jedno wyjście Y, jedno wspólne wejście adresowe A oraz jedno wspólne wejście strobowania S. Wewnętrznie adres i strobowanie są buforowane i wnoszą obciążenie równe 1.

Adres S Y
A
X 1 0
0 0 D0
1 0 D1

  



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2017 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.