PIC16F877 external interrupt code and Proteus simulation

This post answers the question, ā€œHow to capture a pulse to generate an interrupt in PIC16F877ā€ ?

PIC16F877 external interrupt
Also, using PIC16 simulator (Proteus) you can verify this external interrupt code and change it according to your needs.Ā 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.

This PIC16F877 microcontroller tutorial provides theĀ external interruptĀ codeĀ (e-g when you need to control servo motor which has position encoder, with your PIC microcontroller you can use this code). As we know,Ā PIC16F877Ā microcontroller has one RB0/INT pin, this pin is used to service external interrupts in the circuit shown below.

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 following diagram (made inĀ Proteus) shows the PIC microcontroller circuit diagram[1].

PIC16F877 external interrupt schematic

In the above circuit[2], normally a low value is present on theĀ RB0/INTĀ pin because of theĀ pull down resistor. But when push button is pressed then a low to high pulse on theĀ RB0/INTĀ pin generates the interrupt. And code is written in such a way that whenever interrupt is generated then RD0 pin is toggled.


The code for the main function is shown below.


External interrupt code forĀ PIC16F877Ā as 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 external interrupt code and Proteus simulation

About The Author

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 research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.