PIC16F877T-04E/L - 4MHz 8-Bit FLASH MCU, 14KB, 44-PLCC | Microchip
MPN: PIC16F877T-04E/L ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $11.5 | $11.50 |
| 10 | $10.4 | $104.00 |
| 100 | $9.1 | $910.00 |
| 500 | $8.2 | $4,100.00 |
| 1,000 | $7.45 | $7,450.00 |
PIC16F877T-04E/L Overview
A microcontroller (MCU) is a single-chip computer that combines a CPU core, program and data memory, peripherals, and I/O on one die. The PIC16F877 belongs to Microchip's mid-range PIC16 family, sitting in the hierarchy: PIC16F family -> PIC16 mid-range 8-bit MCU -> PIC microcontroller -> RISC microcontroller -> embedded computing platform. Mid-range PIC16F parts balance code density (14-bit instruction word, 35 single-word instructions) with rich peripherals for cost-sensitive embedded control.
Key features include 200 ns instruction execution, 8-channel 10-bit ADC, two capture/compare/PWM modules, one USART with RS-485 support, one MSSP capable of SPI and I2C (master/slave), a parallel slave port, and two 8-bit plus one 16-bit timer. The wide operating voltage range of 2.0 V to 5.5 V and self-programming FLASH make it suitable for both battery-powered and industrial line-powered designs.
Architecturally, the PIC16F877 uses a Harvard RISC core with separate program and data buses, allowing instruction fetch and data access in the same cycle. The on-chip ICD/debug support and 14-bit wide instruction word give a 2:1 code density advantage over many CISC 8-bit contemporaries, which reduces FLASH footprint for equivalent functionality and contributes to the part's longevity in legacy designs.
Typical applications include industrial automation controllers, automotive body and HVAC modules, sensor signal conditioning front-ends, RS-485 networked sensor nodes, and consumer appliance user-interface boards. For new designs, Microchip recommends migrating to the pin-compatible PIC16F887, which adds an internal oscillator and enhanced ADC at the same 44-pin PLCC footprint.
Design consideration: PLCC packages require a through-hole socket or careful surface-mount reflow profile; an ICSP/ICD connector footprint must be reserved for in-circuit debug, and the MCLR reset pin needs the datasheet-specified RC network to avoid spurious resets.
This page synthesizes distributor pricing, drop-in PLCC alternatives, and practical design notes beyond the manufacturer datasheet, giving procurement and engineering teams a single source for selection.
Drop-in alternatives for PIC16F877T-04E/L — 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 PIC16F877T-04E/L (same form factor and footprint) — differing in Package, Core Architecture, ADC, Timers, Operating Temperature.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F877AT-I/PTG
✅ Drop-In✓ In Stock
$6.2 / Unit
View Datasheet →PIC16F877A-I/LG
✅ Drop-In✓ In Stock
$4.78 / Unit
View Datasheet →PIC16F877A-E/L
✅ Drop-In✓ In Stock
$7.4 / Unit
View Datasheet →PIC16F877-04E/PT
✅ Drop-In✓ In Stock
$3.25 / Unit
View Datasheet →PIC16F877-20I/L
✅ Drop-In✓ In Stock
$9.05 / Unit
View Datasheet →PIC16F887
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F877T-04E/L Maximum Ratings & Electrical Characteristics
| Core Architecture | PIC 8-bit RISC (Harvard) |
| Program Memory Type | FLASH |
| Program Memory Size | 14 KB (8K x 14 words) |
| RAM Size | 368 bytes |
| EEPROM Size | 256 bytes |
| Maximum CPU Frequency | 4 MHz |
| Instruction Execution Time | 200 ns (at 4 MHz, 5V) |
| Operating Supply Voltage | 2.0 V to 5.5 V |
| Number of I/O Pins | 33 |
| ADC | 8 channels x 10-bit |
| Timers | 2 x 8-bit + 1 x 16-bit |
| Capture/Compare/PWM | 2 modules |
| Communication Interfaces | 1 x USART (RS-485), 1 x MSSP (SPI/I2C), 1 x PSP |
| Package | 44-pin PLCC (J-lead, 16.59 x 16.59 mm) |
| Operating Temperature Range | -40C to +125C (automotive grade) |
| Mounting Type | Surface Mount |
| RoHS Status | Compliant |
| Lead-Free | Yes |
PIC16F877T-04E/L Pin Configuration
| Pin 1 | MCLR/VPP — Master Clear (reset) input / programming voltage |
| Pin 2 | RA0/AN0 — PORTA bit 0 / analog input 0 |
| Pin 3 | RA1/AN1 — PORTA bit 1 / analog input 1 |
| Pin 4 | RA2/AN2/VREF- — PORTA bit 2 / analog input 2 / ADC Vref- |
| Pin 5 | RA3/AN3/VREF+ — PORTA bit 3 / analog input 3 / ADC Vref+ |
| Pin 6 | RA4/T0CKI — PORTA bit 4 / Timer0 clock input |
| Pin 7 | RA5/AN4/SS — PORTA bit 5 / analog input 4 / SPI slave select |
| Pin 8 | RE0/RD/AN5 — PORTE bit 0 / parallel port read / analog input 5 |
| Pin 9 | RE1/WR/AN6 — PORTE bit 1 / parallel port write / analog input 6 |
| Pin 10 | RE2/CS/AN7 — PORTE bit 2 / parallel port chip select / analog input 7 |
| Pin 11 | VDD — Positive supply (2.0 V to 5.5 V) |
| Pin 12 | VSS — Ground reference |
| Pin 13 | OSC1/CLKIN — Oscillator crystal input / external clock in |
| Pin 14 | OSC2/CLKOUT — Oscillator crystal output / clock out |
| Pin 15 | RC0/T1OSO/T1CKI — PORTC bit 0 / Timer1 oscillator out / clock in |
| Pin 16 | RC1/T1OSI/CCP2 — PORTC bit 1 / Timer1 oscillator in / CCP2 |
| Pin 17 | RC2/CCP1 — PORTC bit 2 / CCP1 PWM/capture |
| Pin 18 | RC3/SCK/SCL — PORTC bit 3 / SPI clock / I2C clock |
| Pin 19 | RC4/SDI/SDA — PORTC bit 4 / SPI data in / I2C data |
| Pin 20 | RC5/SDO — PORTC bit 5 / SPI data out |
| Pin 21 | RC6/TX/CK — PORTC bit 6 / USART TX / clock |
| Pin 22 | RC7/RX/DT — PORTC bit 7 / USART RX / data |
| Pin 23 | RD0/PSP0 — PORTD bit 0 / parallel slave port bit 0 |
| Pin 24 | RD1/PSP1 — PORTD bit 1 / parallel slave port bit 1 |
| Pin 25 | RD2/PSP2 — PORTD bit 2 / parallel slave port bit 2 |
| Pin 26 | RD3/PSP3 — PORTD bit 3 / parallel slave port bit 3 |
| Pin 27 | RD4/PSP4 — PORTD bit 4 / parallel slave port bit 4 |
| Pin 28 | RD5/PSP5 — PORTD bit 5 / parallel slave port bit 5 |
| Pin 29 | RD6/PSP6 — PORTD bit 6 / parallel slave port bit 6 |
| Pin 30 | RD7/PSP7 — PORTD bit 7 / parallel slave port bit 7 |
| Pin 31 | VSS — Ground reference |
| Pin 32 | VDD — Positive supply (2.0 V to 5.5 V) |
| Pin 33 | RB0/INT — PORTB bit 0 / external interrupt |
| Pin 34 | RB1 — PORTB bit 1 |
| Pin 35 | RB2 — PORTB bit 2 |
| Pin 36 | RB3/PGM — PORTB bit 3 / low-voltage programming |
| Pin 37 | RB4 — PORTB bit 4 |
| Pin 38 | RB5 — PORTB bit 5 |
| Pin 39 | RB6/PGC — PORTB bit 6 / ICSP clock |
| Pin 40 | RB7/PGD — PORTB bit 7 / ICSP data |
| Pin 41 | NC — Not connected (per datasheet PLCC pin 41) |
| Pin 42 | NC — Not connected (per datasheet PLCC pin 42) |
| Pin 43 | NC — Not connected (per datasheet PLCC pin 43) |
| Pin 44 | NC — Not connected (per datasheet PLCC pin 44) |
Typical Applications
PIC16F877T-04E/L is suitable for 6 applications: Industrial Automation Controllers, Automotive Body and HVAC Modules, RS-485 Sensor Network Nodes, Consumer Appliance User Interface Boards, Sensor Signal Conditioning Front-Ends, Educational and Hobby Development Boards.
Industrial Automation Controllers
The PIC16F877T-04E/L fits industrial PLC and sensor-interface modules because it combines 14 KB of FLASH for ladder-logic-style state machines, an 8-channel 10-bit ADC for analog transducer readout, and a USART with RS-485 support for Modbus RTU networking. Its automotive -40C to +125C grade tolerates the thermal stress of factory cabinets. Placed on a backplane alongside isolated RS-485 transceivers, it reads 4-20 mA loop currents and drives relay outputs via CCP PWM. The 4 MHz clock is sufficient because most loop-control math fits within the 14-bit instruction budget. The trade-off versus higher-speed MCUs is interrupt latency under heavy peripheral loading; reserve headroom for ADC and USART service routines.
Recommended
Automotive Body and HVAC Modules
The PIC16F877T-04E/L is well-suited to under-hood automotive body and HVAC controllers where its -40C to +125C automotive temperature grade and 256-byte EEPROM are essential. The 33 GPIO drive seat-heater relays, fan PWM outputs via the CCP modules, and dashboard switch matrices, while the 10-bit ADC reads temperature and pressure sensors. The 'E' suffix signals Microchip's AEC-Q100-style automotive qualification for this mature family. Compare to the PIC16F877A-E/L when a 20 MHz CPU is needed for faster CAN-style bit-banging. The trade-off is FLASH endurance at high write rates; the 256-byte EEPROM should hold non-volatile setpoints rather than fast-changing state.
Recommended
RS-485 Sensor Network Nodes
Long-distance RS-485 sensor networks use the PIC16F877T-04E/L as a node controller because its integrated USART with 9-bit address-match mode simplifies multidrop protocols without bit-banging. The 14 KB of FLASH hosts a Modbus RTU or proprietary polling stack, while the 8-channel 10-bit ADC multiplexes thermocouple, pressure, and flow signals. The 4 MHz clock delivers 1 MIPS, adequate for 9600 to 38400 baud polling at typical industrial update rates. Place the MCU on a daughter card alongside an isolated RS-485 transceiver and a low-dropout regulator; the trade-off is no CAN hardware - if CAN is required, add an external MCP2515 or migrate to a dsPIC33 with on-chip CAN.
Recommended
Consumer Appliance User Interface Boards
The PIC16F877T-04E/L is a good fit for washing-machine, dishwasher, and microwave user-interface boards where 33 GPIO can directly drive 7-segment displays, keypads, and indicator LEDs without external expanders. The FLASH supports multi-language UI state machines in a single die. The MSSP peripheral drives an I2C EEPROM for user settings and an SPI LCD controller, while the USART debugs to a service-tool dongle. The 4 MHz grade is sufficient because UI updates rarely exceed 100 Hz. The trade-off versus Cortex-M0+ parts is code density - migrating to PIC16F887 halves program size via the improved instruction set on the same pinout.
Recommended
Sensor Signal Conditioning Front-Ends
Bridge-amplifier and thermocouple-conditioning front-ends benefit from the PIC16F877T-04E/L's 10-bit ADC and 14 KB of FLASH for linearization lookup tables. The 33 GPIO drive relay-multiplexed sensor channels, while the 8-channel ADC samples strain-gauge, RTD, and thermistor bridges sequentially. The 'A' revision (PIC16F877A-I/LG) is preferred here for the improved ADC acquisition window. Pair the MCU with an instrumentation amplifier such as INA128 upstream; the trade-off is 10-bit ADC resolution - for 16-bit precision, add an external ADS1115 over I2C and let the PIC16F877's MSSP handle the digital side.
Recommended
Educational and Hobby Development Boards
The PIC16F877T-04E/L is widely used in university embedded-systems courses and hobbyist projects because its 44-pin PLCC package fits low-cost development boards with through-hole sockets, its 35-instruction RISC architecture is teachable in a single lab session, and the FLASH memory supports ICSP for in-circuit reprogramming without UV erasers. The 33 GPIO map to breadboard-friendly headers with each port labeled, and the 4 MHz internal oscillator is enough for teaching interrupt-driven programming. Compared to Arduino-style AVR/ARM boards, the trade-off is IDE maturity - MPLAB X with XC8 is free but has a steeper learning curve than Arduino IDE. The PIC16F887 is the modern recommended part for new educational kits.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F877T-04E/L — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F877AT-I/PTG | PIC16F877A-I/LG | PIC16F877A-E/L | PIC16F877-04E/PT | PIC16F877-20I/L | PIC16F887 |
|---|---|---|---|---|---|---|---|
| Package | 44-pin PLCC (L) | 44-pin PLCC (L) - same | 44-pin PLCC (L) - same | 44-pin PLCC (L) - same | 44-pin PLCC (L) - same | 44-pin PLCC (L) - same | 44-pin PLCC (L) - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Max CPU Frequency | 4 MHz | 20 MHz | 20 MHz | 20 MHz | 4 MHz | 20 MHz | 20 MHz |
| FLASH Program Memory | 14 KB (8K x 14) | 14 KB | 14 KB | 14 KB | 14 KB | 14 KB | 14 KB |
| RAM Size | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes |
| EEPROM Size | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes |
| Temperature Grade | -40C to +125C (Automotive) | -40C to +85C (Industrial) | -40C to +85C (Industrial) | -40C to +125C (Automotive) | -40C to +125C (Automotive) | -40C to +85C (Industrial) | -40C to +85C (Industrial) |
| Internal Oscillator | No (external crystal required) | No | No | No | No | No | Yes (31 kHz to 8 MHz) |
| ADC Channels | 8 x 10-bit | 8 x 10-bit (enhanced) | 8 x 10-bit (enhanced) | 8 x 10-bit (enhanced) | 8 x 10-bit | 8 x 10-bit | 14 x 10-bit (enhanced) |
| Silicon Revision | Original (877) | 'A' revision (enhanced) | 'A' revision (enhanced) | 'A' revision (enhanced) | Original (877) | Original (877) | '887' (modern successor) |
Key Differentiators
- Automotive -40C to +125C temperature grade (E suffix) at 4 MHz speed (vs PIC16F877A-I/LG)
- Original silicon revision proven in 25+ years of production (vs PIC16F877A-E/L)
- Mature 4 MHz grade for power-constrained applications (vs PIC16F887)
Design Notes
The PIC16F877T-04E/L operates from 2.0 V to 5.5 V with separate analog (VDD) and digital (VDD) pins. Place a 100 nF decoupling capacitor within 5 mm of each VDD/VSS pair, plus a bulk 10 uF tantalum or ceramic at the regulator output. For ADC accuracy, drive the analog VREF+ pin from a low-noise source separate from VDD - the ADC's PSRR against VDD ripple is only ~30 dB. A ferrite bead between digital VDD and analog VDD reduces conducted switching noise on analog readings.
The 44-pin PLCC package is a surface-mount J-lead with 1.27 mm pitch. Reserve a through-hole PLCC socket footprint on the PCB to allow easy replacement during development. Keep the 4-layer PCB ground plane continuous under the IC; the PLCC thermal pad is not exposed, so no thermal via array is needed. Place the external crystal within 10 mm of OSC1/OSC2 with a guard ring tied to ground to reduce EMI pickup that can corrupt USART timing.
Three common pitfalls: (1) Forgetting to configure the ADCON1 register to set AN0-AN7 as analog vs digital - the default after reset is digital, so ADC reads return 0 silently. (2) Driving MCLR low without the datasheet-specified 10 kohm pull-up to VDD causes spurious resets during in-circuit programming. (3) Using the PIC16F877's Parallel Slave Port (PSP) without understanding its 4.5V absolute maximum - interfacing to a 5V-tolerant but 3.3V-output external bus requires a level translator. Estimated: at 4 MHz with 5V supply, the core draws ~5 mA active and ~1 uA sleep with the watchdog disabled.
Compliance Information
RoHS and REACH compliant per Microchip product page. The 'E' suffix denotes automotive -40C to +125C qualification, but Microchip's PIC16F877 family predates the formal AEC-Q100 certification program and is qualified to the equivalent legacy Microchip automotive flow. Lead-free and Pb-free matte-tin plating.