$NOMOD51 ;der Modus fuer 8051 wird abgeschaltet $debug $nolist ;es wird kein Listing fuer reg51 erstellt $include(REG51.inc) ;die 8051-spezifischen Daten $list ;es wird ein Listing erstellt $title (Speichertest.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ;T1-->00 in DSEG 30h bis 7Fh ;T2-->FFh in DSEG 30h bis 7Fh ;Indirekte Adressierung ;DSEG = ISEG von 00h bis 7Fh ; ;Erstellt am: Montag, 2. November 2009 ;Programmiert: Juergen Walter ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;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,DSEG_5A ;T1 --> DSEG mit 5A beschreiben jnb P1.2,DSEG_A5 ;T2 --> DSEG mit A5 beschreiben jmp ABFRAGE DSEG_5A: ;Initialisierung der Schleife mov ACC,#5Ah ;lade ACCU mit 0 mov R0,#030h ;initialisiere R0 mit 30h mov R2,#050h ;lade Zaehlregister R2 mit 50h Adressen - Werten SCHLEIFE1: mov @R0,ACC ;schreibe Inhalt von akku in die Adresse auf die R0 steht inc R0 ;erhöhe R0 um eins djnz R2,SCHLEIFE1 ;erniedrige R2 um eins, falls nicht 0 springe auf SCHLEIFE1 jmp ABFRAGE ;sprung zur ABFRAGE DSEG_A5: mov A,#0A5h ;lade akku mit 5Ah mov R0,#030h ;initialisiere R0 mit 30h mov R2,#050h ;lade Zaehlregister R2 mit 50h Adress - Werten SCHLEIFE2: mov @R0,A ;schreibe Inhalt von akku in die Adresse auf die R0 steht inc R0 ;erhöhe R0 um eins djnz R2,SCHLEIFE2 ;erniedrige R2 um eins, falls nicht 0 springe auf SCHLEIFE1 jmp ABFRAGE ;Sprung zur ABFRAGE end