PIC16F886 8 Bit Microcontroller is a microcontroller good for experimenting and developing applications because it has a high flash memory rewrite cycle. Also, there are a lot of tutorials and support available online. The controller has 16KBytes flash memory which is enough for many applications. Along with 24 programmable Input/output pins that are developed to handle 20mA current (direct LED driving capability) the system can interface many peripherals easily. With Watchdog timer to reset under error automatically, the controller can be used to develop applications of permanent installation.

PIC16F886 Pinout

PIC16F886 Pin Configuration

PIC16F886 is a 28 pin IC and each pin can perform multiple functions as shown in the above PIC16F886 pin diagram. The description for each of these pins is given below.

Pin Number Pin Name Description
1 RE3/MCLR/VPP RE3: Pin3 of  Port E

MCLR: Master Clear Input or Reset pin

VPP: Programming voltage

2 RA0/AN0/ULPWU/C12IN0- RA0: Pin0 of Port A

AN0: Analog input 0

ULPWU: Ultra Low-Power Wake-up input

C12IN0-: Comparator C1 or C2 negative input

3 RA1/AN1/C12IN1- RA1: Pin1 of Port A

AN1: Analog input 1

C12IN1-: Comparator C1 or C2 negative input

4 RA2/AN2/VREF-/CVREF/C2IN+ RA2: Pin2 of Port A

AN2: Analog input 2

VREF-: A/D reference voltage (low) input

CVREF: Comparator voltage reference output

C2IN+: Comparator C2 positive input



RA3: Pin3 of Port A

AN3: Analog input 3

VREF+: A/D reference voltage (high) input

C1IN+: Comparator C1 positive input

6 RA4/T0CKI/C1OUT RA4: Pin4 of Port A

T0CKI: Timer0 external clock input

C1OUT: Comparator C1 output

7 RA5/AN4/SS/ C2OUT RA5: Pin5 of Port A

AN4: Analog input 4

SS: SPI slave select input

C2OUT: Comparator C2 output

8 VSS Ground
9 RA7/OSC1/CLKIN RA7: Pin7 of Port A

OSC1:Oscillator pin 1

CLKI: External clock source input

10 RA6/OSC2/CLKOUT RA6: Pin6 of Port A

OSC2: Oscillator pin 2

CLKO: Clock source output

11 RC0/T1OSO/T1CKI RC0: Pin0 of Port C

T1OSO :Timer1 oscillator output

T1CKI: Timer1 external clock input

12 RC1/T1OSI/CCP2 RC1: Pin1 of Port C

T1OSI: Timer1 oscillator input

CCP2:Capture 2 input/Compare 2 output/PWM2 output

13 RC2/P1A/CCP1 RC2: Pin2 of Port C

P1A: PWM output

CCP1: Capture 1 input/Compare 1 output/PWM1 output.

14 RC3/SCK/SCL RC3: Pin3 of Port C

SCK: SPI clock

SCL: I2C clock



RC4: Pin4 of Port C

SDI: SPI data input

SDA: I2C data I/O

16 RC5/SDO RC5: Pin5 of Port C

SDO: SPI data out

17 RC6/TX/CK RC6: Pin6 of Port C

TX: EUSART asynchronous transmit

CK: EUSART synchronous clock

18 RC7/RX/DT RC7: Pin7 of Port C

RX: EUSART asynchronous receive

DT: EUSART synchronous data

19 VSS Ground
20 VDD Positive Power Supply
21 RB0/AN12/INT RB0: Pin0 of Port B

AN12: Analog input 12

INT: External interrupt

22 RB1/AN10/P1C/C12IN3- RB1: Pin1 of Port B

AN10: Analog input 10

P1W: PWM output

C12IN3-: Comparator C1 or C2 negative input

23 RB2/AN8/P1B RB2: Pin2 of Port B

AN8: Analog input 8

P1B: PWM output

24 RB3/AN9/PGM/C12IN2- RB3: Pin3 of Port B

AN9: Analog input 9

PGM: Low-voltage ICSP Programming enable pin

C12IN2-: Comparator C1 or C2 negative input

25 RB4/AN11/P1D RB4: Pin4 of Port B

AN11: Analog input 11

P1D: PWM output

26 RB5/AN13/T1G RB5 Pin5 of Port B

AN13: Analog input 13

T1G: Timer1 Gate input

27 RB6/ICSPCLK RB6: Pin6 of Port B

ICSPCLK: Serial Programming Clock

28 RB7/ICSPDAT RB7: Pin7 of Port B



PIC16F886 Features

CPU 8-bit
Total pins 28
Programmable pins 24
Communication Interface SPI Serial Interface(7,14,15,16 PINS) [Can be used for programming this controller]

UART Interface(17,18 PINS) [Can be used for programming this controller]

Two-wire Serial Interface or I2C(14,15 PINS) [Can be used to connect sensors and LCDs]

ICSP or In-Circuit Serial Programming Interface (27,28 Pins) [Can be used for programming this controller]

ADC Feature 11channels of 10-bit resolution
Timer Feature One 8-bit counter, Two 16-bit counter
Analog Comparators 2
PWM channels 4
External Oscillator Up to 20MHz
Internal Oscillator 31KHz-8MHz  Internal R-C Oscillator featured with:

  • Factory calibrated to ±1%
  • Software selectable frequency range of 8 MHz to 31 kHz
  • Software tunable
  • Crystal fail detect for critical applications
  • Clock mode switching during operation for power savings
Program memory / Flash memory 16Kbytes[100000 write/erase cycles]
CPU Speed  1MIPS @ 1MHz
RAM 368Bytes
EEPROM 256Bytes
Watchdog Timer Programmable Watchdog Timer with separate on-chip oscillator
Power Save Modes Available
Operating Voltage 2.0V to 5.5V
Maximum current to any I/O pin IN :25mA

OUT : 25mA

Operating Temperature -40°C to +125°C

How to Use PIC16F886 Microcontroller

Like any other microcontroller, PIC16F886 needed to be programmed before getting the chip working. So for working of PIC16F886, first we need to save the appropriate program file in the controller FLASH memory. Once power is provided, the controller executes this code saved in FLASH memory to create the response.

The entire process of programming PIC16F886 goes like this:

  • First list all the functions to be executed by this controller.
  •  Next, write these functions in ‘IDE software’ using relative programming language

(MPLAB IDE for Windows OS [ ])

C Language:

(For these MPLAB IDE you can use ‘C’ language to write the application program)

  • After writing the desired program compile it for error elimination
  • For a successful compilation IDE application generates HEX file for the written program
  • Choose the programming device (usually ‘PIC kit 3’ or ‘PIC kit 2’) which establishes communication between PC and PIC16F886
  • Connect the programming device to microcontroller appropriately
  • Run the HEX file dumping software which is related to the chosen programming device
  • Choose the appropriate program HEX file and burn this HEX file in PIC16F886 flash memory
  • Disconnect the programmer and connect the appropriate peripherals for the controller

After connecting the power, the controller executes this HEX code saved in the memory (which is written a program) and creates a response as instructed.


  • Hobbyist projects
  • Display units
  • Development board for learners
  • Analog signal measuring and manipulations
  • Embedded systems like coffee machine, vending machine
  • Motor control systems

2D Model

PIC16F886 Microcontroller Dimensions

Component Datasheet

PIC16F886 Microcontroller Datasheet

Package Includes:

1 x PIC16F886 8 Bit Microcontroller


Additional information

Weight 0.1 kg


There are no reviews yet.

Be the first to review “PIC16F886 8 Bit Microcontroller in Pakistan”

Your email address will not be published.