Projects   /   Communication & Interfacing   /   PIC16F877A

PIC16F877 internal EEPROM code and Proteus simulation

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

Published

At a glance

CategoryCommunication & Interfacing
PIC modelPIC16F877A
IncludesCircuit diagram · Proteus · Download files
Reading time~2 min
Jump to a section
  1. Code
  2. Downloads
  3. Quick Solutions to Questions related to PIC16F877 EEPROM project:
  4. Related projects

Summary of PIC16F877 internal EEPROM code and Proteus simulation

This article provides C code (HI-TECH C) and a Proteus simulation to read/write the internal 256x8 EEPROM of the PIC16F877 microcontroller, showing an LED on RB0 indicating successful EEPROM programming. The code was compiled with MPLAB v8.85 and HI-TECH C v9.83; simulation used Proteus v7.10. A download link for the code and Proteus project is provided.

Parts used in the PIC16F877 EEPROM project:

  • PIC16F877 microcontroller
  • LED
  • Current-limiting resistor for LED
  • Power supply (Vcc and GND connections for PIC)
  • Proteus simulation software (Proteus v7.10) for testing
  • MPLAB IDE (MPLAB v8.85) for compilation
  • HI-TECH C compiler (v9.83)

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.

Code

The code for the main function is shown below.

Downloads

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

  • What is the EEPROM size of PIC16F877?
    The PIC16F877 has 256 x 8 bytes of built-in EEPROM data space with address range 0x000 to 0x7FF.
  • Which compiler and IDE were used for this code?
    The code was compiled with HI-TECH C v9.83 using MPLAB v8.85.
  • How is successful EEPROM write indicated in the project?
    An LED attached to RB0 is turned on to indicate that a byte was successfully written to the internal EEPROM.
  • In which software was the project simulated?
    The project was simulated in Proteus v7.10.
  • Is the EEPROM read/write code provided in C?
    Yes, the EEPROM read and write code for PIC16F877 is provided in C language.
  • Where can I download the code and simulation files?
    The article provides a download link in the Downloads section for the code and Proteus simulation.
  • Do I need prior PIC basics before using this article?
    Yes, the article assumes you know how to blink an LED with PIC16F877 and recommends reading a referenced page if you do not.
Beginner Tutorials · PIC16F877A

PIC16F877 Driving LCD in 4-Bit Mode using PIC16F877 with Proteus Simulation

Introduction This microcontroller project shows how a PIC16F877 can drive an LCD display using 4-bit mode inside a Proteus simulation.The project demonstrates...

Programmers & ICSP · PIC16F877A

EPE PIC/LCD Demo using PIC16F877 with Proteus Simulation

IntroductionThe EPE PIC/LCD Demo is a classic microcontroller project that demonstrates how a PIC16F877 can fully control a PG12864F graphical LCD.Designed as...

Motors & Robotics · PIC16F877A

Efficient Sun-Following Robot: A Solar Tracker with Microcontroller Control

Abstract The impending global challenge of dwindling non-renewable fuel resources underscores the urgency of transitioning towards renewable energy alternatives like solar power....

Communication & Interfacing · PIC18F4520

CAN FD Node based on a PIC18 Microcontroller

The introduction sets the stage for an embedded systems project that involves developing a Embedded C CAN FD project using the MCP2517FD...

Communication & Interfacing

LAN9662 Gigabit Switch: Optimized for Industrial Ethernet

Introduction It should come as little surprise therefore that one element of what is now more commonly referred to in some circles...

Communication & Interfacing

PIC Microcontroller: Fundamentals & Applications for Students

Introduction Microcontrollers are the key components in the embedded systems market. A variety of embedded systems was formed and developed after the...

Ibrar Ayyub

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough...