11. Komplexaufgabe zu Schaltnetzen - 7-Segment-Anzeige

Aufgabenstellung

Entwickle möglichst einfache Schaltgleichungen in disjunktiver Normalform für die sieben Segmente einer 7-Segmentanzeige, um mit dieser die Dezimalziffern 0-9 darstellen zu können. Dabei soll die nachfolgend angegebene Darstellung der Dezimalziffern auf der 7-Segmentanzeige erreicht werden. Zeichne die Schaltung für das Segment %%a%%.

Darstellung von Dezimalziffern auf einer 7-Segment-Anzeige Schema einer 7-Segment-Anzeige

Hinweise:

  • Die Dezimalziffern liegen eingangsseitig binär codiert als Dualzahlen vor. Diese haben eine Wortbreite von 4 Bit (das heißt, sie haben 4 Binärstellen und ggf. führende Nullen, so z.B. %%2_{10} = 0010_2%%).

  • Nutze für die Stellen der Dualzahlen die Bezeichnungen %%x_3%% bis %%x_0%%.

  • Für die Segmente sollen die in der Grafik gegebenen Bezeichnungen %%a%% bis %%g%% genutzt werden.

  • Eine "1" am Eingang des jeweiligen Segments soll bedeuten, dass es leuchtet und eine "0", dass es nicht leuchtet.

  • Zeilen in der Schaltbelegungstabelle, die für unsere Schaltung nicht relevant sind (don't care), erhalten einfach Sterne als Ausgangswerte. Diese können dann bei der Blockbildung in KV-Diagrammen wahlweise als "1" oder "0" aufgefasst werden.

Lösung

Schritt 1: Schaltbelegungstabelle aufstellen

Wir haben als Eingangswerte vier Dualziffern, die sich ändern können. Daher bekommt die Schaltbelegungstabelle %%2^4 = 16%% Zeilen. Die Zeilennummerierung entspricht günstiger Weise der Dezimalzahl (0 bis 15), welche mit der jeweiligen Dualzahl (0000 bis 1111) darstellbar wäre.

Für die Ausgangswerte gibt es diesmal mehrere Spalten - nämlich genau sieben Stück für die sieben Segmente!

Die Schaltbelegungstabelle ergibt sich daher wie folgt:

Nr.

%%x_3%%

%%x_2%%

%%x_1%%

%%x_0%%

%%a%%

%%b%%

%%c%%

%%d%%

%%e%%

%%f%%

%%g%%

0

0

0

0

0

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

10

1

0

1

0

11

1

0

1

1

12

1

1

0

0

13

1

1

0

1

14

1

1

1

0

15

1

1

1

1

Jetzt müssen wir noch die Ausgangswerte eintragen:

  • Diese sollen %%1%% sein, wenn das jeweilige Segment leuchten muss, um die in der jeweiligen Zeile geforderte Dezimalzahl darzustellen. (Soll das Segment nicht leuchten, wird der Ausgangswert %%0%% vergeben).
  • Da weiterhin keine Zahlen oberhalb von %%9_{10}%% dargestellt werden können, erhalten die Zeilen Nr. 10-15 als Ausgangswerte durchgängig Sterne (%%*%%).

Die vollständige Schaltbelegungstabelle sieht folgendermaßen aus:

Nr.

%%x_3%%

%%x_2%%

%%x_1%%

%%x_0%%

%%a%%

%%b%%

%%c%%

%%d%%

%%e%%

%%f%%

%%g%%

0

0

0

0

0

1

1

1

1

1

1

0

1

0

0

0

1

0

1

1

0

0

0

0

2

0

0

1

0

1

1

0

1

1

0

1

3

0

0

1

1

1

1

1

1

0

0

1

4

0

1

0

0

0

1

1

0

0

1

1

5

0

1

0

1

1

0

1

1

0

1

1

6

0

1

1

0

1

0

1

1

1

1

1

7

0

1

1

1

1

1

1

0

0

0

0

8

1

0

0

0

1

1

1

1

1

1

1

9

1

0

0

1

1

1

1

1

0

1

1

10

1

0

1

0

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

11

1

0

1

1

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

12

1

1

0

0

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

13

1

1

0

1

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

14

1

1

1

0

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

15

1

1

1

1

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

%%*%%

In den weiteren Schritten wird nun zunächst in kommentierter Form für das Segment %%a%% das KV-Diagramm aufgestellt und daraus die vereinfachte Schaltgleichung abgelesen. Die Lösungen für die weiteren Segmente folgen dann anschließend zusammengefasst.

Schritt 2: KV-Diagramm aufstellen (Segment a)

a) Matrix aufzeichnen, beschriften und Felder nummerieren

Zunächst müssen wir die Matrix des KV-Diagramms aufstellen, sie beschriften und günstiger Weise deren Felder durchnummerieren (vgl. Artikel zu diesem Thema):

leeres KV-Diagramm mit Beschriftung

b) Ausgangswerte aus Schaltbelegungstabelle eintragen

Nun müssen die Ausgangswerte für das Segment %%a%% in das KV-Diagramm übertragen werden. Dabei erhältst du folgendes Ergebnis:

Ausgefülltes  KV-Diagramm

c) Blockbildung von Werten im KV-Diagramm

An dieser Stelle bildet man für die DNF nun Blöcke von Einsen. Um möglichst große Blöcke zu erzielen, bietet es sich in diesem Fall an, alle "don't care"-Werte (Sterne) als Einsen aufzufassen. So können wir nämlich sogar 8er-Blöcke bilden!

Ein weiteres Augenmerk sei auf die vier Ecken des Diagramms gerichtet: Da Blöcke ja über den Rand hinaus zur jeweils anderen Seite reichen dürfen, können wir hieraus auch einen 4er-Block bilden (Felder 0, 2, 8, 10).

Nach genauem Hinschauen lassen sich somit zwei 8er-Blöcke und zwei 4er-Blöcke bilden. In das Diagramm eingetragen ergibt sich folgendes Bild:

Ausgefülltes KV-Diagramm mit Blockbildung für Segment a

Schritt 3: Schaltgleichung ablesen (Segment a)

Nun können wir mithilfe der Blöcke direkt die minimierte Schaltgleichung in disjunktiver Normalform ablesen:

Die komplette Schaltgleichung lautet somit:

$$a = \color{#009999} {x_1} \vee \color{#cc0000} {x_3} \vee (\color{#ff6600} { \overline{x_2} \wedge \overline{x_0} }) \vee (\color{#006400} { x_2 \wedge x_0 })$$

Schritt 4: Schaltung zeichnen (Segment a)

Die Schaltung für das Segment a lässt sich mit der Gleichung nun direkt zeichnen:

Schaltung für Segment a

Lösungen der Segmente b-g

Segment b

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment b

  • minimierte Schaltgleichung in disjunktiver Normalform: $$b = (\color{#cc0000} { \overline{x_1} \wedge \overline{x_0} }) \vee (\color{#006400} { x_1 \wedge x_0 }) \vee \color{#ff6600} {\overline{x_2}}$$

Segment c

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment c

  • minimierte Schaltgleichung in disjunktiver Normalform: $$c = \color{#009999} {\overline{x_1}} \vee \color{#006400} {x_0} \vee \color{#ff6600} {x_2}$$

Segment d

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment d

  • minimierte Schaltgleichung in disjunktiver Normalform: $$d = (\color{#ff6600} { \overline{x_2} \wedge \overline{x_0} }) \vee (\color{#006400} { x_1 \wedge \overline{x_2} }) \vee (\color{#009999} { x_1 \wedge \overline{x_0} }) \vee (\color{#660099} { x_2 \wedge \overline{x_1} \wedge x_0 }) \vee \color{#cc0000} {x_3}$$

Segment e

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment e

  • minimierte Schaltgleichung in disjunktiver Normalform: $$e = (\color{#ff6600} { \overline{x_2} \wedge \overline{x_0} }) \vee (\color{#009999} { x_1 \wedge \overline{x_0} })$$

Segment f

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment f

  • minimierte Schaltgleichung in disjunktiver Normalform: $$f = (\color{#006400} { x_2 \wedge \overline{x_1} }) \vee (\color{#660099} { \overline{x_1} \wedge \overline{x_0} }) \vee (\color{#ff6600} { x_2 \wedge \overline{x_0} }) \vee \color{#cc0000} { x_3 }$$

Segment g

  • ausgefülltes KV-Diagramm mit Blockbildung: Ausgefülltes KV-Diagramm mit Blockbildung für Segment g

  • minimierte Schaltgleichung in disjunktiver Normalform: $$g = (\color{#006400} { x_1 \wedge \overline{x_0} }) \vee (\color{#009999} { x_2 \wedge \overline{x_1} }) \vee (\color{#ff6600} { \overline{x_2} \wedge x_1 }) \vee \color{#cc0000} { x_3 }$$

Kommentieren Kommentare