$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 (P04MC_SS08.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ; ;T1 Adresse D:0x30h mit 5A beschreiben · ;T2 Adressen von 30h bis 7Fh mit 0A5h beschreiben ; ; ;Erstellt am: Montag, 7. April 2008 16:31:22 ;Programmiert: ; Andreas Eissing ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Geaendert am: Montag, 7. April 2008 16:31:22 ; ; ;------------------------------------------------------------------------ ;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 ;------------------------------------------------------------------------ LEERLAUF: jnb P1.1,T1_MARKE ;Abfrage T1 ? jnb P1.2,T2_MARKE ;Abfrage T2 ? jmp LEERLAUF T1_MARKE: mov 30h,#05AH ;schreibe 05AH in Adresse 0x30H setb P1.1 ;Fuer Simulator zuruecksetzen jmp LEERLAUF ;zu LEERLAUF T2_MARKE: mov A,#05AH ;5A in den Akku mov R0,#030H ;schiebe 30H (Adresse) in Register R0 mov R2,#080 ;Lade Register mit 80 Werten setb P1.2 ;fuer simulator zuruecksetzen LOOP: mov @R0,A ;schreibe den inhalt von akku in die adresse die in R0 steht inc R0 ;inkrementiere R0 um 1. djnz R2,LOOP ;wenn R2 nicht 0 dekremntiere R2 um 1 und springe in Loop jmp LEERLAUF ;springe zurück in leerlauf end