$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 (UEBUNG81105-2.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ; ; ;Datum: 08.11.2005 ;Programmiert: Etienne Zisswiller ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Datum: ; ; ;------------------------------------------------------------------------ ;Initialisierungsteil für allgemeine Konstanten ;------------------------------------------------------------------------ CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ; ;------------------------------------------------------------------------ ;Interrupt-Vektoren ;------------------------------------------------------------------------ ;------------------------------------------------------------------------ ;Initialisierungsteil für On-Chip Peripherie ;------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100H INIT: ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: jnb P1.1, SCH_DIREKT ;ist Taster1 betätigt, springe nach SCH_DIREKT jnb P1.2, SCH_INDIREKT_0 ;ist Taster2 betätigt, springe nach SCH_INDIREKT jmp ABFRAGE ;Springe nach ABFRAGE SCH_DIREKT: mov A,#0BDh ;schiebt BDh ins Akku mov 030h,A ;schiebt Akku nach Adresse 30h jmp ABFRAGE SCH_INDIREKT_0: mov R2,#50h ;R2 als Zählregister mit 50h (7Fh-30h+1) laden mov R1,#30h ;schreibt 30h ins R1 Register mov A,#0A5h ;schreibt 0A5h ins Akku SCH_INDIREKT_1: mov @R1,A ;schiebt den Akku nach Adresse die in R1 geschrieben ist inc R1 ;R1=R1+1 Adresse wird um 1 erhoert djnz R2,SCH_INDIREKT_1 ;dekrementiert R2, wenn das Ergebniss nicht null ist, springe nach SCH_INDIREKT_SCHL jmp ABFRAGE end