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
   25   26   27   28   29   30   31   32   33   34   35