
| F.Clock uP | 11.059.200, |
| F.Clock Cnt = (F.Clock uP/16) | 921.600, |
| T.Clock Cnt = (1/(F.Clock Cnt)) | 0,000001085069444 |
| T Semiperiodo 50Hz | 0,01 |
| Suddivisioni | 40, |
| Dt =(T Semiperiodo 50Hz/Suddivisioni) | 0,00025 |
| Conteggio Timer per Dt = (dt/T.Clock Cnt) | 230,4 |
| Conteggio Timer per Dt senza decimali | 230 |
| Dt cont tron | 0,000249565972222 |
org 8200h
;Per spefiche e tempi vedere foglio Excel
ModFt0 =0002h ;Maschera per T0 in modo 2
;-------------------------------------------------------------------------------
;Contatori di ritardo innesco
crTriacA = 10h
;Set point di ritardo innesco
rTriacA = 14h
;Set point di durata innesco
iTriac = 2
;-------------------------------------------------------------------------------
;Pilotaggio TRIACs, 0=TRIAC on, 1=TRIAC off
TriacA = p1.0
call Init
main:
jmp main
;-------------------------------------------------------------------------------
;Chiamato ogni 10mS
si_ex0:
;Inizializzazione contatori ritardo innesco
mov crTriacA,rTriacA
cpl p1.6 ;Marker interrupt passaggio zero (per debugging)
reti
;-------------------------------------------------------------------------------
;Chiamato ogni 250uS
si_t0:
;Conteggi di durata innesco
jb TriacA,ctA
mov a,crTriacA
jz ciB
djnz crTriacA,ciB
setb TriacA
jmp ciB
;Conteggi di ritardo innesco
ctA:
mov a,crTriacA
jz u_si_t0
djnz crTriacA,u_si_t0
clr TriacA
mov crTriacA,#iTriac
u_si_t0:
cpl p1.7 ;Marker interrupt timer (per debugging)
reti
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;Inizializzazione vettori di interruzione
Vett_ex0 = 80a1h ;Vettore interruzione esterna 0
Vett_t0 = 80A4H ;Vettore interruzione timer 0
Init:
;Init vettore Int0
mov dptr,#Vett_ex0
mov a,#high(si_ex0)
movx @dptr,a
inc dptr
mov a,#low(si_ex0)
movx @dptr,a
;Init vettore T0
mov dptr,#Vett_t0
mov a,#high(si_t0)
movx @dptr,a
inc dptr
mov a,#low(si_t0)
movx @dptr,a
;-------------------------------------------------------------------------------
;Init timer T0
mov a,tmod
anl a,#0f0h
orl a,#ModFt0
mov tmod,a
mov th0,#26
mov tl0,#26
;-------------------------------------------------------------------------------
;Init interrupt
setb ex0
setb et0
setb it0
setb ea
setb TR0
;-------------------------------------------------------------------------------
;Inizializzazione Setpoints
mov rTriacA,#20
;-------------------------------------------------------------------------------
;Inizializzazione I/O
mov p1,0ffh
ret
end