Frage

Ich bin ein Programm für einen 8051-Mikrocontroller zu schreiben. Im ersten Teil des Programms habe ich einige Berechnungen und basierend auf dem Ergebnis, zünde ich entweder die LED oder nicht (mit CLR P1.7, wo P1.7 ist der Hafen der LED in den Mikrocontroller angeschlossen sind).

Im nächsten Teil des Programms Ich möchte das Bit abzurufen, möglicherweise speichern Sie es irgendwo, und verwenden Sie es in einer if-Sprungbefehl wie JB. Wie kann ich das tun?

Außerdem habe ich die Anweisung MOV C, P1.7 in einem Codebeispiel gesehen. Was ist die C hier?

War es hilfreich?

Lösung

Die C hier ist die Carry-Flag 8051 - so genannt, weil es kann verwendet werden, um den „carry“ zu halten, wenn zusätzlich Operationen an mehreren Bytes zu tun

.

Es kann auch als Single-Bit-Register verwendet werden - so (wie hier), wo Sie wollen um Bits zu bewegen, können Sie es mit einem Portwert laden (wie P1.7) es dann speichern Sie woanders, zum Beispiel:

MOV C, P1.7
MOV <bit-address>, C

Dann können Sie später auf sie verzweigen mit:

JB <bit-address>, <label>

Andere Tipps

Einige der Spezialfunktionsregister sind auch bitadressierbar. Ich glaube, es ist alles die, die in 0 oder 8. Do endet nicht eine Referenz vor mir haben, aber Sie können so etwas wie setb r0.1 zu tun. Auf diese Weise, wenn Sie den Übertrag für etwas brauchen, müssen Sie nicht zu kümmern, darüber schieben und Platz auf dem Stapel zu verbrauchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top