Page 28 - Microcontrolere - Indrumator de laborator
P. 28
Sursa semnalului de tact este internă, iar frecvența semnalului de tact este
egală cu 4MHz, motiv pentru care durata unui ciclu mașină este de 1 µs. Pentru
alegerea semnalului de tact se va folosi registrul OSCCON.
Pentru configurarea portului A ca port de comandă a sistemului de iluminare
de putere, registrele cu funcții speciale folosite sunt: TRISA, ANSEL și PORTA,
registre care se găsesc mapate în memoria de date a microcontrolerului.
Pentru cele două resurse interne ale microcontrolerului PIC16F887,
generatorul intern de semnal de tact și portul A, se reutilizează secvența de instrucțiuni
indicată în lucrarea de laborator nr. 2.
În această secvență se remarcă și instrucțiunea BCF INTCON, 7, instrucțiune
cu care este invalidat sistemul de întreruperi până în momentul finalizării
microcontrolerului, când după caz, se poate reveni asupra acestei setări,
microcontrolerul utilizează întreruperi, sau nu.
↓ prima coloană a fișierului sursă
; se alege sursa internă de frecvență ridicată pentru semnalul de tact
; și se stabilește frecvența acestui semnal la 4 MHz
BANKSEL(OSCCON)
MOVLW 67H
MOVWF OSCCON
; se invalidează sistemul de întreruperi al microcontrolerului
BANKSEL(INTCON)
BCF INTCON, 7
; se aleg pinii RA4, RA5, RA6 și RA7 din portul A cu rol de
; ieșire digitală pentru a genera semnale de comandă pentru
; sistemul de iluminare
BANKSEL(PORTA)
MOVLW 0
MOVWF PORTA
BANKSEL(TRISA)
MOVLW 0FH
MOVWF TRISA ; pinii RA4-RA7 sunt pini de ieșire
BANKSEL(ANSEL)
CLRF ANSEL ; se anulează celelalte
Întrucât în această lucrare se va realiza o rutină care va folosi sistemul de
întreruperi al microcontrolerului, respectiv un temporizator intern, secvența de mai sus
va fi completată cu instrucțiuni de configurare care vor fi explicate în cele ce urmează.
2.1. Temporizatorul Timer2 al microcontrolerului
Microcontrolerul PIC16F887 cuprinde în structura sa trei module de
temporizare. Pentru temporizări de ordinul secundei sau chiar mai mari, se poate folosi
modulul de temporizare Timer2, indicat în figura următoare.
25