Viele elektronische Geräte (z.B. Digitaluhren) verwenden für die Anzeige von Ziffern eine Gruppe von LCD-Elementen. Abhängig von der anzuzeigenden Ziffer werden diese Elemente beleuchtet oder nicht.
In der folgenden Grafik sehen Sie ein Beispiel für den Aufbau einer solchen Ziffer und welche Elemente für die Darstellung der Ziffern 0 - 9 beleuchtet werden. Wir bezeichnen die einzelnen Elemente mit den Ziffern 1 bis 7.
In einem Gerät wird eine Zahl zwischen 0 und 9 als binär codierte Ganzzahl gespeichert.
Die Variable zum Speichern der Zahl hat den Datentyp byte
und ist somit 8 Bit lang.
Wir bezeichnen die einzelnen Bits von links nach rechts mit einem Buchstaben „a“ bis „h“.
Wert | Binäre Codierung | |||||||
---|---|---|---|---|---|---|---|---|
a | b | c | d | e | f | g | h | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
4 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
6 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
8 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
Ihre Aufgabe ist es, die Logik für die Anzeige der LCD-Elemente zu definieren. Wir betrachten jeweils nur ein einzelnes LCD-Element auf einmal.
Halten Sie zunächst fest, für welche Ziffern das Element 1 (horizontales Element ganz oben) angezeigt wird.
Ziffer | Binäre Codierung | Anzeigen ? | |||||||
---|---|---|---|---|---|---|---|---|---|
a | b | c | d | e | f | g | h | ||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Ja |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Nein |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Ja |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | Ja |
4 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Nein |
5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | Ja |
6 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | Ja |
7 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | Ja |
8 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | Ja |
9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | Ja |
Formulieren Sie nun die logische Bedingung für die Bits „a“ bis „h“ mit AND, OR, XOR und NOT. Dabei tasten wir uns schrittweise heran:
Das Element wird angezeigt, wenn …
Falls ( e=1 OR g=1 )
Falls ( f=1 AND h=1 )
Falls ( (e=1 OR g=1) OR (f=1 AND h=1) )
In Schritt 2 erhalten Sie manchmal eine umfangreiche Bedingung mit vielen Teilbedingungen. In solchen Fällen versuchen wir, diese Bedingung möglichst kurz zu formulieren.
Aus der Algebra wissen Sie, dass man gleiche Faktoren zusammenfassen kann:
(a + b) * (a + c)
wird zu a * (b + c)
Ähnlich können wir gleiche Teilbedingungen zusammenfassen:
(f=1 AND h=0) OR (g=0 AND h=0)
wird zu ( h=0 AND (f=1 OR g=0) )
In diesem Beispiel wird das LCD-Element 1 nur in zwei Fällen nicht angezeigt. Daher ist es hier vielleicht einfacher, die Bedingung für das „nicht-anzeigen“ zu formulieren.
Das Element 1 wird nicht angezeigt, wenn …
(f=1 AND g=0 AND h=0)
(h=1 AND g=0 AND f=0 AND e=0)
Nun verknüpfen wir die Bedingungen und setzen ein NOT davor:
Falls ( NOT ( (f=1 AND g=0 AND h=0) AND (h=1 AND g=0 AND f=0 AND e=0) ) )
Führen Sie die Schritte 1 - 3 für das LCD-Element 2 aus.