9. Il registro di stato (STATUS REGISTER) : Banco 0 (03h); 1 (83h); 2(103h); 3 (183h)
Incominciamo la trattazione dei vari SFR (vedi paragrafo 08) con il registro che contiene tutte le informazioni relative alla unità che esegue le operazioni (ALU = Arithmetic Logic Unit), che contiene i bit per il cambio del banco di memoria (p. cit.) e lo stato di reset del dispositivo, ed è comune a tutti i banchi di memoria.
E' un registro ad 8 bit ecco il significato di ogni bit partendo da quello più significativo (bit 7) fino a quello meno significativo (bit 0).
ATTENZIONE! La scrittura su questo registro potrebbe non restituire il risultato pensato, in quanto 2 bit sono a sola lettura e gli ultimi 3 bit rispecchiano comunque lo stato dell'ALU a prescindere da quello che viene ivi scritto!
10. Il registro delle opzioni (OPTION REGISTER) : Banco 1 (81h); 3 (181h)
Un altro registo molto importante è quello che tratta del prescaler/postscaler del Timer0 (che è condiviso con il watchdog), del Timer0 stesso dell'interrupt esterno e dei pull-up. Ecco nella seguente tabella il significato dei bit, che, in questo caso sono tutti leggibili e scrivibili.
11. Gli interrupt
Che cosa sono gli interrupt? L'interrupt non è altro che un segnale elettrico (esterno od interno al dispositivo) che permette di interrompere (appunto) la normale esecuzione del programma per eseguirne un altro parallelo, ed alla fine di questo, riprendere con il programma principale dal punto in cui era stato abbandonato.
Gli interrupt vengono spesso usati ove è necessario dare priorità di intervento ad un segnale specifico, oppure attendere l'esecuzione di una procedura più lenta di quella principale e sono implementati nell'hardware del PIC e possono essere attivati/disattivati a seconda delle esigenze.
12. Il registro di controllo degli interrupt (INTCON) : Banco 0 (0Bh); 1 (8Bh); 2(10Bh); 3 (18Bh)
Questo registro è presente su tutti i banchi di memoria (vedi paragrafo 07).
Ecco il significato di tutti i bit:
13. Attivazione interrupts periferiche (PIE1) : Banco 1 (8Ch)
Questo registro attiva le periferiche singole attivate tramite il bit 6 di INTCON (vedi paragrafo 12).
14. Flags per identificazione della periferica che ha causato l'interrupt (PIR1) : Banco 0 (0Ch)
Questo registro conserva i flag delle periferiche che hanno causato un interrupt, fra quelle elencate nel registro precedente PIE1 (vedi paragrafo precedente).
ATTENZIONE! E' importante notare che il flag viene settato lo stesso a prescindere dalla condizione del bit corrispondente, naturalmente, in caso di interrupt disattivato non verrà generato il relativo interrupt.
15. Interrupt della scrittura su EEPROM dati (PIE2) : Banco 1 (8Dh)
Questo registro è, in pratica, costituito da un solo bit che attiva/disattiva l'interrupt di fine scrittura della EEPROM.