4.0 MEMORY ORGANIZATION
There are two memory blocks in the PIC16C8X. These
are the program memory and the data memory. Each
block has its own bus, so that access to each block can
occur during the same oscillator cycle.
The data memory can further be broken down into the
general purpose RAM and the Special Function
Registers (SFRs). The operation of the SFRs that
control the “core” are described here. The SFRs used
to control the peripheral modules are described in the
section discussing each individual peripheral module.
The data memory area also contains the data
EEPROM memory. This memory is not directly mapped
into the data memory, but is indirectly mapped. That is
an indirect address pointer specifies the address of the
data EEPROM memory to read/write. The 64 bytes of
data EEPROM memory have the address range
0h-3Fh. More details on the EEPROM memory can be
found in Section 7.0.
4.1 Program Memory Organization
The PIC16CXX has a 13-bit program counter capable
of addressing an 8K x 14 program memory space. For
the PIC16C83 and PIC16CR83 only the first 512 x 14
(0000h-01FFh) are physically implemented, and for the
PIC16C84, PIC16C84A, and PIC16CR84 only the first
1K x 14 (0000h-03FFh) are physically implemented.
Accessing a location above the physically implemented
address will cause a wraparound. For example, for the
PIC16C84 locations 20h, 420h, 820h, C20h, 1020h,
1420h, 1820h, and 1C20h will be the same instruction.
The reset vector is at 0000h and the interrupt vector is
at 0004h (Figure 4-1).
PIC16C8X
FIGURE 4-1: PROGRAM MEMORY MAP
AND STACK
PC<12:0>
CALL, RETURN
13
RETFIE, RETLW
Stack Level 1
•••
Stack Level 8
Reset Vector
0000h
Peripheral Interrupt Vector 0004h
1FFh
(PIC16C83,
PIC16CR83)
3FFh
(PIC16C84,
PIC16C84A,
PIC16CR84)
1FFFh
© 1995 Microchip Technology Inc.
Thi d
t
t d ith F M k 4 0 4
DS30081F-page 11