Ein Halbaddierer verknüpft zwei binäre Werte (A und B) und liefert entsprechend der Rechenregeln der binären Addition die Summe (S) und den Übertrag (Ü).
Wie schön zu sehen ist, stellt die Summe S das Ergebnis der XOR-Verknüpfung der Eingänge A und B dar. S ist 1, wenn entweder A oder B 1 sind, ansonsten ist S 0.
Der Übertrag ist die AND-Verknüpfung von A und B: er ist nur dann 1, wenn A und B 1 sind, ansonsten ist er 0.
A | B | S | Ü |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
Zuerst muss eine neue Funktion and2 erstellt werden. Der Name and kann nicht verwendet werden, da er selber vom System benutzt wird. Wenn alles richtig funktioniert, leuchtet die LED auf, wenn A und B gedrückt ist. Auf dem Bildschirm steht nur dann eine 1, wenn A und B gleichzeitig gedrückt sind, ansonsten wird eine 0 angezeigt.
XOR- und AND-Funktion werden zu einem Halbaddierer verknüpft. Damit er zum Volladdierer wird, müssen nicht nur die Eingänge A und B berücksichtigt werden, sondern auch noch der Übertrag von einem Addierer eines niederwertigen Bits.
Der Calliope mini hat aber nur zwei Tasten, so dass die Eingabe eines Übertrages nicht möglich ist. Zum Glück hat der Calliope mini aber mit den Pins noch weitere Eingabemöglichkeiten. Das Programm wird so geändert, dass die Eingabe mit den Pins 1 und 2 erfolgen kann.
Das ist sinnvoll, da über die Pins 0 und 3 später der Übertrag weitergereicht wird.
Der Calliope mini zeigt auf dem Bildschirm an, dass die Summe 0 oder 1 ist und die grüne LED entspricht dem Übertrag=1. Die oben gezeigte Wahrheitstabelle wird mit dem Programm realisiert.
Der Volladdierer muss nicht nur die beiden Eingänge A und B berücksichtigen, sondern auch noch den Übertrag aus der Berechnung des vorhergehenden Bits. Die Tabelle zeigt die Wahrheitstabelle für die drei Eingänge.
Die Schaltung für den Volladdierer wird aus zwei Halbaddierern (HA) und einer OR-Schaltung realisiert.
A | B | Üe | Sa | Üa | |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | |
1 | 0 | 0 | 1 | 0 | |
0 | 1 | 0 | 1 | 0 | |
1 | 1 | 0 | 0 | 1 | |
0 | 0 | 1 | 1 | 0 | |
1 | 0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 |
Der Volladdierer besteht aus zwei Halbaddierern. Deswegen wird der Halbaddierer in einer Funktion abgelegt und mit den beiden Werten A und B aufgerufen. ABER: er muss zwei Werte zurückgeben (S und Ü), und das kann eine Funktion nicht.
Deswegen wird der Halbaddierer in einer Funktion abgelegt, die nichts zurückgibt, aber die intern berechneten Ergebnisse in einer globalen Variblenliste hinterlegt. Die Variable halbaddierer wird unter dem Startknopf als Liste logischer Werte mit zwei Einträgen erzeugt. Nach dem Aufruf der Funktion halbaddierer können die beiden Werte im Programm verwendet werden. Aber Achtung: ruft man die Funktion ein zweites Mal auf, werden die Einträge in der Variablen überschrieben. Deshalb müssen Werte, die man später noch mal braucht, in einer anderen Variablen gesichert werden.
Ganz konkret bedeutet dass, das nach dem ersten Aufruf der Funktion halbaddierer der Übertrag in einer Variablen or_1 gespeichert wird, da er nach dem zweiten Aufruf der Funktion halbaddierer mit dessen Übertrag in der OR-Schaltung verknüpft wird.
Der Calliope mini verabeitet die drei Eingänge entsprechend der oben gezeigte Wahrheitstabelle. Es gelten folgenden Zuordnungen:
Pin 1 → A
Pin 2 → B
Pin 3 → Üa
Pin 0 → Sa
Damit wird es möglich, mehrere Calliope mini hintereinander zu schalten.
Ein Halbaddierer verknüpft zwei binäre Werte (A und B) und liefert entsprechend der Rechenregeln der binären Addition die Summe (S) und den Übertrag (Ü).
Wie schön zu sehen ist, stellt die Summe S das Ergebnis der XOR-Verknüpfung der Eingänge A und B dar. S ist 1, wenn entweder A oder B 1 sind, ansonsten ist S 0.
Der Übertrag ist die AND-Verknüpfung von A und B: er ist nur dann 1, wenn A und B 1 sind, ansonsten ist er 0.
A | B | S | Ü |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
Zuerst muss eine neue Funktion and aus einer NAND-Funktion erstellt werden.
Danach werden die XOR-Funktion und die AND-Funktion zu einem Halbaddierer verknüpft.
Damit ist der Halbaddierer schon fertig.
Die mittlere LED zeigt die Summe an, der Übertrag wird direkt auf dem Bildschirm dargestellt.
Damit er zum Volladdierer wird, müssen nicht nur die Eingänge A und B berücksichtigt werden, sondern auch noch der Übertrag von einem Addierer eines niederwertigen Bits.
Der Calliope mini hat aber nur zwei Tasten, so dass die Eingabe eines Übertrages nicht möglich ist. Zum Glück hat der Calliope mini aber mit den Pins noch weitere Eingabemöglichkeiten. Das Programm wird so geändert, dass die Eingabe mit den Pins 1 und 2 erfolgen kann.
Das ist sinnvoll, da über die Pins 0 und 3 später der Übertrag weitergereicht wird.
Der Calliope mini zeigt mit der mittleren LED die Summe aus A und B an. Auf dem Bildschirm wird der Übertrag angezeigt.. Die oben gezeigte Wahrheitstabelle wird mit dem Programm realisiert.
Der Volladdierer muss nicht nur die beiden Eingänge A und B berücksichtigen, sondern auch noch den Übertrag aus der Berechnung des vorhergehenden Bits. Die Tabelle zeigt die Wahrheitstabelle für die drei Eingänge.
Die Schaltung für den Volladdierer wird aus zwei Halbaddierern (HA) und einer OR-Schaltung realisiert.
A | B | Üe | Sa | Üa | |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | |
1 | 0 | 0 | 1 | 0 | |
0 | 1 | 0 | 1 | 0 | |
1 | 1 | 0 | 0 | 1 | |
0 | 0 | 1 | 1 | 0 | |
1 | 0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 |
Der Volladdierer besteht aus zwei Halbaddierern. Deswegen wird der Halbaddierer in einer Funktion abgelegt und mit den beiden Werten A und B aufgerufen. ABER: er muss zwei Werte zurückgeben (S und Ü), und das kann eine Funktion nicht.
Deswegen wird der Halbaddierer in einer Funktion abgelegt, die nichts zurückgibt, aber die intern berechneten Ergebnisse in einer globalen Variblenliste hinterlegt. Die Variable transport wird unter beim Start als Array mit zwei Einträgen erzeugt. Nach dem Aufruf der Funktion halbaddierer können die beiden Werte im Programm verwendet werden. Aber Achtung: ruft man die Funktion ein zweites Mal auf, werden die Einträge in der Variablen überschrieben. Deshalb müssen Werte, die man später noch mal braucht, in einer anderen Variablen gesichert werden.
Ganz konkret bedeutet dass, das nach dem ersten Aufruf der Funktion halbaddierer der Übertrag in einer Variablen or_1 gespeichert wird, da er nach dem zweiten Aufruf der Funktion halbaddierer mit dessen Übertrag in der OR-Schaltung verknüpft wird.
Der Calliope mini verabeitet die drei Eingänge entsprechend der oben gezeigte Wahrheitstabelle. Es gelten folgenden Zuordnungen:
Pin 1 → A
Pin 2 → B
Pin 3 → Üa
Pin 0 → Sa
Damit wird es möglich, mehrere Calliope mini hintereinander zu schalten.