$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 (ZAEHLER_2.A51) ;------------------------------------------------------------------------ ;Programmbeschreibung ;------------------------------------------------------------------------ ;Programm: ;Sobald T1 betaetigt wird TF2 nach 50ms gesetzt ;und zurueckgesetzt ;T2 beendet die Aktion ;Datum: 24.11.2004 ;Programmiert: ; ;Verwendete Einspruenge: keine ; ;Verwendete Unterprogramme: keine ; ; ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ; ;Kommentar: ; ;Aenderungen: ;Datum: ; ; ;------------------------------------------------------------------------ ;Initialisierungsteil für allgemeine Konstanten ;------------------------------------------------------------------------ CSEG AT 0H ;Legt absolute Codesegmentadresse auf 0h jmp INIT ; ;------------------------------------------------------------------------ ;Interrupt-Vektoren ;------------------------------------------------------------------------ ;------------------------------------------------------------------------ ;Initialisierungsteil für On-Chip Peripherie ;------------------------------------------------------------------------ ORG 100H ;Programmstart bei 100H INIT: ;Programmierung von Timer 2 setb T2R1 ;Reload-Funktion ;15536 = 3CB0h mov TL2,#0B0h ;Timer 2 Low-Byte Register laden mov TH2,#3Ch ;Timer 2 High-Byte mov CRCL,#0B0h ;Reload Register LB mov CRCH,#3Ch ;Reload Register HB clr TF2 ;TF2 Flag zurücksetzen ;------------------------------------------------------------------------ ;Programmschleife ;------------------------------------------------------------------------ ABFRAGE: jnb P1.1,ZAEHL ;Zaehler laeuft jnb P1.2,STOP ;Zaehler beenden jmp ABFRAGE ZAEHL: setb T2I0 ;Zaehlt SCHLEIFE: jnb TF2,SCHLEIFE ;UEBERLAUF? clr TF2 setb P1.1 ;Debug jmp ABFRAGE STOP: clr T2I0 ;Kein zaehlen jmp ABFRAGE end