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