Forum: Mikrocontroller und Digitale Elektronik DPT um +8


von Wraith (Gast)


Lesenswert?

Hi,

Ich arbeite grad mit dem AT 89S8252 und wollte nur wissen mit welchem
Befehl man den Datenpointer um den Wert 8 erhöhen kann. Also wenn z.B:
im DPTR 000h drinstehen hab dort 008h drinsteht

von Peter D. (peda)


Lesenswert?

Es kommt ganz auf den Kontext an.

Z.B. einfach den um 8 höheren Wert nach DPTR laden.

Oder bei Codezugriffen einfach "MOV A, #8", da A automatisch addiert
wird (MOVC A, @A+DPTR).


Peter

von Wraith (Gast)


Lesenswert?

Das ist bei mir so.

Ich will eine LED Matrix ansteuern. Die hat 16 Spalten es sind jeweils
8 Spalten an einem Pin angeshlossen.

Das sieht wie folgt aus:

P 1.0 , P 1.1  , P 1.2 , P 1.3 , P 1.4 , P 1.5 , P 1.6 , P 1.7

P 3.0 , P 3.1  , P 3.2 , P 3.3 , P 3.4 , P 3.5 , P 3.6 , P 3.7

Ich will dann von P 1.0 zu Pin 3.0 hoch.

Für Pin 1 sieht das wie folgt aus: 11111111     und P3 1111111

von Peter D. (peda)


Lesenswert?

"Ich will dann von P 1.0 zu Pin 3.0 hoch."

???

P1.0 hat die Adresse 90h, P3.0 die Adresse B0h (+32).

Aber das ist eh egal, da man Bits nicht indirekt adressieren kann und
erst recht nicht mit DPTR.

DPTR kann nur CODE oder XDATA adressieren.


Du solltest vielleicht erstmal das 8051-Instructionset zur Hand
nehmen.


Peter

von Wraith (Gast)


Lesenswert?

Das ist jetzt ersteinmal der lese befehl den ich habe.

movx    a,@DPTR

mov    P0,a

add    a,#8d

movx          a,@DPTR

mov          P2,a
ret

Bis jetzt hab ich einfach nur denn Akku um den Wert 8 erhöt ich will
nur das der Datenpointer auf den entprechenden Speicherplatz im XData
zeigt. wenn er auf den Speicherplatz 00h zeigt und alles was drin ist
abgerufen hat soll der Datenpointer auf 08h zeigen.

Dann geht das weiter 01h und dann soll der Datenpointer auf 09h zeigen
und das geht dann so weiter bis 00Fh.

von Peter D. (peda)


Lesenswert?

Dann muß man es zu Fuß machen:
1
        xch     a, dpl
2
        add     a, #8
3
        xch     a, dpl
4
        jnc     m1
5
        inc     dph
6
m1:


Peter

von Wraith (Gast)


Lesenswert?

vielen dank

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.