$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 (Kuehl.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ;Wandelt kontinuierlich A/D-Werte und schreibt diese in ;R0 bis R7 ; ; ;Erstellt am: Dienstag, 17. Oktober 2006 12:10:18 ;Programmiert: ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Geaendert am: Dienstag, 17. Oktober 2006 12:10:18 ; ; ;------------------------------------------------------------------------ ;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, #10000001b ;waehlt den ersten Kanal mov R0,#01H ;R0 enthalt die Adresse von R1 ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ MESSUNG: mov DAPR, #0 ;erstes Wert messen (Start) jb BSY, $ ;warten bis Wandlung beendet mov @R0,ADDAT ;Wert in Register, deren Adresse R0 gibt inc R0 ;R0 +1 (zeigt den naechsten Register) inc ADCON ;ADCON +1 (waehlt den folgenden Kanal) cjne R0,#08H,MESSUNG ;Wenn nicht Register 08, neue Messung jmp INIT ;Sprung zur INIT end