Code - Codewandler

Was ist ein Code?

Ein Code ist eine eindeutige Zuordnung zwischen zwei Mengen. Der BCD-Code ist z.B. eine Zuordnung zwischen Dezimal- und Binärzahlen. Jeder Dezimalzahl entspricht dabei eine Binärzahl.

Es gibt viele verschiedene Codes, die für bestimmte Anwendungen mehr oder weniger gut geeignet sind. Beispielsweise EAN-Code auf jeder Verpackung oder der amerikanische Standard Code ASCII.

Zunächst wollen wir uns mit einem für den Elektroniker sehr wichtigen Code - dem BCD-Code beschäftigen.

Beim BCD-Code werden die ersten 10 Kombinationen (also von 0 bis 9) aus dem Dualcode übernommen. Die Kombinationen A...F sind die sogenannten Pseudotetraden (unechte Tetraden). 
Jede Dezimalziffer wird durch 4 binäre Stellen (Tetraden) dargestellt.

  • MSB: Most Significant Bit

  • LSB: Least Significant Bit

BCD-CODE (Binary Coded Decimals)

 

Addition BCD-Code

 

Stibitz-Code / 3-Exzeß-Code

Beim 3-Exzeß-Code oder Stibitz-Code ist der gültige Zahlenbereich 0...9 um 3 Tetraden verschoben.
Die Pseudotetraden verteilen sich also auf 3 am Anfang und 3 am Ende der 16 möglichen Kombinationen.

Der 3-Exzeß-Code hat den Vorteil, dass die Zahl 0 nicht durch 0000 sondern durch 0011 dargestellt wird.
Damit kann bei einer Datenübertragung eine Leitungsunterbrechung erkannt werden.

 

Korrekturvorschriften

  1. Entsteht bei der Addition von 2 Tetraden kein Übertrag in die 5. Stelle, so muß vom Ergebnis die Zahl 3(0011) subtrahiert werden.

  2. Entsteht bei der Addition von 2 Tetraden ein Übertrag in die 5. Stelle, so muß zum Ergebnis die Zahl 3 (0011) addiert werden.

 

Rechenbeispiele

 

Codewandler

Ein Codewandler wandelt einen Eingangscode in einen Ausgangscode um. 

Wir erstellen einen Codewandler, der den 3-Exzeß-Code in den BCD-Code umwandelt.

 

Wahrheitstabelle

Lageplan vom 3-Exzeß-Code mittels KV-Diagramm (X = don't care, also egal welcher Zustand)

Schaltfunktion für A des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von A 1 ist.

Variable A hat eine "1" bei 1,3,5,7,9 und eine "0" bei 0,2,4,6,8 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: ABCD = A'3-Exzeß

Schaltfunktion für B des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von B 1 ist.

Variable B hat eine "1" bei 2,3,6,7 und eine "0" bei 0,1,4,5,8,9 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: BBCD = A' B * A B'

Schaltfunktion für C des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von C 1 ist.

Variable C hat eine "1" bei 4,5,6,7 und eine "0" bei 0,1,2,3,8,9 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: CBCD = B' C' * A' C' * ABC

Schaltfunktion für D des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von D 1 ist.

Wir ersparen uns an dieser Stelle ein neues KV-Diagramm.

Wir erhalten für D die Gleichung: DBCD = ABD * CD

 

Zusammenfassung der Ausgänge:

 

A = A'

B = A' B * A B'

C = B' C' * A' C' * ABC

D = ABD * CD

Die Schaltung

AVR-Mikrocontroller Programmierung in C

ne555.at

avr-programmierung.com

Heimo & Patrick Gaicher