Gast
#349387
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
|
Anzeige
|
DPT um +8
Gast
#349387
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
Gast
#349389
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
Gast
#349391
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:
Peter
Gast
#349393
vielen dank Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|