$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