Lauflicht rechts/links umschaltbar mit Zeitschleife

Die Aufgabe:

Ein Bit soll am Port 4 (beginnend an der 1. Stelle) wahlweise nach links bzw. rechts verschoben werden.

Ob links oder rechts, soll am Port 7 eingestellt werden können.

Links = wenn am Port 7 = 0
Rechts = wenn am Port 7 alles andere als 0

Das Bit soll mit einer sichtbaren Frequenz ca.500ms bittweise nach links oder rechts verschoben werden. Wir nutzen die bereits bekannten Befehle RL [Rotate Left] usw.

Dazu wird eine Zeitschleife benötigt. 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.

In Keil uVision mit F5 (run) starten.

Achtung! Sollte sich der Watchdog melden (Watchdog Timer Reset occured) müssen Sie diesen unter Peripherie/Timer/Watchdog deaktivieren.

Der unten stehende Programmcode ist selbsterklärend.

 

Die Zeitschleife im Ablaufdiagramm

Lauflicht mit Zeitschleife Ablaufdiagramm

 

Programmbeispiel 1:

In diesem Programmbeispiel wird die Zeitschleife zu rasch durchlaufen werden.
Ein zusätzlicher Ausbau durch ein weiteres Register sollte nun aber kein Problem mehr darstellen.

Lauflicht mit Zeitschleife Assembler

 

Programmbeispiel 2 mit erweiteter Zeitschleife:

Assembler Lauflicht mit Zeitschleife