$nomod51 ;der Modus fuer 8051 wird abgeschaltet $debug $nolist ;es wird kein Listing fuer reg535 erstellt $include(reg535.pdf) ;die 80535-spezifischen Daten $list ;es wird ein Listing erstellt $title (GRHI.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: GRHI ; ; ;Erstellt am: Dienstag, 27. Maerz 2007 14:18:07 ;Programmiert: Raphael Rupp, rura0011@hs-karlsruhe.de ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: T1 -> externer Datenspeicher von der Adresse 2000h bis ; 20FFh mit FFH beschreiben. ; T2 -> externer Datenspeicher von der Adresse 2000h bis ; 20FFh mit 00H beschreiben. ; ;Aenderungen: ;Geaendert am: ; ;------------------------------------------------------------------------ ;Initialisierungsteil fuer allgemeine Konstanten ;------------------------------------------------------------------------ CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ; ;------------------------------------------------------------------------ ;Interrupt-Vektoren ;------------------------------------------------------------------------ ;ORG ;------------------------------------------------------------------------ ;Initialisierungsteil fuer On-Chip Peripherie ;------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100H INIT: ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: jnb P1.1, D_FF_WR ;T1 externen Datenspeicher von der Adresse 2000H bis 20FFH mit FFH beschreiben. jnb P1.2, D_00_WR ;T2 externen Datenspeicher von der Adresse 2000H bis 20FFH mit 00H beschreiben. jmp ABFRAGE ;Sprung nach Abfrage D_FF_WR: mov DPTR, #2000h ;Anfangsadresse 2000h in externen Speicher DPTR eingeben mov R2, #256d ;Wieviele Adresszellen werden beschrieben? 2000h-20FFh = FFh mov A, #0FFh ;Wert FFh in Akku SCHLEIFE_FF_WR: Movx @DPTR, A ;Wert vom Akkumulator in die Adresse des externen Datenspeichers DPTR schreiben inc DPTR ;inkrementiere Adresse vom ext. Datenspeicher DPTR, Zeiger springt eins weiter djnz R2, SCHLEIFE_FF_WR ;dekrementiere Anzahl der Adresszellen, springe "ungleich null" nach SCHLEIFE_FF_WR jmp ABFRAGE ;zurück zur ANFRAGE springen D_00_WR: mov DPTR, #2000h ;Anfangsadresse 2000h in externen Speicher DPTR eingeben mov R2, #0256d ;Wieviele Adresszellen werden beschrieben? 2000h-20FFh = FFh mov A, #00h ;Wert 00h in Akku SCHLEIFE_00_WR: Movx @DPTR, A ;Wert vom Akkumulator in die Adresse des externen Datenspeichers DPTR schreiben inc DPTR ;inkrementiere Adresse vom ext. Datenspeicher DPTR, Zeiger springt eins weiter djnz R2, SCHLEIFE_00_WR ;dekrementiere Anzahl der Adresszellen, springe "ungleich null" nach SCHLEIFE_FF_WR jmp ABFRAGE ;zurück zur ABFRAGE springen END