Page 30 - Microcontrolere - Indrumator de laborator
P. 30
BANKSEL(PR2)
MOVLW 255
MOVWF PR2 ; se încarcă 255 în registrul de perioadă PR2
BANKSEL(T2CON)
CLRF TMR2 ; se șterge conținutul registrului TMR2
; registrul TMR2 se găsește în același bank de
; memorie cu registrul T2CON și PIE1
CLRF T2CON ; T2CON este resetat
MOVLW b'1111011'
MOVWF T2CON ; se alege un factor de prescalare de 1:16 și un
; factor de postscalare tot de 1:16 presupunând
; frecvența semnalului de tact de 4 MHz
Pentru a calcula temporizarea dorită cu o cât mai bună precizie, pentru
circuitul de temporizare Timer2 se pot folosi formulele de calcul indicate în ecuațiile
următoare:
= ∙
_
∙
_
∙ , (3.1)
= . (3.2)
La rândul ei, temporizarea T poate fi multiplicată de mai multe ori. Din
ecuațiile 3.1 și 3.2 se pot observa că dacă se dorește o anumită temporizare, se impun
cei doi factori de scalare și apoi se determină conținutul lui PR2. Dacă nu se obține
temporizarea dorită, se încearcă alte combinații de scalare, sau se pornește de la
conținutul PR2, factorul de prescalare și se obține factorul de post scalare.
2.2. Sistemul de întreruperi al microcontrolerului – noțiuni
introductive
Pe durata execuției unui program, microcontrolerul permite / acceptă
întreruperi prin intermediul sistemului de întreruperi. Sistemul de întreruperi este
folosit pentru a face cunoscut unității centrale a microcontrolerului că una dintre
resursele interne specializate sau externe solicită o sarcină specifică, de exemplu:
preluarea unui caracter de la un port serial, efectuarea unei digitizări de semnal,
resetarea registrului TMR2 al modulului de temporizare Timer2 etc.
Odată acceptată o întrerupere, microcontrolerul abandonează temporar
execuția programului curent, salvează contextul în care a apărut întreruperea,
deservește întreruperea, iar la finalul acestui proces, restabilește contextul de la care s-
a pornit și revine la executarea programului curent.
Microcontrolerul PIC16F887 dispune de un sistem de întreruperi complex.
Acest sistem are un număr ridicat de surse de întrerupere, datorat unei multitudini de
27