Bity w elektronice
Konwerter kodu Aikena na kod BCD


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

W poprzednim rozdziale zaprojektowaliśmy sieć logiczną. która przekształcała kod BCD na kod Aikena. Teraz zaprojektujemy sieć realizującą zadanie odwrotne - przekształcanie kodu Aikena na kod BCD. Na początek, jak zwykle, określimy sygnały wejściowe i wyjściowe naszego transkodera:

 

 

Na wejścia abcd transkodera podajemy słowo kodu Aikena. Na wyjściach ABCD otrzymujemy odpowiednik w kodzie BCD. Na podstawie poniższej tabelki zamian wyrazów kodowych określimy funkcje logiczne dla poszczególnych wyjść A, B, C i D:

 

Cyfra Aiken BCD
d c b a D C B A
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 0
3 0 0 1 1 0 0 1 1
4 0 1 0 0 0 1 0 0
5 1 0 1 1 0 1 0 1
6 1 1 0 0 0 1 1 0
7 1 1 0 1 0 1 1 1
8 1 1 1 0 1 0 0 0
9 1 1 1 1 1 0 0 1

Sygnał D

Obszar D
00 01 11 10
00 0 0 0 0
01 0 X X X
11 0 0 1 1
10 X X 0 X
D = cb

 

Sygnał C

Obszar C1
00 01 11 10
00 0 0 0 0
01 1 X X X
11 1 1 0 0
10 X X 1 X
C1 = cb
Obszar C2
00 01 11 10
00 0 0 0 0
01 1 X X X
11 1 1 0 0
10 X X 1 X
C2 = dc

 

Sygnał B

Obszar B1
00 01 11 10
00 0 0 1 1
01 0 X X X
11 1 1 0 0
10 X X 0 X
B1 = db
Obszar B2
00 01 11 10
00 0 0 1 1
01 0 X X X
11 1 1 0 0
10 X X 0 X
B2 = db

 

Sygnał A

Obszar A
00 01 11 10
00 0 1 1 0
01 0 X X X
11 0 1 1 0
10 X X 1 X
A = a

 

Podsumujmy otrzymane wyniki:

 

 

Testowy program w języku C++

Przed realizacją sieci z bramek logicznych tworzymy prosty program symulacyjny, w którym sprawdzimy otrzymane funkcje logiczne.

 

// Symulacja sieci konwertera kodu Aikena na kod BCD
// (C)2007 mgr Jerzy Wałaszek
// I LO w Tarnowie

#include <iostream>

using namespace std;

int main()
{
  bool we[4],wy[4];
  int i,j,m;
    
  cout << "CYFRA  AIKEN     BCD\n"
          "------d-c-b-a--D-C-B-A\n";
  for(i = 0; i < 10; i++)
  {

// obliczamy kod Aikena kolejnej cyfry

    for(m = 8, j = 3; m; j--, m >>= 1) we[j] = (i + ((i > 4) ? 6 : 0) & m) > 0 ;

// kod Aikena -> kod BCD

    wy[0] = we[0];    
    wy[1] = !(!(we[3] && !we[1]) && !(!we[3] && we[1]));
    wy[2] = !(!(we[2] && !we[1]) && !(we[3] && !we[2]));
    wy[3] = !(!(we[2] && we[1]));

// prezentujemy wyniki

    cout << "  " << i << "   ";
    for(j = 3; j >= 0; j--) cout << we[j] << " ";
    cout << " ";
    for(j = 3; j >= 0; j--) cout << wy[j] << " ";
    cout << endl;
  }

  cout << endl;
  return 0;
}
CYFRA  AIKEN     BCD
------d-c-b-a--D-C-B-A
  0   0 0 0 0  0 0 0 0
  1   0 0 0 1  0 0 0 1
  2   0 0 1 0  0 0 1 0
  3   0 0 1 1  0 0 1 1
  4   0 1 0 0  0 1 0 0
  5   1 0 1 1  0 1 0 1
  6   1 1 0 0  0 1 1 0
  7   1 1 0 1  0 1 1 1
  8   1 1 1 0  1 0 0 0
  9   1 1 1 1  1 0 0 1
Cyfra Aiken BCD
d c b a D C B A
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 0
3 0 0 1 1 0 0 1 1
4 0 1 0 0 0 1 0 0
5 1 0 1 1 0 1 0 1
6 1 1 0 0 0 1 1 0
7 1 1 0 1 0 1 1 1
8 1 1 1 0 1 0 0 0
9 1 1 1 1 1 0 0 1

 

Symulacja sieci logicznej

Wyniki z programu są zgodne z tabelą konwersji kodów, zatem funkcje możemy zrealizować w postaci sieci logicznej.

 

Zestawienie elementów

Obciążenia wnoszone przez poszczególne wejścia: a - 0,  b - 3, c - 3,  d - 3,

 

SN7400 x 2

SN7404 x 1

  



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.