$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 (A_D_W.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ;A/D-Wandler ;Auf Tastendruck T1 wird ein Wert gewandelt ;L1 an: Programm laeuft ;L2 an: A/D-Wandlung beendet ; ;Erstellt am: Montag, 16. Oktober 2006 06:21:42 ;Programmiert: Frederic, Maxime ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Geaendert am: Montag, 16. Oktober 2006 06:21:42 ; ; ;------------------------------------------------------------------------ ;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: ;Einstellung des A/D Wandlers mov ADCON,#10000000b ;ADCON-Register mit 1000 0000b beschreiben ;Wandlung einzeln Kanal 0 clr P3.2 ;L1 an setb P3.3 ;L2 aus ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: jnb P1.1,WANDLUNG ;T1 abfragen -> WANDLUNG jmp ABFRAGE ;Sprung zur ABFRAGE WANDLUNG: setb P3.3 ;L2 aus mov DAPR,#0 ;A/D Wandlung ausloesen jb BSY,$ ;Warten bis A/D fertig clr P3.3 ;L2 an mov A,ADDAT ;Wert in Akku jmp ABFRAGE ;Sprung wieder zur ABFRAGE END