The memory organization of a PIC16F877A chip is divided into three sections. They are - Program Memory
- Data Memory and
- Data EEPROM
Program Memory is a data storage system. It is used to store program which is written by the
user. The program counter executes these stored commands one by one. PIC16F877A device
have 13 bit wide program counter and it is capable of addressing 8K×14 bit program memory
space. This memory is used to store the programs that are written primarily. This memory is
also called Flash Memory.
Data Memory contains a special register like Special Function Register (SFR) and General
Purpose Register (GPR). Data memory is called Random Access Memory (RAM). The stored
variable of program in data memory is deleted after turning off the microcontroller. These two
memories have separate data buses, which make the access to each one of them very easy.
Electrically Erasable Programmable Read-Only Memory is called EEPROM. It is user
modifiable read only memory (ROM) that can be erased and reprogrammed repeatedly through
the application of higher than normal electrical voltage. EEPROM has a limited life that is the
number of hundreds or thousands of times it can be reprogrammed. The life of the EEPROM
can be an important design consideration. A special form of EEPROM is flash memory which
uses normal PC voltages for erasing and reprogramming.