PIC16F877-10E/P - 8-Bit 10MHz 14KB FLASH MCU | Microchip | DIP-40
MPN: PIC16F877-10E/P ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $7.1 | $7.10 |
| 10 | $6.39 | $63.90 |
| 100 | $5.4 | $540.00 |
| 500 | $4.82 | $2,410.00 |
| 1,000 | $4.3 | $4,300.00 |
PIC16F877-10E/P Overview
An 8-bit microcontroller (MCU) is a single-chip computer built around an 8-bit data path, integrating a CPU core, program memory, data RAM, non-volatile EEPROM, timers, and configurable peripherals. The PIC16F877 belongs to the mid-range PIC16 family, which sits hierarchically between the baseline PIC10/12/16/17 families and the high-performance PIC18/dsPIC33 families within Microchip's 8-bit MCU portfolio. It executes a RISC instruction set of only 35 single-word instructions, which simplifies code development, accelerates interrupt latency, and enables deterministic real-time behavior ideal for control loops.
Key features include an integrated 10-bit Analog-to-Digital Converter (ADC) with 8 input channels, two 8-bit timers (Timer0, Timer2) plus one 16-bit timer (Timer1), two Capture/Compare/PWM (CCP) modules, a Synchronous Serial Port (SSP) configurable as either SPI or I²C, a USART for asynchronous or synchronous serial communication, and a parallel Slave Port (PSP) for external bus interfacing. The device also integrates a brown-out reset (BOR), power-on reset (POR), watchdog timer (WDT), and in-circuit serial programming (ICSP) capability, allowing field firmware updates without removing the device from the board.
Architecturally, the PIC16F877 uses a Harvard memory architecture with separate program and data buses, a 14-bit instruction word, and a hardware stack 8 levels deep. The Harvard layout allows simultaneous instruction fetch and data access, giving the 10 MHz oscillator a true 5 MIPS throughput. In-circuit debugging (ICD) is supported through two of the I/O pins, enabling developers to step through code in real time using Microchip's MPLAB ICD tools. The Flash-based program memory supports 100,000 erase/write cycles typical, and the EEPROM supports 1,000,000 cycles, providing long-term reliability for parameter storage.
Typical applications include industrial automation and motor control (HVAC, fans, small pumps), consumer electronics (washing machines, microwave ovens, remote controls), educational development boards and hobbyist projects, automotive body and accessory modules (non-safety-critical), and instrument front panels with mixed digital/analog I/O. The wide operating voltage range (typically 2.0 V to 5.5 V for the -10E variant) allows battery-powered and 5 V regulated designs alike.
When designing with this part, always reserve the ICSP clock (RB6) and data (RB7) pins for the programming/debug interface; tying them to unrelated loads can prevent in-system programming. Decouple VDD with a 100 nF ceramic placed within 5 mm of the supply pin, and use the MCLR reset pin with the recommended 10 kΩ pull-up and a 100 nF delay capacitor for reliable POR behavior. The extended temperature grade (-E) makes this part preferable over the commercial-grade (-I) variant for outdoor enclosures or industrial cabinets.
Drop-in alternatives for PIC16F877-10E/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 PIC16F877-10E/P (same form factor and footprint) — differing in Core Architecture, Package, I/O Pins, Timers, Maximum CPU Frequency.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F877A-10E/P
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F877-04E/PQ
✅ Drop-In✓ In Stock
$5.72 / Unit
View Datasheet →PIC16F877-10I/P
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F887-I/P
✅ Drop-In✓ In Stock
$1.88 / Unit
View Datasheet →PIC16F877A-I/P
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F877-10E/P Maximum Ratings & Electrical Characteristics
| Core Architecture | 8-bit PIC16 (mid-range) RISC, 35 single-word instructions |
| Program Memory | 14 KB Flash (8K x 14 words) |
| Data RAM | 368 bytes |
| Data EEPROM | 256 bytes |
| Maximum CPU Frequency | 10 MHz (200 ns instruction cycle, 5 MIPS) |
| Operating Voltage Range | 4.0 V to 5.5 V (10 MHz grade) |
| Operating Temperature Range | -40 °C to +125 °C (Extended, -E suffix) |
| Digital I/O Pins | 33 (PORTA 6, PORTB 8, PORTC 8, PORTD 8, PORTE 3) |
| ADC | 10-bit, 8 channels |
| Timers | 3 (Timer0 8-bit, Timer1 16-bit, Timer2 8-bit) |
| CCP Modules | 2 (Capture/Compare/PWM) |
| Serial Interfaces | USART/SCI, SSP (SPI or I²C master/slave), PSP |
| Watchdog Timer | Yes (software-enabled) |
| In-Circuit Programming/Debug | ICSP + ICD via RB6/RB7 |
| Brown-out Reset / Power-on Reset | Yes (BOR + POR) |
| Hardware Stack | 8 levels |
| Package | 40-pin PDIP (P) |
| Mounting Type | Through-hole (DIP) |
| RoHS Status | Compliant (lead-free matte-tin finish) |
PIC16F877-10E/P Pin Configuration
| Pin 1 | MCLR/VPP — Master Clear (Reset) input / ICSP programming voltage |
| 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/VREF- — PORTA bit 2 / analog input channel 2 / ADC negative reference |
| Pin 5 | RA3/AN3/VREF+ — PORTA bit 3 / analog input channel 3 / ADC positive reference |
| Pin 6 | RA4/T0CKI — PORTA bit 4 (open-drain) / Timer0 clock input |
| Pin 7 | RA5/AN4/SS — PORTA bit 5 / analog input channel 4 / SPI slave select |
| Pin 8 | RE0/RD/AN5 — PORTE bit 0 / parallel slave port read / analog input channel 5 |
| Pin 9 | RE1/WR/AN6 — PORTE bit 1 / parallel slave port write / analog input channel 6 |
| Pin 10 | RE2/CS/AN7 — PORTE bit 2 / parallel slave port chip select / analog input channel 7 |
| Pin 11 | VDD — Positive supply voltage (4.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 out (Fosc/4) |
| 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 PWM output |
| Pin 17 | RC2/CCP1 — PORTC bit 2 / CCP1 PWM output |
| Pin 18 | RC3/SCK/SCL — PORTC bit 3 / SPI clock / I²C clock |
| Pin 19 | RD0/PSP0 — PORTD bit 0 / parallel slave port data bit 0 |
| Pin 20 | RD1/PSP1 — PORTD bit 1 / parallel slave port data bit 1 |
| Pin 21 | RD2/PSP2 — PORTD bit 2 / parallel slave port data bit 2 |
| Pin 22 | RD3/PSP3 — PORTD bit 3 / parallel slave port data bit 3 |
| Pin 23 | RC4/SDI/SDA — PORTC bit 4 / SPI data in / I²C 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/PSP4 — PORTD bit 4 / parallel slave port data bit 4 |
| Pin 28 | RD5/PSP5 — PORTD bit 5 / parallel slave port data bit 5 |
| Pin 29 | RD6/PSP6 — PORTD bit 6 / parallel slave port data bit 6 |
| Pin 30 | RD7/PSP7 — PORTD bit 7 / parallel slave port data bit 7 |
| Pin 31 | VSS — Ground reference (second VSS pin) |
| Pin 32 | VDD — Positive supply voltage (second VDD pin) |
| Pin 33 | RB0/INT — PORTB bit 0 / external interrupt 0 |
| Pin 34 | RB1 — PORTB bit 1 |
| Pin 35 | RB2 — PORTB bit 2 |
| Pin 36 | RB3/PGM — PORTB bit 3 / LVP programming enable |
| Pin 37 | RB4 — PORTB bit 4 |
| Pin 38 | RB5 — PORTB bit 5 |
| Pin 39 | RB6/PGC — PORTB bit 6 / ICSP clock (ICSPCLK) |
| Pin 40 | RB7/PGD — PORTB bit 7 / ICSP data (ICSPDAT) |
Typical Applications
PIC16F877-10E/P is suitable for 6 applications: Industrial Automation and Motor Control, Consumer Electronics Front Panels, Educational Development Boards and Hobbyist Projects, Instrumentation and Data Acquisition Front Ends, Automotive Body and Accessory Modules, Wireless Sensor Network Edge Nodes.
Industrial Automation and Motor Control
The PIC16F877-10E/P is well suited for industrial automation controllers driving small DC motors, stepper motor indexers, fan speed controllers, and HVAC damper actuators. Its 33 digital I/O pins provide ample drive for relays, optocouplers, and 7-segment displays, while the two CCP modules generate precise PWM for brushed DC motor speed loops at up to 5 MIPS computational throughput. The 8-channel 10-bit ADC samples feedback from thermistors, pressure sensors, and current shunts for closed-loop control, and the USART links to a host PLC or HMI for SCADA integration. The extended -40 °C to +125 °C temperature grade tolerates unconditioned factory cabinets, and the 14 KB Flash accommodates state-machine control firmware plus Modbus or CANopen protocol stacks.
Recommended
Consumer Electronics Front Panels
White goods such as washing machines, microwave ovens, dishwashers, and air conditioners use the PIC16F877-10E/P as the primary user-interface controller, handling push-button scanning, rotary encoder input, and multiplexed 7-segment or LCD character displays. Its 33 I/O pins comfortably drive a 4-digit 7-segment display plus an 8-key matrix and a buzzer, while the 14 KB Flash stores user menus, error codes, and diagnostic routines. The 10-bit ADC reads temperature sensors (NTC), water level probes, and humidity sensors with ±1 LSB linearity, and the I²C/SPI peripherals interface to EEPROM parameter storage and real-time clock ICs. The 256-byte on-chip EEPROM preserves user settings through power cycles without external NVRAM.
Recommended
Educational Development Boards and Hobbyist Projects
The PIC16F877-10E/P is a cornerstone of university embedded-systems courses and DIY maker projects due to its breadboard-friendly 40-pin PDIP package, mature toolchain support, and abundant tutorial resources. Students learn RISC assembly and C programming with MPLAB X + XC8 (free compiler), implementing PWM motor control, ADC sensor reading, I²C peripheral interfacing, and USART serial debugging. The through-hole DIP form factor survives repeated insertion into breadboards and ZIF sockets, while the ICSP interface via RB6/RB7 allows hands-on programming without removing the chip. Hobbyist projects include robotics motor controllers, weather stations, IR remote-controlled toys, and home automation prototypes with the PIC16F877A migration path when more memory is needed.
Recommended
Instrumentation and Data Acquisition Front Ends
Bench-top instruments and laboratory data loggers use the PIC16F877-10E/P as a multi-channel ADC front end, capturing 8 analog signals at 10-bit resolution and streaming them to a host PC via USART or USB-to-serial bridge. The 5 MIPS CPU enables on-board digital filtering (moving average, FIR low-pass) before transmission, reducing host-side processing load. The two CCP modules measure pulse widths and frequencies from external sensors, while the SSP port in SPI mode interfaces to high-speed external ADCs or DACs for applications needing more than 10 bits of resolution. The 14 KB Flash stores calibration coefficients and linearization lookup tables in program memory, with 256-byte EEPROM retaining user calibration settings across power cycles.
Recommended
Automotive Body and Accessory Modules
Non-safety-critical automotive body controllers—such as window lift modules, seat position memories, mirror adjusters, and interior lighting controllers—use the PIC16F877-10E/P as a cost-effective 8-bit solution. The 33 digital I/O pins directly drive low-side MOSFETs via gate resistors, the two CCP modules generate PWM for LED dimming and motor soft-start, and the USART communicates with body control modules over LIN or K-Line protocols. Note: this part is NOT AEC-Q100 qualified, so it must be limited to non-safety applications; AEC-Q100-grade PIC16F177x or PIC18F alternatives are required for under-hood or chassis domains. The extended -40 °C to +125 °C temperature grade handles cabin and trunk thermal environments.
Recommended
Wireless Sensor Network Edge Nodes
Battery-powered wireless sensor nodes based on the PIC16F877-10E/P leverage the device's low-power sleep modes (down to <1 µA with WDT disabled) and integrated ADC for periodic environmental sampling. The USART connects to a 2.4 GHz radio module such as the MRF24J40 or nRF24L01+, while the I²C bus reads digital sensors (temperature, humidity, accelerometers) without burdening the ADC channels. The 14 KB Flash stores sensor calibration and a simple MAC protocol stack; the 256-byte EEPROM retains node ID and network parameters through battery replacement. For solar-powered deployments, the 2.0–5.5 V operating range (or PIC16LF877 variant) allows direct Li-ion or 2xAA cell operation with a boost converter for the radio rail.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F877-10E/P — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F877A-10E/P | PIC16F877-04E/P | PIC16F877-10I/P | PIC16F887-I/P | PIC16F877A-I/P |
|---|---|---|---|---|---|---|
| Package | 40-pin PDIP | 40-pin PDIP - same | 40-pin PDIP - same | 40-pin PDIP - same | 40-pin PDIP - same | 40-pin PDIP - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Maximum CPU Frequency | 10 MHz | 10 MHz | 4 MHz | 10 MHz | 20 MHz | 20 MHz |
| Program Memory | 14 KB Flash | 14 KB Flash | 14 KB Flash | 14 KB Flash | 14 KB Flash | 14 KB Flash |
| Data RAM | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes |
| ADC Channels | 8 (10-bit) | 8 (10-bit) | 8 (10-bit) | 8 (10-bit) | 14 (10-bit) | 8 (10-bit) |
| Operating Temperature | -40 °C to +125 °C (Extended) | -40 °C to +125 °C (Extended) | -40 °C to +125 °C (Extended) | -40 °C to +85 °C (Industrial) | -40 °C to +85 °C (Industrial) | -40 °C to +85 °C (Industrial) |
| Internal Oscillator | No (external crystal required) | Yes, 4 MHz calibrated (1%) | No (external crystal required) | No (external crystal required) | Yes, 8 MHz with 4x PLL | Yes, 4 MHz calibrated (1%) |
| CCP Modules | 2 | 2 | 2 | 2 | 2 (Enhanced CCP) | 2 |
Key Differentiators
- Extended -40 °C to +125 °C temperature range (vs PIC16F877A-I/P)
- 5 MIPS throughput at 10 MHz vs 4 MHz in -04 grade (vs PIC16F877-04E/P)
- Backwards compatibility with PIC16F877 legacy firmware (vs PIC16F887-I/P)
Design Notes
Reserve RB6 (ICSPCLK) and RB7 (ICSPDAT) for in-circuit serial programming. Tying these pins directly to heavy loads or pull-ups greater than 10 kΩ can prevent programming. Place a 4.7 kΩ pull-up on MCLR (pin 1) with a 100 nF delay capacitor to VDD, per Microchip's reference design; this ensures clean power-on-reset behavior. Keep VDD traces short and place a 100 nF decoupling capacitor within 5 mm of pins 11 and 32, with a 10 µF bulk capacitor near the IC. Avoid routing high-speed signals (oscillator, CCP PWM) directly under the IC to minimize noise coupling into the ADC.
Do not assume VDD operation below 4.0 V at 10 MHz. According to the datasheet DC characteristics, the -10E variant requires VDD ≥ 4.0 V to guarantee 10 MHz operation; below this the device still runs but the oscillator may fail to start or produce timing errors. If you need 5 MIPS throughput down to 2.0 V, choose the PIC16LF877 (PIC16LF series). Also note the ADC requires the A/D acquisition time to be set correctly in the ADCON0 register — using the default 20 µS with a low-impedance source is fine, but for high-impedance sensors (>10 kΩ), increase TACQ to 20 µS or use a buffer op-amp to avoid conversion errors.
Estimated: at VDD=5 V and 10 MHz active mode with all peripherals enabled, the PIC16F877-10E/P draws approximately 15 mA active current and drops to under 1 µA in sleep mode with WDT disabled. For battery-powered designs, use sleep mode aggressively between sensor samples and wake via Watchdog Timer (typically 18 ms interval) or external interrupt on RB0. The brown-out reset (BOR) should be enabled in configuration bits to prevent code execution at low VDD that could corrupt EEPROM; Microchip's datasheet recommends BOR at 4.0 V minimum for 10 MHz operation.
Compliance Information
RoHS compliant per Microchip material declaration. Lead-free matte-tin finish. NOT AEC-Q100 qualified - not suitable for automotive safety-critical applications. REACH SVHC compliant; halogen-free molding compound per Microchip's environmental compliance documentation.