Alcuni registri SFR

I registri SFR sono in tutto 22. In questa sezione vengono trattati solo quelli che non sono specifici di una determinata funzione, cioe' i seguenti:

  • STATUS
  • OPTION_REG
  • PCL
  • PCLATH
  • INTCON

Essendo utilizzati in maniera trasversale non possono essere inseriti in una particolare sezione del tutorial.
Tutti gli altri sono trattati nelle rispettive sezioni di appartenenza. Ad esempio, i registri PORT_A,PORT_B,TRIS_A e TRIS_B vengono trattati alla sezione sull'utilizzo delle porte di I/O perche' questa e' la loro area di competenza.


    Registro STATUS



Locazione di memoria: 0x03
Banco RAM: mappato in entrambi



Descrizione dei bit:

bit C Bit di Carry (riporto). Indica se una istruzione aritmetica ha prodotto un overflow oltre il bit piu' significativo (l'ottavo bit).
1 = overflow
0 = nessun overflow 
bit DC Simile al bit C, indica se c'e' stato un overflow oltre il quarto bit.
1 = overflow oltre il quarto bit
0 = overflow oltre il quarto bit
bit Z Alcune istruzioni modificano automaticamente questo bit quando il risultato delle stesse e' zero:
0 - il risultato non e' zero
1 - il risultato e' stato zero
bit #PD
Insieme a #TO specifica che cosa ha causato il reset precedente
bit #TO
Insieme a #PD specifica che cosa ha causato il reset precedente
bit RP0 Usato per la selezione del banco RAM:
0 = banco 0
1 = banco 1
bit RP1 Non implementato
bit IRP Non implementato

Valore di default al power-on-reset: 00011xxx
Valore di default per gli altri reset (#MCLR e Watch dog timer reset): 000qquuu

Legenda:
x = aleatorio
q = dipendente da altri fattori
u = rimane come era prima
- = non implementato



    Registro OPTION_REG



Locazione di memoria: 0x01
Banco RAM: banco 1



Descrizione dei bit:

bit PS0 Bit di scelta del rapporto di divisione del prescaler
bit PS1 Bit di scelta del rapporto di divisione del prescaler
bit PS2 Bit di scelta del rapporto di divisione del prescaler
bit PSA
Bit di assegnazione del prescaler
1 - al Watch-Dog
0 - al TIMER0
bit T0SE
Modalita' di incremento del TIMER0 quando preleva il segnale dal piedino RA4/T0CKl
1 - falling-edge
0 - rising-edge
bit T0CS Seleziona la modalita' di funzionamento del TIMER0
1 - modo contatore
0 - modo temporizzatore
bit INTDEG Decide la modalita' di interrupt per il piedino RB0/INT
1 - rising edge
0 - falling edge
bit #RBPU Abilita le resistenze interne di pull-up delle linee della porta B (per quelle linee che sono settate in modalita' output)
0 - resistenze abilitate
1 - resistenze disabilitate

Valore di default al power-on-reset: 11111111
Valore di default per gli altri reset (#MCLR e Watch dog timer reset): 11111111

Legenda:
x = aleatorio
q = dipendente da altri fattori
u = rimane come era prima
- = non implementato




    Registro PCL



Locazione di memoria: 0x02
Banco RAM: mappato in entrambi



Descrizione dei bit:
Il registro mappa gli 8 bit meno significativi del program counter. E' possibile leggere e scrivere tale registro.
Valore di default al power-on-reset: 00000000
Valore di default per gli altri reset (#MCLR e Watch dog timer reset): 00000000

Legenda:
x = aleatorio
q = dipendente da altri fattori
u = rimane come era prima
- = non implementato




    Registro PCLATH



Locazione di memoria: 0x0a
Banco RAM: mappato in entrambi



Descrizione dei bit:
I due bit meno significativi sono messi in corrispondenza dei due bit piu' significativi del program counter. Gli altri bit di PCLATH non sono implementati. E' possibile sia leggere che scrivere. I due bit meno significativi di PCLATH vengono scritti nei due piu' significativi del program counter solo quando una qualche istruzione modifica il registro PCL.

Valore di default al power-on-reset: ---00000
Valore di default per gli altri reset (#MCLR e Watch dog timer reset): ---00000

Legenda:
x = aleatorio
q = dipendente da altri fattori
u = rimane come era prima
- = non implementato



    Registro INTCON



Locazione di memoria: 0x0B
Banco RAM: mappato in entrambi



Descrizione dei bit:

bit RBIF Rilevatore di interrupt dai piedini RB4..RB7
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit INTF Rilevatore di interrupt dal piedino INT
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit T0IF Rilevatore di interrupt dal timer TMR0
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit RBIE
Bit di abilitazione dell'interrupt dai piedini RB4..RB7
1 - abilitato
0 - disabilitato
bit INTE
Bit di abilitazione dell'interrupt dal piedino INT
1 - abilitato
0 - disabilitato
bit T0IE Bit di abilitazione dell'interrupt dal timer TMR0
1 - abilitato
0 - disabilitato
bit EEIE Bit di abilitazione dell'interrupt per completamento della scrittura nella eeprom
1 - abilitato
0 - disabilitato
bit GIE Interruttore generale degli interrupt
0 - Tutti gli interrupt disabilitati
1 - Interrupt potenzialmente attivi (dipende poi dallo stato dei bit di attivazione specifici di ogni interrupt)

Valore di default al power-on-reset: 0000000x
Valore di default per gli altri reset (#MCLR e Watch dog timer reset): 0000000u