PIC16F887-E/P - 8-Bit 20MHz MCU 14KB Flash 40-PDIP | Microchip
MPN: PIC16F887-E/P ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $5.38 | $5.38 |
| 10 | $4.95 | $49.50 |
| 100 | $4.45 | $445.00 |
| 500 | $3.9 | $1,950.00 |
| 1,000 | $3.4 | $3,400.00 |
PIC16F887-E/P Overview
An 8-bit microcontroller (MCU) is a single-chip computer optimized for embedded control tasks such as reading sensors, driving actuators, and communicating with peripherals via serial protocols. The PIC16F887 belongs to the PIC16F family of mid-range MCUs, sitting in the hierarchy: PIC16F family -> PIC16 series -> 8-bit MCU -> microcontroller -> embedded IC -> semiconductor. The "16" prefix denotes a 14-bit wide instruction set mid-range core, while the "F" indicates Flash-based (re-programmable) program memory. The PIC16F887 is widely used in legacy designs, education, and industrial control applications where simplicity, low power, and a familiar peripheral set outweigh the need for high-speed 32-bit processing.
Key differentiating features include: 14 KB Flash supporting self-programmability (in-circuit serial programming, ICSP), 256-byte internal EEPROM for non-volatile data storage, brown-out reset (BOR) and low-power watchdog timer with dedicated on-chip 31 kHz oscillator, nanoWatt sleep modes drawing under 1 µA, and 10-bit ADC with 14 channels that allows direct interface with analog sensors without external signal conditioning.
The device uses Microchip's enhanced mid-range 8-bit RISC architecture with only 35 single-word instructions, simplifying development in assembly or C via MPLAB X IDE and the XC8 compiler. Its nanoWatt technology includes idle, sleep, and ultra-low-power watchdog modes, making it suitable for battery-powered sensors and remote monitoring.
Typical applications include industrial control boards, sensor interface modules, hobbyist and educational platforms, low-cost consumer electronics, and home appliance controls. The 40-pin PDIP package suits through-hole prototyping, breadboarding, and legacy replacement scenarios where DIP-based tooling already exists.
When designing with this part, note that the "-E" suffix indicates the extended industrial temperature range of -40°C to +125°C. Adequate decoupling (100 nF ceramic per VDD pin plus bulk 10 µF near the MCU) and a 100 nF between VSS and VDD is recommended to suppress switching transients that can cause ADC noise or POR malfunctions.
This page synthesizes distributor pricing, drop-in same-package alternatives, and practical design notes not found in the manufacturer datasheet alone, giving buyers and engineers a single citation-ready reference.
Drop-in alternatives for PIC16F887-E/P — same package, pin-to-pin compatible. Different-package parts requiring PCB rework are excluded.
Variants in this series
Same-series models that are drop-in compatible with PIC16F887-E/P (same form factor and footprint) — differing in ADC, Package, Timers, Core Architecture, Program Memory (Flash).
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F887-I/P
✅ Drop-In✓ In Stock
$1.88 / Unit
View Datasheet →PIC16F884-I/P
✅ Drop-In✓ In Stock
$2.62 / Unit
View Datasheet →PIC16F877A-I/P
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F886-I/SP
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F882-I/SP
✅ Drop-In✓ In Stock
$1.45 / Unit
View Datasheet →PIC16F887-E/P Maximum Ratings & Electrical Characteristics
| Core Architecture | Enhanced 8-bit PIC16 RISC |
| Instruction Set Width | 14-bit |
| Instruction Count | 35 single-word instructions |
| Maximum Clock Frequency | 20 MHz |
| Program Memory (Flash) | 14 KB (8K x 14 words) |
| Data SRAM | 368 bytes |
| Data EEPROM | 256 bytes |
| Digital I/O Pins | 36 |
| ADC | 14-channel, 10-bit |
| Timers | 2 x 8-bit + 1 x 16-bit |
| Communication Interfaces | Enhanced USART + MSSP (SPI / I2C) |
| Operating Voltage | 2.0 V to 5.5 V |
| Operating Temperature Range | -40 °C to +125 °C (extended, "-E") |
| Package | 40-pin PDIP (Plastic DIP, through-hole) |
| Mounting Type | Through-Hole |
| NanoWatt Sleep Current | < 1 µA typical |
| In-Circuit Programming | ICSP supported |
| Self-Programming | Yes (Flash supports user-code writing) |
| Watchdog Timer | Yes, with dedicated 31 kHz oscillator |
| Brown-Out Reset (BOR) | Yes |
| RoHS Status | Compliant |
PIC16F887-E/P Pin Configuration
| Pin 1 | MCLR/VPP/RE3 — Master Clear (reset) input / programming voltage / digital input only |
| Pin 2 | RA0/AN0 — PORTA bit 0 / analog input channel 0 |
| Pin 3 | RA1/AN1 — PORTA bit 1 / analog input channel 1 |
| Pin 4 | RA2/AN2 — PORTA bit 2 / analog input channel 2 |
| Pin 5 | RA3/AN3/VREF+ — PORTA bit 3 / analog input channel 3 / ADC positive reference |
| Pin 6 | RA4/AN4 — PORTA bit 4 / analog input channel 4 |
| Pin 7 | RA5/AN5/SS — PORTA bit 5 / analog input channel 5 / SPI slave select |
| Pin 8 | RE0/AN6 — PORTE bit 0 / analog input channel 6 |
| Pin 9 | RE1/AN7 — PORTE bit 1 / analog input channel 7 |
| Pin 10 | RE2/AN8 — PORTE bit 2 / analog input channel 8 |
| Pin 11 | VDD — Positive supply (2.0 V to 5.5 V) |
| Pin 12 | VSS — Ground reference |
| Pin 13 | OSC1/CLKIN — Oscillator input / external clock input |
| Pin 14 | OSC2/CLKOUT — Oscillator output / clock output |
| Pin 15 | RC0/T1OSO/T1CKI — PORTC bit 0 / Timer1 oscillator output / Timer1 clock input |
| Pin 16 | RC1/T1OSI/CCP2 — PORTC bit 1 / Timer1 oscillator input / CCP2 module |
| Pin 17 | RC2/P1A/CCP1 — PORTC bit 2 / PWM output / CCP1 module |
| Pin 18 | RC3/SCK/SCL — PORTC bit 3 / SPI clock / I2C clock |
| Pin 19 | RD0 — PORTD bit 0 |
| Pin 20 | RD1 — PORTD bit 1 |
| Pin 21 | RD2 — PORTD bit 2 |
| Pin 22 | RD3 — PORTD bit 3 |
| Pin 23 | RC4/SDI/SDA — PORTC bit 4 / SPI data in / I2C data |
| Pin 24 | RC5/SDO — PORTC bit 5 / SPI data out |
| Pin 25 | RC6/TX/CK — PORTC bit 6 / USART transmit / USART clock |
| Pin 26 | RC7/RX/DT — PORTC bit 7 / USART receive / USART data |
| Pin 27 | RD4 — PORTD bit 4 |
| Pin 28 | RD5/P1B — PORTD bit 5 / PWM complementary output |
| Pin 29 | RD6/P1C — PORTD bit 6 / PWM output C |
| Pin 30 | RD7/P1D — PORTD bit 7 / PWM output D |
| Pin 31 | VSS — Ground reference |
| Pin 32 | VDD — Positive supply (2.0 V to 5.5 V) |
| Pin 33 | RB0/INT/AN12 — PORTB bit 0 / external interrupt / analog input channel 12 |
| Pin 34 | RB1/AN10 — PORTB bit 1 / analog input channel 10 |
| Pin 35 | RB2/AN8 — PORTB bit 2 / analog input channel 8 |
| Pin 36 | RB3/AN9/PGM — PORTB bit 3 / analog input channel 9 / LVP programming |
| Pin 37 | RB4/AN11 — PORTB bit 4 / analog input channel 11 |
| Pin 38 | RB5/AN13 — PORTB bit 5 / analog input channel 13 |
| Pin 39 | RB6/PGC — PORTB bit 6 / ICSP clock |
| Pin 40 | RB7/PGD — PORTB bit 7 / ICSP data |
Typical Applications
PIC16F887-E/P is suitable for 6 applications: Industrial Control Boards, Sensor Interface Modules, Educational and Hobbyist Platforms, Home Appliance Controls, Battery-Powered Remote Monitoring, Legacy PIC16F877A Replacement.
Industrial Control Boards
The PIC16F887-E/P fits industrial control boards because of its 20 MHz 8-bit core, 36 I/O pins, and 14-channel 10-bit ADC that reads 0-5 V sensor signals without external signal conditioning. The -40 to +125 C extended temperature rating supports factory-floor environments with temperature swings, and its 256-byte EEPROM stores calibration constants and runtime counters without external non-volatile memory. The nanoWatt sleep mode at under 1 µA reduces standby power in line-powered and battery-backed systems. Place 100 nF ceramic decoupling capacitors adjacent to every VDD/VSS pair, and reserve a 10 µF bulk capacitor near the MCU for ADC stability.
Recommended
Sensor Interface Modules
Use the PIC16F887-E/P for multi-channel sensor hubs because the 14-channel 10-bit ADC covers temperature, pressure, and humidity transducers in a single chip. Its MSSP module talks to I2C or SPI digital sensors (accelerometers, gas sensors), and the enhanced USART bridges to RS-485 transceivers for industrial networks. 256 bytes of internal EEPROM retains calibration tables and sensor IDs across power cycles. The 14 KB Flash comfortably holds the polling loop, sensor driver library, and Modbus stack while leaving headroom for future features.
Recommended
Educational and Hobbyist Platforms
The PIC16F887-E/P is widely used in university embedded courses and hobby projects because the 40-pin PDIP through-hole package drops easily into breadboards and solderless prototyping boards. Microchip's MPLAB X IDE, free XC8 compiler, and PICkit 3/4 debuggers provide a complete free-of-charge learning path. The 35 single-word instruction set reduces assembly learning overhead, while 14 KB Flash and 368 bytes SRAM support real projects like line-following robots, weather stations, and digital clocks without memory crunch.
Recommended
Home Appliance Controls
The PIC16F887-E/P drives washing machine, dishwasher, microwave, and HVAC control panels because its 36 I/O pins connect to keypads, LCD controllers, triac drivers, and buzzer feedback paths simultaneously. Its 14 KB Flash holds state-machine firmware, while 256 bytes EEPROM stores user settings and fault logs that survive power loss. The extended -40 to +125 C temperature grade ensures reliable operation near heating elements. nanoWatt sleep modes keep standby power below 0.5 W to meet modern appliance energy regulations.
Recommended
Battery-Powered Remote Monitoring
The PIC16F887-E/P suits battery-powered remote sensor nodes because its nanoWatt sleep current under 1 µA allows multi-year operation from a single 3 V lithium cell when the MCU wakes briefly to sample and transmit. The 14-channel 10-bit ADC handles battery voltage, temperature, and process variables without extra chips. The 256-byte EEPROM stores the last-known sensor state across resets. The 20 MHz wake-and-run performance enables rapid ADC acquisition and SPI/I2C transmit, returning to sleep quickly to minimize average current.
Recommended
Legacy PIC16F877A Replacement
Designers upgrade from PIC16F877A to PIC16F887-E/P to gain 256-byte internal EEPROM, nanoWatt power management, and an expanded 14-channel 10-bit ADC while keeping the same 40-pin PDIP footprint, instruction set, and peripheral mapping. Existing 5 V PIC16F877A firmware ports directly with little to no rewrite. The extended temperature grade supports automotive under-hood and outdoor installations. The two parts share the same MPLAB X toolchain, allowing zero-tooling migration in production lines.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F887-E/P — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F887-I/P | PIC16F884-I/P | PIC16F877A-I/P | PIC16F886-I/SP | PIC16F882-I/SP |
|---|---|---|---|---|---|---|
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Package | PDIP-40 | PDIP-40 - same | PDIP-40 - same | PDIP-40 - same | SPDIP-28 - different pin count | SPDIP-28 - different pin count |
| Core / Max Clock | 8-bit PIC16 / 20 MHz | 8-bit PIC16 / 20 MHz | 8-bit PIC16 / 20 MHz | 8-bit PIC16 / 20 MHz | 8-bit PIC16 / 20 MHz | 8-bit PIC16 / 20 MHz |
| Flash Memory | 14 KB | 14 KB | 7 KB | 14 KB | 14 KB | 3.5 KB |
| Data EEPROM | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 128 bytes |
| ADC Channels | 14-channel, 10-bit | 14-channel, 10-bit | 14-channel, 10-bit | 8-channel, 10-bit | 11-channel, 10-bit | 11-channel, 10-bit |
| Digital I/O Pins | 36 | 36 | 36 | 33 | 28 | 24 |
| Temperature Range | -40 °C to +125 °C | -40 °C to +85 °C | -40 °C to +85 °C | -40 °C to +85 °C | -40 °C to +85 °C | -40 °C to +85 °C |
Key Differentiators
- Extended -40 to +125 °C operating temperature (vs PIC16F887-I/P)
- 14-channel 10-bit ADC (vs PIC16F877A-I/P)
- 256-byte internal EEPROM + nanoWatt low-power modes (vs PIC16F886-I/SP)
Design Notes
Place a 100 nF ceramic decoupling capacitor as close as possible to each VDD/VSS pair (pins 11/12 and 31/32) and add a bulk 10 µF tantalum or aluminum polymer capacitor near the MCU. For battery-powered designs using nanoWatt sleep modes, switch the unused peripherals (ADC, USART) off before issuing the SLEEP instruction to achieve the sub-1 µA standby current. Use the internal 31 kHz INTRC oscillator for sleep wake-ups so the system does not depend on an external crystal during low-power intervals.
Route the MCLR line (pin 1) away from switching signals and add a 10 kΩ pull-up to VDD plus a 100 nF capacitor to ground for noise immunity. Keep the analog inputs (AN0-AN13) separated from digital switching traces, and place the ADC VREF+ decoupling capacitor (when used) at pin 5 with the shortest possible ground return. For 40 MHz oscillator operation, ensure the OSC1/OSC2 traces are short, surrounded by a ground guard ring, and that the crystal case is grounded.
Do not leave the LVP (low-voltage programming) bit enabled in CONFIG words unless you use RB3 as the LVP entry pin - this can cause unexpected resets in production boards that drive RB3. When migrating from PIC16F877A code, confirm that ADC channel numbers beyond AN7 are remapped (PIC16F887 expands to AN8-AN13 on different ports). Also verify that the BOR voltage level matches your supply range - factory default may be too high for 2.0 V to 3.3 V designs and must be lowered.
Compliance Information
RoHS and lead-free confirmed per Microchip product environmental compliance. AEC-Q100 qualification not listed - extended -40 to +125 °C temperature grade is industrial spec, not automotive certification. Full REACH SVHC and material disclosure available on request from Microchip.