sseg ; + assume dpp3 ; Def. Datenpointer Ports als Ausgänge cseg at 0 jmp start cseg at 88h ;Vektoradresse für Interrupt T2 jmp t2int ; Sprung zu Interrupt cseg at 100h start: mov t3con, #5Dh ; gated Timer bei Impuls an Port 3.6, Startwert = 0 mov t2con, #2Ah ; Capturregister bei fallender Flanke an P3.7 -> Interrupt t2int mov t4con, #21h ; Reloadregister bei ? Flanke an P3.5 Reload mov t4, #0h ; Reloadwert = 0 bset psw.11 ; globale Interruptfreigabe mov t2ic, #44h ; Freigabe für Interrupt T2 m1: jnb p3.1, m1 ; Sprung wenn P2.1 = 0 zu m1 trap #1 ; Befehl zum Programmende t2int: mov dp2, #ffffh ; Port 2 -> Ausgabe mov mdl, t2 ; umladen des Zählerergebnis für Division mov r0, #4eh ; Divisor = 78 -> Ergebnis in ms divu r0 ; Division vorzeichenlos mov r1, mdl ; Ergebnis nach R1 mov p2, r1 ; Ausgabe an Port 2 reti ; Interruptrücksprung end