Wednesday, March 28, 2012

Registri SFR


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 CBit 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 DCSimile 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 ZAlcune 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 #PDInsieme a #TO specifica che cosa ha causato il reset precedente
bit #TOInsieme a #PD specifica che cosa ha causato il reset precedente
bit RP0Usato per la selezione del banco RAM:
0 = banco 0
1 = banco 1
bit RP1Non implementato
bit IRPNon 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 PS0Bit di scelta del rapporto di divisione del prescaler
bit PS1Bit di scelta del rapporto di divisione del prescaler
bit PS2Bit di scelta del rapporto di divisione del prescaler
bit PSABit di assegnazione del prescaler
1 - al Watch-Dog
0 - al TIMER0
bit T0SEModalita' di incremento del TIMER0 quando preleva il segnale dal piedino RA4/T0CKl
1 - falling-edge
0 - rising-edge
bit T0CSSeleziona la modalita' di funzionamento del TIMER0
1 - modo contatore
0 - modo temporizzatore
bit INTDEGDecide la modalita' di interrupt per il piedino RB0/INT
1 - rising edge
0 - falling edge
bit #RBPUAbilita 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 RBIFRilevatore di interrupt dai piedini RB4..RB7
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit INTFRilevatore di interrupt dal piedino INT
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit T0IFRilevatore di interrupt dal timer TMR0
1 - C'e' appena stato un interrupt
0 - Non c'e' stato nessun interrupt
bit RBIEBit di abilitazione dell'interrupt dai piedini RB4..RB7
1 - abilitato
0 - disabilitato
bit INTEBit di abilitazione dell'interrupt dal piedino INT
1 - abilitato
0 - disabilitato
bit T0IEBit di abilitazione dell'interrupt dal timer TMR0
1 - abilitato
0 - disabilitato
bit EEIEBit di abilitazione dell'interrupt per completamento della scrittura nella eeprom
1 - abilitato
0 - disabilitato
bit GIEInterruttore 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

No comments:

Post a Comment