The table gives some of the names, addresses and functions of the special function registers. Some of these are used internally by the PIC microcontroller itself, for example the PCL and PCLATH register files hold the address of the next instruction to be executed. Others will be used by our programs to interact with the PIC microcontroller hardware and communicate with the outside world.
Note that some of the registers have two addresses, each 0x80 apart. This means that they exist in both "banks".
Register name |
Purpose |
Address in the PICmicro |
INDF |
indf register |
0x00 |
TMR0 |
8-bit real-time clock/counter |
0x01 |
PCL |
low order 8 bits program counter |
0x02, 0x82 |
STATUS |
status register |
0x03, 0x83 |
FSR |
indirect data memory address pointer |
0x04, 0x84 |
PORTA |
port A |
0x05 |
PORTB |
port B |
0x06 |
EEDATA |
EEPROM data register |
0x08 |
EEADR |
EEPROM address register |
0x09 |
PCLATH |
high order 5 bits program counter |
0x0A, 0x8A |
INTCON |
intcon register |
0x0b, 0x8b |
OPTION_REG |
option register |
0x81 |
TRISA |
port A data direction register |
0x85 |
TRISB |
port B data direction register |
0x86 |
EECON1 |
EEPROM control register |
0x88 |
EECON2 |
EEPROM control register |
0x89 |