Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe mit 8051!


von Oliver (Gast)


Lesenswert?

Hallo,

Wir haben vor kurzem Angefangen was über den 8051 zu lernen und auch
mit assembler programmierung angefangen und schreiben Programme für
einen ADuC812 von Analog Devices. Wir sollen nun folgende Aufgaben
bewältigen, aber leider steig ich da überhaupt nicht durch und würde
mich sehr über eure Hilfe freuen:

Aufgabe 2.1 Zählen von Tastendrücken; Ausgabe auf LED-Zeile
Es soll ein Programm erstellt werden, das die einzelnen Tastendrücke
auf T3 zählt und als Binär-Wert
auf der LED-Zeile ausgibt.
Zeichnen Sie ein Struktogramm für das Programm.
Um einen Wert auf die LED-Zeile schreiben zu können, wird sie
deklariert:
pLED EQU 0F000h
Der Datenpointer wird am Programmanfang mit der LED-Zeile
initialisiert:
mov DPTR, #pLED
Innerhalb des Programms wird sie über den Datenpointer angesprochen:
movx @DPTR,A
Mit obiger Zeile wird der Inhalt des Akkus auf die LED-Zeile
geschrieben.
Jeder erkannte Tastendruck auf T3 soll in R1 gezählt und der
Zählerstand soll innerhalb der Hauptschleife
ständig ausgegeben werden (Achtung: LED-Zeile ist lowaktiv).
Aufgabe 2.2 LED-Lauflicht
Die LEDs des Standard-Erweiterungsboards sollen als Lauflicht gesteuert
werden (der Reihe nach soll
je eine Diode leuchten).
Zeichnen Sie ein Struktogramm für das Programm und markieren Sie die
Stelle, an der die Verzögerungsschleife
eingefügt wird.
Erstellen Sie drei Programme:
a) ohne Verzögerungsschleife,
b) mit einer Verzögerungsschleife nach jedem Schritt,
c) mit geschachtelten Verzögerungsschleifen.
Verwendete Adresse : pLED EQU 0F000h
Bemerkung:
Um das Blinken der LEDs wirklich mit dem Auge wahrnehmen zu können,
müssen die Zeiten größenordnungsmäßig
im Bereich zwischen einigen Zehntelsekunden bis zu wenigen Sekunden
liegen. Dies
soll durch Warteschleifen erreicht werden.
Programmieren Sie zunächst ein Lauflicht ohne Verzögerung: Das Ergebnis
ist eine nahezu konstante,
jedoch insgesamt geringere Helligkeit, da das Auge zu träge ist, dem
schnellen Hell-Dunkel-
Wechsel zu folgen. Schätzen Sie ab, wie schnell die Zeiten für diesen
Wechsel etwa sind. Hierzu
muss man aus der Tabelle der Assemblerbefehle die Zahl der
Maschinenzyklen entnehmen und addieren
(Bei unserem Entwicklungsboard entspricht ein Maschinenzyklus einer
Zeit von etwa 1 ms)

Danke schonmal für eure Hilfe!

Gruß,

Oliver

von Pauker (Gast)


Lesenswert?

Hab Ihr auch einen Lehrer? Wenn ja, dann löchert diesen solange bis ihr
wisst wie es geht. Dafür ist er da.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.