Summary of How to interface keypad with PIC16F877
This tutorial demonstrates how to interface a 4x4 or 4x3 keypad with the PIC16F877 microcontroller using C language in MPLAB with the HI-TECH C compiler. The keypad sends key presses to the microcontroller, which then displays the pressed key value on an LCD connected via PORTD pins. The scanning algorithm detects key presses through PORTB pins configured for keypad rows and columns. The project includes simulation in Proteus to show the functioning of the keypad interface.
Parts used in the Keypad Interface with PIC16F877:
- PIC16F877 Microcontroller
- 4x4 or 4x3 Keypad
- LCD Display (connected via PORTD pins RD0, RD1, RD4 to RD7)
- Connecting wires
- Power supply
- MPLAB IDE with HI-TECH C Compiler
- Proteus Software (for simulation)
This PIC microcontroller tutorial provides a simple method to interface any keypad (e-g 4×4 or 4×3 etc) with PIC16F877 microcontroller.
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.
In this post, it is assumed that you know, how to interface LCD with PIC16F877 microcontroller, If you don’t then please read this page.
The circuit required to interface keypad with PIC16F877[1] is shown below.
The result of simulating the code in Proteus is shown above in the figure. This code is written in such a way that when you press any key from the keypad, then the value of that key is displayed on the LCD. For example, in the above figure LCD screen is displaying ‘5’, because this picture was taken after pressing ‘5’ from the keypad.
In the above circuit, RD0, RD1 and RD4:7 pins are used to interface LCD with PIC16F877. LCD is used here just to show the pressed key value. 8 pins of PORTB are used to interface 4×4 keypad. 4 pins are used to attach columns and 4 pins are used to attach rows and scanning algorithm code is used to check for any pressed key.
Code
The main function code is shown below.
Downloads
Keypad interfacing code using 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: How to interface keypad with PIC16F877