$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 (AUFUNDAB) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: Auf- und abwärtszählen des Akkus mit einer Frequenz von ca. 7,2 Hz ;und senden des Wertes an die serielle Schnittstelle! ; ; ;Grundlegende Funktion: ;* T2 AB ;* T3 AUF ; ;Datum:6.1.2001 ;Programmiert: J. Walter ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ; ; ;Kommentar: ; ;Aenderungen: ;Datum: ; ; ;------------------------------------------------------------------------ ;Initialisierungsteil für allgemeine Konstanten ;------------------------------------------------------------------------ CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ;------------------------------------------------------------------------ ;Initialisierungsteil für Interrupt-Vektor ;------------------------------------------------------------------------ ORG 0BH ;Timer 0 Interrupt Vektor INT_TIMER0: call ISR_T0 reti ;------------------------------------------------------------------------ ;Initialisierungsteil für Timer 0 ;------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100H INIT: mov IEN0,#10010010B ;Interrupt Freigabe mov TMOD,#00000001B ;16-Bit Timer setb TR0 ;Start des Timers ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ SCHLEIFE: jmp SCHLEIFE ISR_T0: cpl F0 ;Frequenz wird halbiert jnb F0,KEINE_TASTE jnb P1.3,A_HOEHER ;Spanung erhoehen jnb P1.2,A_TIEFER ;Spannung erniedrigen jmp KEINE_TASTE A_HOEHER: inc A ;Erniedrigen um 1 mov SBUF,A ;High-Byte zurückschreiben jmp KEINE_TASTE A_TIEFER: dec A ;Erhoehen um 1 mov SBUF,A KEINE_TASTE: ret end