PIC16F877 internal EEPROM code and Proteus simulation

This post provides the internal EEPROM reading and writing code for PIC16F877 microcontroller.

PIC16F877 internal EEPROM

As we know[1], PIC16F877 microcontroller has 256 x 8 bytes of built in EEPROM data space with an address range of 0x000 to 0x7FF. This code is written in C language using MPLAB with HI-TECH C compiler. You can download this code from the ‘Downloads‘ section at the bottom of this page.

It is assumed that you know how to blink an LED with PIC16F877 microcontroller. If you don’t then please read this page first, before proceeding with this article.

The result of simulating the code in Proteus is shown below.

PIC16F877 internal EEPROM schematic

In the above circuit[2], LED attached on RB0 indicates weather a byte was successfully written in the internal EEPROM or not. In the above figure, LED is ON which indicates that EEPROM was successfully programmed.


The code for the main function is shown below.


EEPROM code for PIC16F877 was compiled in MPLAB v8.85 with HI-TECH C v9.83 compiler and simulation was made in Proteus v7.10. To download code and Proteus simulation click here.


For more detail: PIC16F877 internal EEPROM code and Proteus simulation

Current Project / Post can also be found using:

  • internal EEPROM write for pic 16f877
  • pic internal eeprom code example
  • pic16f877a program code for eeprom
  • read and write on pic 16f877a eeprom code pdf

Leave a Comment

= 5 + 6

Read previous post:
PIC16F877 with 24LC64
Interfacing of PIC16F877 with (i2c based) 24LC64 EEPROM (Code + Proteus simulation)

This post provides the code for interfacing 24LC64 EEPROM with PIC16F877 microcontroller. This 24LC64 EEPROM has i2c based interface. This code...

Scroll to top