$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 (DPTRDEC.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: Datenpointer decrementieren ; Taste 1 -> Inc ; Taste 2 -> dec ; ; ;Datum: 30.05.2006 ;Programmiert: Alexander Stadler ; ;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: mov dptr,#0102H ;Datenpointer mit Wert laden ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: jnb P1.1,DPTR_INC ;Wenn T1 -> INC jnb P1.2,DPTR_DEC ;Wenn T2 -> dec jmp ABFRAGE DPTR_INC: inc DPTR ;inc DPTR jmp ABFRAGE DPTR_DEC: clr C ;clr Carry falls C gesetzt mov A,DPL ;Lowbyte in Akku subb A,#1H ; A-1 mov DPL,A ; Akku in Lowbyte jnc ABFRAGE ; Wenn Carry nicht gesetzt jump clr C mov A,DPH ;Highbyte in Akku subb A,#1H ;A-1 mov DPH,A ; Akku in Highbyte jmp Abfrage END