Documente Academic
Documente Profesional
Documente Cultură
Circuitul de Interfaţă TimerCounter Al Microcontrolerului 80C552
Circuitul de Interfaţă TimerCounter Al Microcontrolerului 80C552
Preliminarii
Microcontrolerul 80C552 conţine patru circuite Timer/Counter pe 16 bit
denumite Timer 0 - T0 , Timer 1 - T1, Timer 2 - T2 Timer 3 Watchdog -
T3. Ele sunt grupate, după funcţiile pe care le pot îndeplini astfel: T0 şi
T1 sunt timere cu posibilităţi asemănătoare şi îndeplinesc funcţiile unui
timer de uz general. T2 este un timer cu posibilităţi foarte dezvoltate, este
capabil de a măsura şi genera semnale cu o precizie foarte mare. Timerul
T3 poate fi folosit doar pentru a urmări funcţionarea corectă a
programului microcontrolerului.
Timerele T0 şi T1
Sunt circuite pe 16 bit ce pot fi programate să îndeplinească următoarele
funcţii:
- măsurare de intervale de timp sau de lăţime de impuls
- numărare de evenimente
- generare de cerere de întrerupere către unitatea centrală (CPU)
Acestor circuite le corespund următorii regiştri ai microcontrolerului
(SFR):
TH0, TL0
TH1, TL1
TMOD
TCON.
Ambele circuite sunt formate din 2 regiştri de 8 biţi (THx, TLx cu x=0 sau
x=1) care se incrementează la o tranziţie “1”- “0” a semnalului de la
intrare.
Când sunt configurate “Timer” (Temporizator), T0 şi T1 sunt
incrementate de semnalul de ceas sistem (quartz-ul sistemului divizat cu
12) la fiecare ciclu maşină (la o perioadă de (1/frecvenţa sistem)/12, deci
a 12 parte din perioada ceasului sistem, pentru un ceas de 12MHz, ciclul
maşină este de 1 sec).
Când sunt configurate “Counter” (Numărător), T0 şi T1 sunt
incrementate la fiecare tranziţie “1”- “0” a semnalului de pe pinul
corespunzător celor două timere.
c)Modul de lucru 3
TMOD
pentru timer T1 pentru timer T0
GATE C/T M1 M0 GATE C/T M1 M0
MSB LSB
Timer T2
CTCON
CTN3 CTP3 CTN2 CTP2 CTN1 CTP1 CTN0 CTP0
TM2IR
T20V CMI2 CMI1 CMI0 CTI3 CTI2 CTI1 CTI0
Tx=N2+k*65535-N1.
Logica de comparare la Timerul T2
STE
TG47 TG46 SP45 SP44 SP43 SP42 SP41 SP40
TG47- fanion, daca este “1”, P4.7 este setat la urmatoarea comutare;
daca este “0”, P4.7 este resetat la urmatoarea comutare
TG46- fanion, daca este “1”, P4.6 este setat la urmatoarea comutare;
daca este “0”, P4.6 este resetat la urmatoarea comutare
SP45 - dacă este setat "1", P4.5 este setat dacă CM0 si T2 coincid
SP44 - dacă este setat "1", P4.4 este setat dacă CM0 si T2 coincid
SP43 - dacă este setat "1", P4.3 este setat dacă CM0 si T2 coincid
SP42 - dacă este setat "1", P4.2 este setat dacă CM0 si T2 coincid
SP41 - dacă este setat "1", P4.1 este setat dacă CM0 si T2 coincid
SP40 - dacă este setat "1", P4.0 este setat dacă CM0 si T2 coincid
Daca STE.i sunt “0”, atunci P4.i nu este afectat de coincidenta CM0 si
T2 ( i = 0, 1, 2, 3, 4, 5 )
RTE
TP47 - dacă este setat "1", P4.7 basculează (toggle) dacă CM2 si T2
coincid
TP46 - dacă este setat "1", P4.6 basculează (toggle) dacă CM2 si T2
coincid
RP45 - dacă este setat "1", P4.5 este resetat dacă CM1 si T2 coincid
RP44 - dacă este setat "1", P4.4 este resetat dacă CM1 si T2 coincid
RP43 - dacă este setat "1", P4.3 este resetat dacă CM1 si T2 coincid
RP42 - dacă este setat "1", P4.2 este resetat dacă CM1 si T2 coincid
RP41 - dacă este setat "1", P4.1 este resetat dacă CM1 si T2 coincid
RP40 - dacă este setat "1", P4.0 este resetat dacă CM1 si T2 coincid
Daca RTE.i este “0”, atunci P4.i nu este afectat de coincidenţa CM1 si T2
sau CM2 si T2
IEN0