$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 (MT4_WS07_P08.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ; T1 ? Zwei Sensoren werden eingelesen und der Mittelwert ;im Akku angezeigt. ; ; ; ;Erstellt am: Montag, 29. Oktober 2007 10:00:17 ;Programmiert: David Schiebol ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Geaendert am: Montag, 29. Oktober 2007 10:00:17 ; ; ;------------------------------------------------------------------------ ;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: mov ADCON,#10000000B ;Kanal AN0 angewaehlt, Stop nach der Wandlung ;1 für Baudrate 4800bps ->9600bps ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: clr P3.2 ;Leuchte 1 Port 3.2 ruecksetzen, Programm laeuft jnb P1.1,SENS jmp ABFRAGE ;Sprung zum Programmbeginn SENS: Setb MX0 ;Waehlt Kanal 1 mov DAPR,#0 ;Legt Messbereich fest jb BSY,$ ;Liest Wert ein mov A,ADDAT ;Schreibt Wert in Akku clr MX0 ;Waehlt Kanal 0 mov DAPR,#0 ;Legt Messbereich fest jb BSY,$ ;Liest Wert ein mov R1,ADDAT ;Schreibt Wert in Register R1 add A,R1 ;Addiert Akku und R1 rrc A ;Teilt durch 2 jmp ABFRAGE end