Datasheet
2009-2011 Microchip Technology Inc. DS39957D-page 95
PIC18F87K90 FAMILY
6.3.4 SPECIAL FUNCTION REGISTERS
The Special Function Registers (SFRs) are registers
used by the CPU and peripheral modules for controlling
the desired operation of the device. These registers are
implemented as static RAM. SFRs start at the top of
data memory (FFFh) and extend downward to occupy
all of Bank 15 (F00h to FFFh) and the top part of
Bank 14 (EF4h to EFFh).
A list of these registers is given in Table 6-1 and
Table 6-2.
The SFRs can be classified into two sets: those
associated with the “core” device functionality (ALU,
Resets and interrupts) and those related to the
peripheral functions. The Reset and Interrupt registers
are described in their respective chapters, while the
ALU’s STATUS register is described later in this section.
Registers related to the operation of the peripheral
features are described in the chapter for that peripheral.
The SFRs are typically distributed among the
peripherals whose functions they control. Unused SFR
locations are unimplemented and read as ‘0’s.
TABLE 6-1: PIC18F87K90 FAMILY SPECIAL FUNCTION REGISTER MAP
(5)
Addr.
Name
Addr.
Name
Addr.
Name
Addr.
Name
Addr.
Name
Addr.
Name
FFFh TOSU FDFh INDF2
(1)
FBFh ECCP1AS F9Fh IPR1 F7Fh EECON1 F5Fh RTCCFG
FFEh TOSH FDEh POSTINC2
(1)
FBEh ECCP1DEL F9Eh PIR1 F7Eh EECON2 F5Eh RTCCAL
FFDh TOSL FDDh POSTDEC2
(1)
FBDh CCPR1H F9Dh PIE1 F7Dh
LCDDATA23
(3)
F5Dh RTCVALH
FFCh STKPTR FDCh PREINC2
(1)
FBCh CCPR1L F9Ch PSTR1CON F7Ch
LCDDATA22
(3)
F5Ch RTCVALL
FFBh PCLATU FDBh PLUSW2
(1)
FBBh CCP1CON F9Bh OSCTUNE F7Bh
LCDDATA21
F5Bh ALRMCFG
FFAh PCLATH FDAh FSR2H FBAh PIR5 F9Ah TRISJ
(3)
F7Ah
LCDDATA20
F5Ah ALRMRPT
FF9h PCL FD9h FSR2L FB9h PIE5 F99h TRISH
(3)
F79h
LCDDATA19
F59h ALRMVALH
FF8h TBLPTRU FD8h STATUS FB8h IPR4 F98h TRISG F78h
LCDDATA18
F58h ALRMVALL
FF7h TBLPTRH FD7h TMR0H FB7h PIR4 F97h TRISF F77h
LCDDATA17
(3)
F57h CTMUCONH
FF6h TBLPTRL FD6h TMR0L FB6h PIE4 F96h TRISE F76h
LCDDATA16
(3)
F56h CTMUCONL
FF5h TABLAT FD5h T0CON FB5h CVRCON F95h TRISD F75h
LCDDATA15
F55h CTMUICON
FF4h PRODH FD4h SPBRGH1 FB4h CMSTAT F94h TRISC F74h
LCDDATA14
F54h CMCON1
FF3h PRODL FD3h OSCCON FB3h TMR3H F93h TRISB F73h
LCDDATA13
F53h PADCFG1
FF2h INTCON FD2h IPR5 FB2h TMR3L F92h TRISA F72h
LCDDATA12
F52h ECCP2AS
FF1h INTCON2 FD1h WDTCON FB1h T3CON F91h LATJ
(3)
F71h
LCDDATA11
(
3
)
F51h ECCP2DEL
FF0h INTCON3 FD0h RCON FB0h T3GCON F90h LATH
(3)
F70h
LCDDATA10
(
3
)
F50h CCPR2H
FEFh INDF0
(1)
FCFh TMR1H FAFh SPBRG1 F8Fh LATG F6Fh LCDDATA9 F4Fh CCPR2L
FEEh POSTINC0
(1)
FCEh TMR1L FAEh RCREG1 F8Eh LATF F6Eh LCDDATA8 F4Eh CCP2CON
FEDh POSTDEC0
(1)
FCDh T1CON FADh TXREG1 F8Dh LATE F6Dh LCDDATA7 F4Dh ECCP3AS
FECh PREINC0
(1)
FCCh TMR2 FACh TXSTA1 F8Ch LATD F6Ch LCDDATA6 F4Ch ECCP3DEL
FEBh PLUSW0
(1)
FCBh PR2 FABh RCSTA1 F8Bh LATC F6Bh LCDDATA5
(3)
F4Bh CCPR3H
FEAh FSR0H FCAh T2CON FAAh T1GCON F8Ah LATB F6Ah LCDDATA4
(3)
F4Ah CCPR3L
FE9h FSR0L FC9h SSP1BUF FA9h IPR6 F89h LATA F69h LCDDATA3 F49h CCP3CON
FE8h WREG FC8h SSP1ADD FA8h HLVDCON F88h PORTJ
(3)
F68h LCDDATA2 F48h CCPR8H
FE7h INDF1
(1)
FC7h SSP1STAT FA7h —
(2)
F87h PORTH
(3)
F67h LCDDATA1 F47h CCPR8L
FE6h POSTINC1
(1)
FC6h SSP1CON1 FA6h PIR6 F86h PORTG F66h LCDDATA0 F46h CCP8CON
FE5h POSTDEC1
(1)
FC5h SSP1CON2 FA5h IPR3 F85h PORTF F65h BAUDCON1 F45h CCPR9H
(4)
FE4h PREINC1
(1)
FC4h ADRESH FA4h PIR3 F84h PORTE F64h OSCCON2 F44h CCPR9L
(4)
FE3h PLUSW1
(1)
FC3h ADRESL FA3h PIE3 F83h PORTD F63h EEADRH F43h CCP9CON
(4)
FE2h FSR1H FC2h ADCON0 FA2h IPR2 F82h PORTC F62h EEADR F42h CCPR10H
(4)
FE1h FSR1L FC1h ADCON1 FA1h PIR2 F81h PORTB F61h EEDATA F41h CCPR10L
(4)
FE0h BSR FC0h ADCON2 FA0h PIE2 F80h PORTA F60h PIE6 F40h CCP10CON
(4)
F3Fh TMR7H
(4)
F32h TMR12
(4)
F25h ANCON0 F18h PMD1 F0Bh CCPR6H EFEh SSP2CON2
Note 1: This is not a physical register.
2: Unimplemented registers are read as ‘0’.
3: This register is not available in 64-pin devices (PIC18F6XK90).
4: This register is not available in devices with a program memory of 32 Kbytes (PIC18FX5K90).
5: Addresses, EF4h through F5Fh, are also used by SFRs, but are not part of the Access RAM. Users must always load
the proper BSR value to access these registers.