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.
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.
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.
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.