Schaltnetze: Codierer, Decodierer, Codeumsetzer, Digitalkomparator und Addierer

https://bildung.social/@oerinformatik/

https://oer-informatik.de/schaltnetze-decoder

Schaltnetz, Codierer, Decodierer, Codeumsetzer, Prioritätscodierer, Diodenmatrix, BCD-zu-7-Segment-Decoder, Multiplexanzeige, Digitalkomparator, Erweiterungseingänge, Halbaddierer, Volladdierer

tl/dr; (ca. 19 min Lesezeit): Schaltnetze setzen Codes um, vergleichen und addieren Dualzahlen. Dieser Artikel zeigt Schritt für Schritt, wie Du Codierer, Decodierer, Codeumsetzer und Demultiplexer am Schaltzeichen erkennst und ihre Mindestzahl an Ein- und Ausgängen bestimmst, wie Du mit (auch englischen) Funktionstabellen die Pegel an Adress- und Ausgängen festlegst, wie eine Diodenmatrix als Codierer arbeitet, wie ein BCD-zu-7-Segment-Decoder und eine gemultiplexte Anzeige funktionieren, wie Digitalkomparatoren und Addierer rechnen und kaskadiert werden und wie Du Beschaltungsregeln aus Datenblättern ableitest [AI-Assisted]. (Zuletzt geändert am 12.11.2026)

Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.

Als Digitaltechnik-Grundlagen kann ich nach Durcharbeiten des Artikels…

  • … Codierer, Decodierer, Codeumsetzer und Demultiplexer erkennen und ihre Mindestzahl an Ein- und Ausgängen bestimmen.

  • … die Pegel an Adress-, Freigabe- und Ausgängen von Decodern (z. B. 3-aus-8, BCD-zu-Dezimal) mithilfe einer deutschen oder englischen Funktionstabelle bestimmen.

  • … die Funktion einer Diodenmatrix als Codierer erklären und sie für eine vorgegebene Codier- oder Zeichenfunktion beschalten.

  • … die Pegel an einem BCD-zu-7-Segment-Decoder bestimmen.

  • … gemultiplexte 7-Segment- und Matrixanzeigen analysieren (Bitmuster, Zeitablauf, angezeigte Ziffer) und für weitere Stellen erweitern.

  • … Digitalkomparatoren analysieren und ihre Erweiterungseingänge laut Datenblatt beschalten.

  • … Halbaddierer, Volladdierer und mehrstellige Addierer analysieren und kaskadieren.

  • … Beschaltungsregeln für Logikbausteine (Erweiterungseingänge, unbenutzte Eingänge) aus englischen Datenblattbeschreibungen ableiten.

Ein Getränkeautomat erkennt, welche Wahltaste gedrückt wurde, und macht daraus eine Dualzahl. Eine Waage zeigt ihr Gewicht auf vier 7-Segment-Stellen an. Eine Füllanlage prüft, ob der Istwert den Sollwert schon erreicht hat, und ein Zähler addiert die Stückzahlen zweier Bänder. Alle diese Aufgaben lösen Schaltnetze: Verknüpfungsschaltungen ohne Speicher, deren Ausgänge nur von den gerade anliegenden Eingängen abhängen.

Die Übungsaufgaben zu diesem Artikel findest Du unter Übungsaufgaben zu Schaltnetzen. Der Artikel setzt die Grundgatter und Funktionstabellen aus Logische Verknüpfungen und Dualzahlen, BCD und den 7-Segment-Code aus Zahlensysteme und Codes voraus.

Überblick über Schaltnetze an einem Bedienfeld: Ein Codierer macht aus der gedrückten Taste eine Dualzahl, ein Digitalkomparator vergleicht sie mit einem Sollwert, ein Addierer summiert zwei Dualzahlen, ein Codeumsetzer BCD/7SEG steuert eine 7-Segment-Anzeige, ein Decodierer BIN/1-aus-8 schaltet eine von acht Meldeleuchten (mit KI erstellt)

Schritt 1: Schaltnetze und ihre Bausteine im Überblick

Ein Schaltnetz (kombinatorische Schaltung) besteht nur aus Gattern. Für jede Eingangskombination gibt es genau eine Ausgangskombination; die Funktionstabelle beschreibt es vollständig. Ein Schaltwerk enthält dagegen Speicher (Flipflops), seine Ausgänge hängen auch von der Vorgeschichte ab (siehe Flipflops und Zähler, Frequenzteiler und Schieberegister).

Die häufigsten Schaltnetze gibt es als fertige integrierte Bausteine. Sie unterscheiden sich darin, welchen Code sie am Eingang erwarten und welchen sie am Ausgang liefern:

Schaltnetze, die Du als integrierte Bausteine findest
Baustein Eingang Ausgang Kennzeichen im Schaltzeichen (DIN EN 60617-12) Beispiel
Codierer (Encoder) 1-aus-n-Signal (eine von n Leitungen aktiv) Dualzahl bzw. BCD X/Y, genauer z. B. HPRI/BIN, HPRI/BCD Prioritätscodierer 74HC148 (8 → 3), 74HC147 (9 → 4)
Decodierer (Decoder) Dualzahl bzw. BCD 1-aus-n-Signal X/Y, genauer z. B. BIN/OCT, BCD/DEC 3-zu-8-Decoder 74HC138, BCD-zu-Dezimal 74HC42
Codeumsetzer (Code Converter) ein Code mit m Bit anderer Code mit k Bit X/Y, z. B. BCD/7SEG BCD-zu-7-Segment 74HC4511
Demultiplexer ein Datensignal + Adresse Signal auf einem von n Ausgängen DX (US-Norm DMUX) Decoder mit Datensignal am Freigabeeingang
Digitalkomparator zwei Dualzahlen A, B A > B, A = B, A < B COMP 4-Bit-Komparator 74HC85
Addierer zwei Dualzahlen A, B und Übertrag Summe und Übertrag Σ 4-Bit-Volladdierer 74HC283

Streng genommen ist jeder Decodierer und jeder Codierer ein Codeumsetzer; die Norm gibt allen das allgemeine Kennzeichen X/Y. Von Decodierer spricht man, wenn am Ausgang genau eine Leitung aktiv ist, von Codierer, wenn am Eingang genau eine Leitung aktiv ist. Den Multiplexer und den Demultiplexer mit Analogschaltern behandelt der Artikel Analogschalter, Multiplexer und Demultiplexer.

Mindestzahl an Ein- und Ausgängen

Mit n Bit lassen sich 2^n verschiedene Werte darstellen. Daraus folgt die Mindestzahl der Leitungen:

  • Ein Decodierer mit n Adresseingängen kann höchstens 2^n Ausgänge unterscheiden. Für k Ausgänge braucht er mindestens n \geq \log_2 k Adresseingänge (aufgerundet).

  • Ein Codierer mit k Eingängen braucht mindestens n \geq \log_2 k Ausgänge (aufgerundet). Soll auch „keine Taste gedrückt“ einen eigenen Code bekommen, zählt dieser Zustand als zusätzlicher Wert mit.

  • Ein Codeumsetzer braucht so viele Eingänge, wie der Eingangscode Bit hat, und so viele Ausgänge, wie der Ausgangscode Bit hat – unabhängig davon, ob alle Kombinationen genutzt werden.

Mindestzahl an Ein- und Ausgängen typischer Schaltnetze
Baustein Eingänge (ohne Freigabe) Ausgänge Begründung
2-aus-4-Decoder 2 4 2^2 = 4
3-aus-8-Decoder 3 8 2^3 = 8
BCD-zu-Dezimal-Decoder 4 10 BCD hat 4 Bit, Ziffern 0 bis 9
BCD-zu-7-Segment-Decoder 4 7 (8 mit Dezimalpunkt) 4 Bit BCD, Segmente a bis g
Codierer für 12 Tasten 12 4 2^3 = 8 < 12 \leq 16 = 2^4

Ein BCD-zu-Dezimal-Decoder nutzt von den 16 möglichen Eingangskombinationen nur 10. Die sechs Pseudotetraden 1010 bis 1111 kommen in BCD nicht vor; das Datenblatt sagt, was der Baustein dann tut (beim 74HC42: alle Ausgänge inaktiv).

Schritt 2: Decoder – Pegel mit der Funktionstabelle bestimmen

Um einen bestimmten Ausgang eines Decoders zu aktivieren, gehst Du in drei Schritten vor:

  1. Ausgangsnummer in eine Dualzahl umwandeln und das höchstwertige Bit an den Adresseingang mit der größten Wertigkeit legen (A_0 hat die Wertigkeit 1).

  2. Alle Freigabebedingungen erfüllen: low-aktive Freigabeeingänge (Überstrich, Negationskreis) auf 0, high-aktive auf 1.

  3. Polarität des Ausgangs beachten: Bei low-aktiven Ausgängen (\overline{Y_0} …) liegt der gewählte Ausgang auf 0 und alle anderen auf 1.

Funktionstabellen in englischen Datenblättern

Datenblätter sind meist englisch. Die Funktionstabelle heißt dort function table oder truth table, die Spalten sind in inputs und outputs gegliedert. Statt 0 und 1 stehen Pegel:

Zeichen in englischen Funktionstabellen
im Datenblatt Bedeutung
H HIGH-Pegel (logisch 1)
L LOW-Pegel (logisch 0)
X don’t care: beliebiger Pegel, hat keinen Einfluss
↑ / ↓ steigende bzw. fallende Flanke (bei Schaltwerken)
\overline{E}, nE, E̅ low-aktiver Freigabeeingang (enable, active LOW)

Als Beispiel der Doppel-2-aus-4-Decoder 74HC139. Jede Hälfte hat einen low-aktiven Freigabeeingang \overline{E}, die Adresseingänge A_1 (Wertigkeit 2) und A_0 (Wertigkeit 1) und vier low-aktive Ausgänge. So sieht die Tabelle im Datenblatt sinngemäß aus:

Function table des 74HC139 (n = 1 oder 2 für die beiden Hälften; inputs links, outputs rechts)
n\overline{E} nA_1 nA_0 n\overline{Y_0} n\overline{Y_1} n\overline{Y_2} n\overline{Y_3}
H X X H H H H
L L L L H H H
L L H H L H H
L H L H H L H
L H H H H H L

Soll in der zweiten Hälfte 2\overline{Y_2} aktiv werden, gilt 2 = 10_2: 2A_1 = \mathrm{H}, 2A_0 = \mathrm{L} und 2\overline{E} = \mathrm{L}. Dann liegt 2\overline{Y_2} auf L, die drei anderen Ausgänge auf H. Für den 3-zu-8-Decoder 74HC138 mit drei Freigabeeingängen zeigt der Artikel Analogschalter, Multiplexer und Demultiplexer dasselbe Vorgehen.

BCD-zu-Dezimal-Decoder

Der BCD-zu-Dezimal-Decoder 74HC42 hat vier Eingänge A_3 bis A_0 (Wertigkeiten 8, 4, 2, 1) und zehn low-aktive Ausgänge \overline{Y_0} bis \overline{Y_9}, aber keinen Freigabeeingang. Für die Ziffer 6 legst Du 0110 an: A_3 = \mathrm{L}, A_2 = \mathrm{H}, A_1 = \mathrm{H}, A_0 = \mathrm{L}; \overline{Y_6} geht auf L. Bei einer Pseudotetrade (z. B. 1100) bleiben alle zehn Ausgänge auf H. Mit solchen Decodern wählt eine Steuerung eine von zehn Meldeleuchten, ein Relais oder eine Anzeigestelle aus.

Decoder als Demultiplexer: Legst Du statt eines festen Pegels ein Datensignal an den Freigabeeingang, erscheint dieses Signal nur an dem adressierten Ausgang (bei low-aktivem \overline{E} und low-aktiven Ausgängen unverändert, nicht invertiert). Ein Decoder mit Freigabeeingang ist deshalb zugleich ein Demultiplexer.

Schritt 3: Codierer und Diodenmatrix

Codierer und Prioritätscodierer

Ein Codierer macht aus einer aktiven Eingangsleitung eine Dualzahl, z. B. aus der gedrückten Taste eines Tastenfelds. Ein einfacher Codierer setzt voraus, dass immer nur ein Eingang aktiv ist. Werden zwei Tasten gleichzeitig gedrückt, entsteht sonst ein falscher Code (die ODER-Verknüpfung beider Codes).

Ein Prioritätscodierer löst das: Er gibt immer den Code des höchstwertigen aktiven Eingangs aus und ignoriert die anderen. Der 74HC148 hat acht low-aktive Eingänge \overline{I_0} bis \overline{I_7} und drei low-aktive Ausgänge \overline{A_2} bis \overline{A_0}, der 74HC147 neun Eingänge und vier Ausgänge (invertierter BCD-Code). Sind beim 74HC148 \overline{I_2} und \overline{I_5} zugleich auf L, gilt Eingang 5: 5 = 101_2, invertiert \overline{A_2}\,\overline{A_1}\,\overline{A_0} = \mathrm{L\,H\,L}. Zusatzausgänge zeigen, ob überhaupt ein Eingang aktiv ist (group signal \overline{GS}), und erlauben über \overline{EI}/\overline{EO} (enable input/output) das Kaskadieren mehrerer Bausteine.

Die Diodenmatrix als Codierer

Ohne IC lässt sich ein Codierer mit einer Diodenmatrix aufbauen. Dazu kreuzen sich Eingangsleitungen (Zeilen) und Ausgangsleitungen (Spalten). An jedem Kreuzungspunkt, an dem der Ausgang 1 werden soll, sitzt eine Diode; an den anderen Kreuzungen gibt es keine Verbindung.

Im Beispiel wählt eine Programmwahl mit den Tastern -S1 bis -S5 die Programme 1 bis 5 und gibt deren Nummer als 3-Bit-Dualzahl Q_2Q_1Q_0 aus:

Diodenmatrix als Codierer für fünf Taster: Die Taster -S1 bis -S5 legen jeweils eine Zeilenleitung an +5 V; die drei Spaltenleitungen Q2, Q1 und Q0 liegen über die Pull-down-Widerstände -R1 bis -R3 an 0 V; Dioden mit der Anode an der Zeile und der Kathode an der Spalte sitzen bei S1 an Q0, bei S2 an Q1, bei S3 an Q1 und Q0, bei S4 an Q2 und bei S5 an Q2 und Q0 (mit KI erstellt)

So arbeitet die Matrix:

  • Ein gedrückter Taster legt seine Zeile an +5 V. Über jede Diode dieser Zeile fließt Strom in die zugehörige Spalte: Die Spalte liegt auf High (+5 V abzüglich der Durchlassspannung von etwa 0,7 V).

  • Spalten ohne Diode in dieser Zeile zieht ihr Pull-down-Widerstand auf 0 V. Ohne ihn wäre die Spalte offen und ihr Pegel unbestimmt.

  • Die Dioden entkoppeln die Zeilen: Eine Spalte, die über eine Diode High ist, kann keinen Strom zurück in eine andere Zeile treiben, weil die Dioden dort in Sperrrichtung liegen. Ohne Dioden wären alle Zeilen über die Spalten miteinander verbunden.

  • Jede Spalte ist damit eine Dioden-ODER-Verknüpfung der Zeilen, in denen sie eine Diode hat: Q_0 = S1 \vee S3 \vee S5, Q_1 = S2 \vee S3, Q_2 = S4 \vee S5.

Die Belegung bestimmst Du mit einer Codetabelle: Für jede Zeile schreibst Du den gewünschten Code auf; jede 1 ist eine Diode.

Codetabelle der Programmwahl (jede 1 ist eine Diode in der Matrix; zusammen 7 Dioden)
Taster Programm Q_2 Q_1 Q_0 Dioden
keiner – 0 0 0 –
-S1 1 0 0 1 1
-S2 2 0 1 0 1
-S3 3 0 1 1 2
-S4 4 1 0 0 1
-S5 5 1 0 1 2

Dasselbe Prinzip funktioniert für jeden anderen Code. Eine Diodenmatrix kann auch ein Zeichen erzeugen: Sollen bei einer Meldung die Segmente einer 7-Segment-Anzeige ein bestimmtes Zeichen bilden, bekommt die Zeile dieser Meldung eine Diode zu jeder Segmentleitung, die leuchten soll. Für das Zeichen „F“ (Segmente a, e, f, g) sind das vier Dioden. Eine Matrix aus Dioden ist ein einfacher, fest „programmierter“ Festwertspeicher: Die Zeile ist die Adresse, die Spalten sind das gespeicherte Datenwort (siehe Halbleiterspeicher).

Schritt 4: Codeumsetzer und 7-Segment-Anzeige

BCD-zu-7-Segment-Decoder

Ein Codeumsetzer setzt einen Code in einen anderen um, ohne dass Ein- oder Ausgang ein 1-aus-n-Signal sein muss. Der wichtigste ist der BCD-zu-7-Segment-Decoder: Er erhält eine BCD-Ziffer an vier Eingängen und schaltet an sieben Ausgängen die Segmente a bis g so, dass die Ziffer erscheint. Die Segmentbelegung steht im Artikel Zahlensysteme und Codes.

Der 74HC4511 (bzw. CD4511) ist ein solcher Baustein für Anzeigen mit gemeinsamer Kathode: Seine Ausgänge a bis g sind high-aktiv und liefern den Segmentstrom (über Vorwiderstände). Zusätzlich hat er drei Steuereingänge:

Steuereingänge des BCD-zu-7-Segment-Decoders 74HC4511
Eingang englische Bezeichnung Wirkung
\overline{LT} lamp test L: alle Segmente leuchten (Anzeigetest), Vorrang vor allen anderen
\overline{BI} blanking input L: alle Segmente dunkel (Dunkeltastung), z. B. für führende Nullen
LE latch enable L: Ausgänge folgen den Eingängen; H: letzter Wert wird gehalten
D, C, B, A BCD inputs BCD-Ziffer, D höchstwertig (8), A niederwertig (1)

Für den Normalbetrieb liegen \overline{LT} = \mathrm{H}, \overline{BI} = \mathrm{H} und LE = \mathrm{L}. Bei der Ziffer 3 (DCBA = 0011) sind die Ausgänge a, b, c, d und g auf H, e und f auf L. Pseudotetraden (1010 bis 1111) schalten beim 4511 alle Segmente dunkel. Für Anzeigen mit gemeinsamer Anode brauchst Du einen Decoder mit low-aktiven Ausgängen (z. B. 74LS247) oder invertierst die Segmentsignale.

Der Codeumsetzer braucht 4 Eingänge (BCD) und 7 Ausgänge (Segmente). Er lässt sich auch aus Gattern, einer Diodenmatrix oder per Software in einem Mikrocontroller nachbilden: Dann steht die Codetabelle als Feld im Programm, und die Ziffer ist der Index.

Gemultiplexte 7-Segment-Anzeige

Eine vierstellige Anzeige mit je acht Segmenten (a bis g und Dezimalpunkt) bräuchte einzeln angesteuert 32 Leitungen. Bei einer gemultiplexten Anzeige sind die gleichnamigen Segmente aller Stellen parallel geschaltet (8 Segmentleitungen); jede Stelle hat einen eigenen Anschluss für ihre gemeinsame Kathode bzw. Anode, den ein Transistor schaltet (eine Stellenleitung je Stelle). Das sind nur 8 + 4 = 12 Leitungen.

Die Steuerung (Mikrocontroller oder Zähler mit Decoder) schaltet die Stellen nacheinander ein:

  1. alle Stellen aus,
  2. Bitmuster der Ziffer für Stelle 1 an die Segmentleitungen legen,
  3. Stelle 1 einschalten und eine feste Zeit warten,
  4. weiter mit Stelle 2, 3, 4 und dann wieder von vorn.

Jede Stelle leuchtet nur einen Teil der Zeit. Ist der Durchlauf schnell genug (Bildwiederholfrequenz über etwa 50 Hz bis 100 Hz), sieht das Auge alle Stellen gleichzeitig leuchten.

Zeitablauf einer gemultiplexten vierstelligen 7-Segment-Anzeige: Die Stellenleitungen DIG1 bis DIG4 sind nacheinander je 2,5 ms aktiv; in jedem Zeitschlitz liegt an den Segmentleitungen das Bitmuster der Ziffer dieser Stelle (0x5B, 0x06, 0x07, 0x3F für 2, 1, 7, 0); ein vollständiger Durchlauf dauert 10 ms (mit KI erstellt)

Im Beispiel ist jede der vier Stellen t_\mathrm{Stelle} = 2{,}5\ \mathrm{ms} aktiv. Ein Durchlauf dauert

T = n \cdot t_\mathrm{Stelle} = 4 \cdot 2{,}5\ \mathrm{ms} = 10\ \mathrm{ms}

und die Bildwiederholfrequenz beträgt f = 1/T = 100\ \mathrm{Hz}. Jede Stelle leuchtet nur 1/4 der Zeit (Tastgrad 25 %). Damit sie so hell erscheint wie eine dauernd leuchtende, muss der Spitzenstrom im Segment größer sein; das Datenblatt der Anzeige nennt dafür den zulässigen Impulsstrom (peak forward current) bei einem bestimmten Tastgrad.

Angezeigte Ziffer bestimmen: Liegt in einem Zeitschlitz an den Segmentleitungen das Bitmuster (Reihenfolge dp g f e d c b a) 0110\,0110_2 = 0x66, leuchten b, c, f und g – die Ziffer 4. Du liest dazu ab, welche Stellenleitung gerade aktiv ist, und übersetzt das Segmentmuster mit der Segmenttabelle in die Ziffer. Achte darauf, ob die Anzeige eine gemeinsame Kathode (Segment leuchtet bei H) oder eine gemeinsame Anode (Segment leuchtet bei L) hat.

Anzeige um Stellen erweitern: Für eine fünfte Stelle kommt eine Stellenleitung mit Transistor hinzu; die Segmentleitungen werden an die neue Stelle weitergeführt. Außerdem ändert sich:

  • Zeitablauf: Bleibt t_\mathrm{Stelle} gleich, wird der Durchlauf länger (5 \cdot 2{,}5\ \mathrm{ms} = 12{,}5\ \mathrm{ms}, 80 Hz); soll die Bildwiederholfrequenz gleich bleiben, muss t_\mathrm{Stelle} auf 10\ \mathrm{ms} / 5 = 2\ \mathrm{ms} sinken.

  • Helligkeit: Der Tastgrad je Stelle sinkt von 1/4 auf 1/5; bei gleichem Segmentstrom wird die Anzeige dunkler. Zum Ausgleich werden die Vorwiderstände verkleinert, soweit der zulässige Impulsstrom es erlaubt.

  • Stellenauswahl: Wählt ein Decoder die Stelle aus, reicht ein 2-aus-4-Decoder nicht mehr; nötig ist einer mit drei Adresseingängen (z. B. 3-aus-8). Im Mikrocontroller wird ein Ausgangspin mehr und eine Programmänderung (Stellenzahl im Zähler) gebraucht.

Dasselbe Verfahren steuert Matrixanzeigen (z. B. 8 × 8 LEDs): Statt Stellen werden Zeilen nacheinander eingeschaltet, an den Spaltenleitungen liegt das Bitmuster der jeweiligen Zeile. Eine 5 × 7-Matrix für ein Zeichen braucht so 5 + 7 = 12 statt 35 Leitungen.

Schritt 5: Digitalkomparator

Ein Digitalkomparator vergleicht zwei Dualzahlen A und B und meldet an drei Ausgängen, ob A > B, A = B oder A < B ist; genau einer dieser Ausgänge ist aktiv.

Ein-Bit-Komparator

Für einzelne Bits gilt:

\begin{aligned} Y_{A>B} &= A \wedge \overline{B} \\ Y_{A=B} &= \overline{A \oplus B} \\ Y_{A<B} &= \overline{A} \wedge B \end{aligned}

Der Gleichheitsausgang ist eine Äquivalenz (XNOR). Mehrstellige Zahlen vergleicht der Komparator vom höchstwertigen Bit her: Das erste Bitpaar, das sich unterscheidet, entscheidet. Sind alle Bits gleich, sind die Zahlen gleich.

Der 4-Bit-Komparator und seine Erweiterungseingänge

Der 74HC85 vergleicht zwei 4-Bit-Zahlen A_3 \ldots A_0 und B_3 \ldots B_0. Er hat außer den drei Ausgängen Q_{A>B}, Q_{A=B}, Q_{A<B} drei Erweiterungseingänge (cascading inputs) I_{A>B}, I_{A=B}, I_{A<B}. Sie bringen das Ergebnis eines niederwertigeren Bausteins mit:

  • Unterscheiden sich die vier eigenen Bitpaare, entscheiden sie; die Erweiterungseingänge spielen keine Rolle.

  • Sind alle vier eigenen Bitpaare gleich, übernimmt der Baustein das Ergebnis an seinen Erweiterungseingängen.

Daraus folgen die Beschaltungsregeln, die das Datenblatt nennt:

  • Einzelner Baustein bzw. niederwertigster Baustein einer Kette: I_{A=B} = \mathrm{H}, I_{A>B} = \mathrm{L}, I_{A<B} = \mathrm{L}. „Darunter“ gibt es keine weiteren Bits, also gelten sie als gleich.

  • Höherwertige Bausteine: Ihre Erweiterungseingänge liegen an den gleichnamigen Ausgängen des nächstniederwertigen Bausteins (Q_{A>B} \to I_{A>B}, Q_{A=B} \to I_{A=B}, Q_{A<B} \to I_{A<B}).

  • Das Gesamtergebnis liegt an den Ausgängen des höchstwertigen Bausteins.

Kaskadierung zweier 4-Bit-Digitalkomparatoren zu einem 8-Bit-Komparator: Der niederwertige Baustein -K1 vergleicht A3 bis A0 mit B3 bis B0, seine Erweiterungseingänge liegen auf I(A>B) = L, I(A=B) = H, I(A<B) = L; seine Ausgänge Q(A>B), Q(A=B), Q(A<B) führen zu den gleichnamigen Erweiterungseingängen des höherwertigen Bausteins -K2, der A7 bis A4 mit B7 bis B4 vergleicht und das Gesamtergebnis ausgibt (mit KI erstellt)

Beispiel mit 8 Bit: A = 0101\,1100_2 (92) und B = 0101\,0111_2 (87). Der höherwertige Baustein sieht 0101 = 0101 und übernimmt deshalb das Ergebnis des niederwertigen. Dieser vergleicht 1100 (12) mit 0111 (7): A > B. Gesamtergebnis: Q_{A>B} = \mathrm{H}, die beiden anderen Ausgänge L.

Komparatoren überwachen Grenzwerte (Füllstand, Stückzahl, Temperatur als Dualzahl), bilden Adressvergleicher in Bussystemen oder stoppen einen Zähler bei einem eingestellten Wert. Ein Ausgang „A \geq B“ entsteht als ODER-Verknüpfung von Q_{A>B} und Q_{A=B} oder als Negation von Q_{A<B}.

Schritt 6: Halbaddierer, Volladdierer und mehrstellige Addierer

Dualzahlen addierst Du wie Dezimalzahlen stellenweise von rechts nach links, mit Übertrag in die nächste Stelle: 1 + 1 = 10_2, also Summe 0 und Übertrag 1.

Halbaddierer

Der Halbaddierer addiert zwei Bits A und B. Er liefert die Summe S und den Übertrag C (carry):

\begin{aligned} S &= A \oplus B \\ C &= A \wedge B \end{aligned}

Er besteht also aus einem XOR- und einem UND-Glied. Für die niederwertigste Stelle reicht er, für alle anderen nicht: Dort muss auch der Übertrag der vorigen Stelle addiert werden.

Volladdierer

Der Volladdierer addiert drei Bits: A, B und den Übertrag C_\mathrm{in} der vorigen Stelle. Er besteht aus zwei Halbaddierern und einem ODER-Glied:

\begin{aligned} S &= A \oplus B \oplus C_\mathrm{in} \\ C_\mathrm{out} &= (A \wedge B) \vee \bigl(C_\mathrm{in} \wedge (A \oplus B)\bigr) \end{aligned}

Volladdierer aus zwei Halbaddierern: Das XOR-Glied -K1 bildet aus A und B die Zwischensumme X1, das XOR-Glied -K2 aus X1 und C_in die Summe S; das UND-Glied -K3 bildet A UND B, das UND-Glied -K4 bildet X1 UND C_in, das ODER-Glied -K5 verknüpft beide zum Übertrag C_out (mit KI erstellt)
Funktionstabelle des Volladdierers
C_\mathrm{in} B A X1 = A \oplus B S C_\mathrm{out}
0 0 0 0 0 0
0 0 1 1 1 0
0 1 0 1 1 0
0 1 1 0 0 1
1 0 0 0 1 0
1 0 1 1 0 1
1 1 0 1 0 1
1 1 1 0 1 1

Die Summe ist 1, wenn eine ungerade Zahl der drei Eingänge 1 ist; der Übertrag ist 1, wenn mindestens zwei Eingänge 1 sind.

Mehrstellige Addierer und Kaskadierung

Schaltest Du n Volladdierer hintereinander und gibst jeweils C_\mathrm{out} an C_\mathrm{in} der nächsten Stelle, entsteht ein n-Bit-Addierer (Ripple-Carry-Addierer). Der Übertrag läuft durch alle Stellen, was die Rechenzeit verlängert. Integrierte Addierer wie der 4-Bit-Addierer 74HC283 bilden die Überträge deshalb parallel (carry look-ahead).

Der 74HC283 hat die Eingänge A_1 bis A_4, B_1 bis B_4 (Index 1 = niederwertigstes Bit), den Übertragseingang C_\mathrm{IN}, die Summenausgänge S_1 bis S_4 und den Übertragsausgang C_\mathrm{OUT}. Beispiel: A = 0111 (7), B = 0101 (5), C_\mathrm{IN} = 0:

7 + 5 = 12 = 1100_2 \quad\Rightarrow\quad S_4S_3S_2S_1 = 1100,\ C_\mathrm{OUT} = 0

Bei A = 1010 (10) und B = 1001 (9) ist die Summe 19 = 1\,0011_2: Das Ergebnis passt nicht mehr in 4 Bit, es erscheint S_4S_3S_2S_1 = 0011 und C_\mathrm{OUT} = 1. Der Übertragsausgang ist das fünfte Ergebnisbit bzw. eine Überlaufmeldung.

Kaskadieren: Für 8 Bit verbindest Du C_\mathrm{OUT} des niederwertigen Bausteins mit C_\mathrm{IN} des höherwertigen; C_\mathrm{IN} des niederwertigen Bausteins legst Du auf L (kein Übertrag von außen). Ein offener C_\mathrm{IN} wäre bei CMOS ein undefinierter Eingang (Schritt 7). Mit C_\mathrm{IN} = \mathrm{H} rechnet der Addierer A + B + 1; zusammen mit invertierten B-Eingängen entsteht so die Subtraktion im Zweierkomplement A - B = A + \overline{B} + 1.

Schritt 7: Beschaltungsregeln aus dem Datenblatt ableiten

Viele Fehler in Digitalschaltungen entstehen nicht in der Logik, sondern an Eingängen, die falsch oder gar nicht beschaltet sind. Die Regeln dafür stehen im Datenblatt, oft als kurzer englischer Satz in den application notes, unter recommended operating conditions oder als Fußnote der Funktionstabelle.

Unbenutzte Eingänge

  • CMOS-Eingänge (74HC, 74HCT, 4000er-Reihe) sind sehr hochohmig. Ein offener Eingang nimmt einen zufälligen Pegel an, kann schwingen und lässt einen hohen Querstrom durch die Eingangsstufe fließen. Datenblätter verlangen deshalb sinngemäß: Alle unbenutzten Eingänge müssen auf V_\mathrm{CC} oder GND gelegt werden.

  • Welcher Pegel? Er darf die Funktion nicht stören: unbenutzte Eingänge eines UND- oder NAND-Glieds auf H (oder an einen benutzten Eingang), eines ODER- oder NOR-Glieds auf L. Eingänge ganz unbenutzter Gatter legst Du auf GND.

  • Freigabe- und Steuereingänge auf den Pegel, der den Baustein dauerhaft in den gewünschten Zustand bringt: z. B. \overline{E} eines benötigten Decoders auf L, \overline{LT} und \overline{BI} eines 4511 auf H, LE auf L.

  • Unbenutzte Ausgänge bleiben offen; sie dürfen nicht miteinander oder mit V_\mathrm{CC}/GND verbunden werden.

  • TTL-Eingänge (74LS) wirken offen wie H, sind aber störempfindlich; auch sie legst Du fest, am besten über einen Widerstand an V_\mathrm{CC} (siehe Logikfamilien und Pegel).

Erweiterungseingänge und typische Formulierungen

Für Erweiterungseingänge sagt das Datenblatt, wie der Baustein allein und in einer Kette beschaltet wird. Typische Formulierungen und ihre Bedeutung:

Typische Formulierungen in englischen Datenblättern
Formulierung im Datenblatt (sinngemäß) Bedeutung für die Beschaltung
For single device operation, connect the cascading inputs … to HIGH/LOW. Werte für einen allein arbeitenden Baustein (beim Komparator I_{A=B} = H, die anderen L)
Connect the outputs of the less significant stage to the cascading inputs of the next stage. Ausgänge der niederwertigen Stufe an die Erweiterungseingänge der höherwertigen
Unused inputs must be held at V_\mathrm{CC} or GND. kein Eingang offen lassen
Do not leave … floating. dieser Eingang darf nie offen sein (floating = schwebend, offen)
active LOW, Überstrich, Negationskreis Eingang ist bei L aktiv
don’t care (X) Pegel beliebig, muss aber trotzdem festgelegt sein (CMOS)

Beachte den letzten Punkt: „X“ in der Funktionstabelle heißt nur, dass der Pegel die logische Funktion nicht beeinflusst. Offen lassen darfst Du den Eingang trotzdem nicht.

Wie geht es weiter?

Schaltnetze sind die Bausteine größerer Digitalschaltungen:

Leitfragen

  1. Wie viele Ein- und Ausgänge braucht ein BCD-zu-Dezimal-Decoder mindestens, und wie viele Ausgänge ein Codierer für 20 Tasten?

BCD-zu-Dezimal: 4 Eingänge, 10 Ausgänge. Codierer für 20 Tasten: 2^4 = 16 < 20 \leq 32 = 2^5, also 5 Ausgänge. siehe Abschnitt „Mindestzahl an Ein- und Ausgängen“

  1. Woran erkennst Du am Schaltzeichen einen Decodierer, einen Codierer, einen Codeumsetzer und einen Demultiplexer?

Am Kennzeichen: X/Y mit Angabe der Codes, z. B. BIN/OCT oder BCD/DEC (Decodierer, Ausgang 1-aus-n), HPRI/BIN (Codierer, Eingang 1-aus-n), BCD/7SEG (Codeumsetzer), DX bzw. DMUX (Demultiplexer). siehe Abschnitt „Schritt 1: Schaltnetze und ihre Bausteine im Überblick“

  1. Welche Pegel brauchst Du am 74HC139, damit in der ersten Hälfte 1\overline{Y_1} aktiv ist, und was bedeutet „X“ in der Funktionstabelle?

1\overline{E} = \mathrm{L}, 1A_1 = \mathrm{L}, 1A_0 = \mathrm{H}; dann ist 1\overline{Y_1} = \mathrm{L}, die anderen H. „X“ heißt don’t care: Der Pegel beeinflusst die Funktion nicht. siehe Abschnitt „Funktionstabellen in englischen Datenblättern“

  1. Wozu dienen in einer Diodenmatrix die Dioden und die Pull-down-Widerstände?

Die Dioden verbinden die Zeile nur mit den Spalten, die 1 werden sollen, und entkoppeln die Zeilen voneinander (Dioden-ODER). Die Pull-down-Widerstände legen Spalten ohne leitende Diode sicher auf 0 V. siehe Abschnitt „Die Diodenmatrix als Codierer“

  1. Wie viele Dioden braucht eine Matrix, die für die Ziffern 6 und 9 den Dualcode ausgibt?

6 = 0110_2 (2 Dioden), 9 = 1001_2 (2 Dioden), zusammen 4 Dioden. siehe Abschnitt „Die Diodenmatrix als Codierer“

  1. Welche Segmente leuchten am 74HC4511 bei DCBA = 0111, \overline{LT} = \mathrm{H}, \overline{BI} = \mathrm{H}, LE = \mathrm{L}, und was passiert bei \overline{BI} = \mathrm{L}?

Ziffer 7: Segmente a, b, c. Bei \overline{BI} = \mathrm{L} sind alle Segmente dunkel. siehe Abschnitt „BCD-zu-7-Segment-Decoder“

  1. Eine dreistellige Multiplexanzeige schaltet jede Stelle 4 ms ein. Wie groß ist die Bildwiederholfrequenz, und was ändert sich für eine vierte Stelle?

T = 3 \cdot 4\ \mathrm{ms} = 12\ \mathrm{ms}, f \approx 83{,}3\ \mathrm{Hz}. Mit vierter Stelle: eine Stellenleitung mehr, T = 16\ \mathrm{ms} (62{,}5\ \mathrm{Hz}) oder kürzere Zeit je Stelle (3 ms); der Tastgrad sinkt von 1/3 auf 1/4, die Anzeige wird bei gleichem Strom dunkler. siehe Abschnitt „Gemultiplexte 7-Segment-Anzeige“

  1. Wie beschaltest Du die Erweiterungseingänge zweier 4-Bit-Komparatoren für einen 8-Bit-Vergleich?

Niederwertiger Baustein: I_{A=B} = \mathrm{H}, I_{A>B} = I_{A<B} = \mathrm{L}. Seine Ausgänge an die gleichnamigen Erweiterungseingänge des höherwertigen Bausteins, dessen Ausgänge das Gesamtergebnis liefern. siehe Abschnitt „Der 4-Bit-Komparator und seine Erweiterungseingänge“

  1. Worin unterscheiden sich Halb- und Volladdierer, und was liefert ein 4-Bit-Addierer bei 1100 + 0110?

Der Volladdierer verarbeitet zusätzlich den Übertrag der vorigen Stelle. 12 + 6 = 18 = 1\,0010_2: S_4S_3S_2S_1 = 0010, C_\mathrm{OUT} = 1. siehe Abschnitt „Schritt 6: Halbaddierer, Volladdierer und mehrstellige Addierer“

  1. Warum darfst Du einen CMOS-Eingang nicht offen lassen, auch wenn die Funktionstabelle dort „X“ zeigt?

Ein offener CMOS-Eingang nimmt zufällige Pegel an, kann schwingen und verursacht Querströme. „X“ bedeutet nur, dass der Pegel die Logik nicht beeinflusst; festgelegt (an V_\mathrm{CC} oder GND) werden muss er trotzdem. siehe Abschnitt „Schritt 7: Beschaltungsregeln aus dem Datenblatt ableiten“


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Schaltnetze: Codierer, Decodierer, Codeumsetzer, Digitalkomparator und Addierer” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/schaltnetze-decoder veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/elektrotechnik/digitaltechnik. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 12.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: