Hallo leute, versuche mir gerade assembler mit keil in der 8051 familie bei zu bringen. Ein Lauflicht zum anfangen: mov a, #01 loop: mov p1,a rl a jmp loop end Nun soll das Programm erweitert werden das man 16 lämpchen laufen läst, also muss irgendwie p2 untergebracht werden. hab es schon mit jc also über das carry versucht doch da ist p2 dem p1 immer um eines hinten nach. Hat wer einen tipp für mich danke steve
> hab es schon mit jc also
über das carry versucht doch da ist p2 dem p1 immer um eines hinten
nach.
Was? Verstehe ich nicht, wie, um eins hinten nach.
Also mit dem Carry ist das schon ok, nur gabs da nicht nen extra befehl
zu, der hiess rlc (rotiere nach links ueber Carry)?
Wenn dann p1 den Wert 8 hat und dann
rlc a
mov p1,a
ist p1 = 0 und CY = 1
Wenn CY = 1, dann
ldi a,#1
mov p2,a
(ich glaub so war das)
und dann rotieren ueber carry bis wieder CY=1 wird, und dann wieder bei
P1 weiterrumrotieren. Immer im Wechsel.
@stefan: Welche IO-Ports verwendest du? Welchen Baustein? Interner oder externer Programmspeicher? Bei externem Programmspeicher sind P0 und P2 belegt und nicht frei verwendbar. Wo sind denn die 16 Lämpchen angeschlossen? Normalerweise kommt man mit den Rotationsbefehlen, auch über mehrere Bytes hinweg, aus. Das benötigt nur eine kleine etwas ausgeklügelte Software. Am besten speichert man dazu die Zustände der Lämpchen in 2 Bytes z.B. im internen RAM und gibt sie aus. Gruß Dietmar
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.