8051 Mikrocontroller

Programmbeispiel Blinklicht, Lauflicht

Blinklicht 1

Alle Bits von Port 0 sollen mit einer sichtbaren Frequenz blinken.

In Keil uVision mit F5 (run) starten.
Sollte sich der Watchdog melden (Watchdog Timer Reset occured) müssen Sie diesen unter Peripherie/Timer/Watchdog deaktivieren.

Watchdog Timer Reset

 

Programmbeispiel Blinklicht

 

Lauflicht 1

Eine 1 im Akku wird bitweise mit sichtbarer Frequenz nach links verschoben.
Wir nutzen die bereits bekannten Befehle RL [Rotate Left] usw.

Die Zeitschleife wird durch die Befehlszykluszeiten (Zeit für die Ausführung eines Befehls mit 1 Byte) der CPU erzeugt.
Durch die Schleife wird ein künstliches Zeitfenster erzeugt.

Programmbeispiel Lauflicht

 

Lauflicht 2

Erweitern Sie das Programm nun etwas.

Aufgabenstellung: Lauflicht links mit ca. 500ms Verzögerung. Dabei sollen die Durchläufe in Speicherzelle 20h gezählt werden.
Idee: Ein Durchlauf = jedesmal, wenn im Akku das höchste Bit gesetzt ist.

 

Programmbeispiel Lauflicht

Am Anfang wird die Speicherzelle 20h gelöscht (auf 00 gesetzt).
Mit CJNE wird 10000000b mit dem aktuellen :Wert im Akku verglichen.
Solange der Wert des Akku ungleich 10000000b ist, springe auf weiter:
Stimmt der Wert des Akku 10000000b mit 10000000b überein, wird die Speicherzelle 20h um 1 erhöht.

 

Suche