PIC16F877T-20I/L - 8-Bit 20MHz 14KB Flash MCU | Microchip
MPN: PIC16F877T-20I/L ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $6.4 | $6.40 |
| 10 | $5.76 | $57.60 |
| 100 | $5.11 | $511.00 |
| 500 | $4.6 | $2,300.00 |
| 1,000 | $4.18 | $4,180.00 |
PIC16F877T-20I/L Overview
What is a PIC16F microcontroller? The PIC16F family is a category of 8-bit Harvard-architecture RISC microcontrollers from Microchip Technology, belonging to the broader class of microcontrollers (MCU) within embedded systems semiconductors. These devices integrate CPU core, Flash program memory, RAM, EEPROM, and peripherals (ADC, USART, I2C/SPI, timers, PWM, capture/compare) on a single die, executing one instruction per 200 ns cycle at 20 MHz. They sit in the system hierarchy above discrete logic and below 32-bit Cortex-M MCUs, optimized for cost-sensitive deterministic control.
The PIC16F877T-20I/L delivers 33 digital I/O lines, a 10-bit 8-channel ADC, two 8-bit and one 16-bit timer, MSSP (SPI/I2C), USART, and 256 bytes of EEPROM data memory. The "T" suffix denotes tape-and-reel packaging and the "I" indicates the industrial temperature grade; the "20" specifies the 20 MHz maximum clock.
Architecturally the device uses a 14-bit instruction word, 8-bit data path, separate program and data buses (Harvard), and a hardware stack with 8 levels. The Flash memory supports 100,000 erase/write cycles typical and 40-year data retention per the Microchip datasheet family, while in-circuit serial programming (ICSP) allows field updates via two pins.
Typical applications include industrial process control, HVAC and building automation, automotive body electronics (non-safety), instrumentation front-ends, and legacy embedded product replacements. The wide peripheral set also suits sensor hub nodes, motor control loops, and human-machine interface (HMI) controllers using character LCDs.
A key design consideration is the obsolete status note from Microchip (recommends PIC16F887 for new designs), but the 44-pin PLCC remains drop-in compatible with the successor family for many footprints. Designers should verify the ICD/debug header compatibility and use MPLAB X IDE with a PICkit or ICD programmer during development.
This page synthesizes distributor pricing, drop-in 44-PLCC alternatives, datasheet pinout, and practical design notes that go beyond the manufacturer datasheet alone.
Drop-in alternatives for PIC16F877T-20I/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-20I/L (same form factor and footprint) — differing in Package, Core Architecture, RoHS Status, Operating Temperature, Timers.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F877-20I/L
✅ Drop-In✓ In Stock
$9.05 / Unit
View Datasheet →PIC16F877-20/L
✅ Drop-In✓ In Stock
$4.85 / 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 →PIC16F874T-20I/L
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F871-I/L
✅ Drop-In✓ In Stock
$2.75 / Unit
View Datasheet →PIC16F877T-20I/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 | 20 MHz |
| Instruction Cycle Time | 200 ns |
| Operating Voltage Range | 4.0 V to 5.5 V |
| I/O Pins | 33 |
| ADC | 10-bit, 8 channels |
| Timers | 2 x 8-bit, 1 x 16-bit |
| Communication | USART, MSSP (SPI/I2C) |
| PWM Channels | 2 (CCP module) |
| Package | 44-pin PLCC (J-lead, 16.59 x 16.59 mm) |
| Operating Temperature | -40C to +85C (Industrial) |
| Mounting Type | Surface Mount |
| RoHS Status | Compliant |
| Programming Interface | ICSP (In-Circuit Serial Programming) |
PIC16F877T-20I/L Pin Configuration
| Pin 1 | MCLR/VPP — Master Clear (Reset) input or programming voltage |
| Pin 2 | RA0/AN0 — Port A bit 0 / Analog input 0 |
| Pin 3 | RA1/AN1 — Port A bit 1 / Analog input 1 |
| Pin 4 | RA2/AN2 — Port A bit 2 / Analog input 2 |
| Pin 5 | RA3/AN3/VREF+ — Port A bit 3 / Analog input 3 / ADC positive reference |
| Pin 6 | RA4/T0CKI — Port A bit 4 / Timer 0 clock input |
| Pin 7 | RA5/AN4/SS — Port A bit 5 / Analog input 4 / SPI slave select |
| Pin 8 | RE0/RD/AN5 — Port E bit 0 / Read control for parallel slave port / Analog input 5 |
| Pin 9 | RE1/WR/AN6 — Port E bit 1 / Write control / Analog input 6 |
| Pin 10 | RE2/CS/AN7 — Port E bit 2 / Chip select / Analog input 7 |
| Pin 11 | VDD — Positive power supply (4.0V to 5.5V) |
| Pin 12 | VSS — Ground reference |
| Pin 13 | OSC1/CLKIN — Oscillator input / external clock |
| Pin 14 | OSC2/CLKOUT — Oscillator output / clock out |
| Pin 15 | RC0/T1OSO/T1CKI — Port C bit 0 / Timer 1 oscillator output / clock input |
| Pin 16 | RC1/T1OSI/CCP2 — Port C bit 1 / Timer 1 oscillator input / CCP2 PWM |
| Pin 17 | RC2/CCP1 — Port C bit 2 / CCP1 PWM output |
| Pin 18 | RC3/SCK/SCL — Port C bit 3 / SPI clock / I2C clock |
| Pin 19 | RD0/PSP0 — Port D bit 0 / Parallel slave port bit 0 |
| Pin 20 | RD1/PSP1 — Port D bit 1 / Parallel slave port bit 1 |
| Pin 21 | RD2/PSP2 — Port D bit 2 / Parallel slave port bit 2 |
| Pin 22 | RD3/PSP3 — Port D bit 3 / Parallel slave port bit 3 |
| Pin 23 | RC4/SDI/SDA — Port C bit 4 / SPI data in / I2C data |
| Pin 24 | RC5/SDO — Port C bit 5 / SPI data out |
| Pin 25 | RC6/TX/CK — Port C bit 6 / USART TX / clock |
| Pin 26 | RC7/RX/DT — Port C bit 7 / USART RX / data |
| Pin 27 | RD4/PSP4 — Port D bit 4 / Parallel slave port bit 4 |
| Pin 28 | RD5/PSP5 — Port D bit 5 / Parallel slave port bit 5 |
| Pin 29 | RD6/PSP6 — Port D bit 6 / Parallel slave port bit 6 |
| Pin 30 | RD7/PSP7 — Port D bit 7 / Parallel slave port bit 7 |
| Pin 31 | VSS — Ground reference |
| Pin 32 | VDD — Positive power supply (4.0V to 5.5V) |
| Pin 33 | RB0/INT — Port B bit 0 / External interrupt |
| Pin 34 | RB1 — Port B bit 1 |
| Pin 35 | RB2 — Port B bit 2 |
| Pin 36 | RB3/PGM — Port B bit 3 / Low-voltage programming |
| Pin 37 | RB4 — Port B bit 4 |
| Pin 38 | RB5 — Port B bit 5 |
| Pin 39 | RB6/PGC — Port B bit 6 / ICSP clock |
| Pin 40 | RB7/PGD — Port B bit 7 / ICSP data |
| Pin 41 | VSS — Ground reference |
| Pin 42 | VDD — Positive power supply (4.0V to 5.5V) |
| Pin 43 | NC — Not connected (per datasheet) |
| Pin 44 | NC — Not connected (per datasheet) |
Typical Applications
PIC16F877T-20I/L is suitable for 6 applications: Industrial Process Control, Building Automation / HVAC, Instrumentation Front-End, Automotive Body Electronics, Sensor Hub / Data Acquisition Node, Character LCD / HMI Controller.
Industrial Process Control
The PIC16F877T-20I/L is well-suited for industrial process control applications because its 8-channel 10-bit ADC, 33 digital I/O lines, and industrial -40C to +85C temperature range allow direct interfacing with 4-20 mA loops, RTD/thermocouple signal conditioning front-ends, and panel-mount keypads. The 14 KB Flash stores PID control algorithms and Modbus RTU command libraries, while the MSSP peripheral handles I2C sensor arrays and the USART supports RS-485 multi-drop networks. The 200 ns instruction cycle at 20 MHz provides deterministic loop times below 1 ms for closed-loop pressure, flow, and temperature regulation. The 44-pin PLCC package is field-replaceable in legacy PLC modules and supports conformal coating for harsh factory environments.
Recommended
Building Automation / HVAC
In HVAC and building automation, the PIC16F877T-20I/L controls variable-speed fans, damper actuators, and multi-zone thermostats with its 2 PWM channels (CCP module) and 16-bit timer for energy-efficient switching. The USART interfaces to BACnet or Modbus networks, while the I2C bus reads temperature/humidity sensors and real-time clocks. The 368-byte RAM accommodates scheduling tables, and the 256-byte EEPROM stores user-setpoint profiles that survive power cycles. The wide 4.0-5.5 V supply range tolerates rectified 24 VAC transformer outputs common in HVAC controls, and the industrial temperature grade handles attic and rooftop enclosures.
Recommended
Instrumentation Front-End
The PIC16F877T-20I/L serves as the digital controller in bench-top instrumentation such as digital multimeters, oscilloscope front panels, and laboratory data loggers. Its 10-bit ADC digitizes sensor outputs at up to 30 kS/s aggregate, while the SPI bus drives high-resolution LCD displays and external DACs for stimulus generation. The 14 KB Flash stores calibration tables and front-panel menu logic, and the 33 I/O lines scan keypads, rotary encoders, and status LEDs. Hardware USART streams measurement data to PCs at 115200 baud. The deterministic 200 ns instruction cycle enables precise timing for sample-and-hold sequencing.
Recommended
Automotive Body Electronics
The PIC16F877T-20I/L appears in non-safety automotive body modules such as window lift controllers, seat position memory, mirror adjusters, and interior lighting dimmers. The 33 I/O lines drive H-bridge relays and PWMs for motor speed control, while the ADC monitors current sense resistors for stall detection. The USART interfaces to LIN (Local Interconnect Network) slave transceivers, and the MSSP drives I2C-controlled ambient light sensors. The industrial -40C to +85C rating covers cabin environments but is NOT AEC-Q100 qualified - safety-critical ECUs require PIC18 or dsPIC families.
Recommended
Sensor Hub / Data Acquisition Node
The PIC16F877T-20I/L functions as a low-cost sensor hub aggregating readings from multiple I2C and SPI sensors (temperature, humidity, pressure, accelerometers) and forwarding the data over USART or RS-485 to a central controller. The 8-channel ADC reads legacy analog 0-5 V or 4-20 mA transducers, while the MSSP multiplexes up to 8 I2C devices via address steering. The 14 KB Flash supports TinyOS-style or custom sensor-fusion algorithms, and the 256-byte EEPROM stores calibration constants and node ID. Low power consumption (~2 mA active at 5 MHz) makes it suitable for solar-powered remote telemetry units.
Recommended
Character LCD / HMI Controller
The PIC16F877T-20I/L is widely deployed as a human-machine interface controller for character LCD displays (HD44780-compatible 16x2, 20x4, 40x4 panels). The MSSP SPI interface drives the LCD in serial mode with a single 74HC595 shift register, freeing GPIO for keypad scanning. The 14 KB Flash stores multilingual character maps and menu state machines, while 368-byte RAM holds display buffers. USART connectivity enables remote configuration from a host processor. The 44-pin PLCC package is widely supported by legacy HMI development kits.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F877T-20I/L — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F877-20I/L | PIC16F877-20/L | PIC16F877A-I/LG | PIC16F877A-E/L | PIC16F874T-20I/L |
|---|---|---|---|---|---|---|
| Package | 44-pin PLCC (J-lead) | 44-pin PLCC - same | 44-pin PLCC - same | 44-pin PLCC - same | 44-pin PLCC - same | 44-pin PLCC - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Program Memory (Flash) | 14 KB | 14 KB | 14 KB | 14 KB | 14 KB | 7 KB |
| RAM Size | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 192 bytes |
| EEPROM Size | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes | 256 bytes |
| Maximum Frequency | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz |
| I/O Pins | 33 | 33 | 33 | 33 | 33 | 33 |
| Temperature Grade | Industrial (-40C to +85C) | Industrial (-40C to +85C) | Commercial (0C to +70C) | Industrial (-40C to +85C) | Enhanced (-40C to +125C) | Industrial (-40C to +85C) |
Key Differentiators
- Microchip actively supports this part despite recommending PIC16F887 for new designs (vs PIC16F887-I/L)
- Higher program memory than lower-tier PIC16 siblings (vs PIC16F874T-20I/L)
- Industrial temperature grade across all variants (vs PIC16F877-20/L)
Design Notes
The PIC16F877T-20I/L requires a stable 4.0-5.5 V supply on VDD (pins 11, 32, 42). Per Microchip datasheet guidance, place a 100 nF decoupling capacitor close to each VDD pin and a 10 uF bulk capacitor on the supply rail. The brown-out reset (BOR) is enabled by configuration bits and holds the device in reset until VDD rises above the BOR threshold (~4.0 V typical). For battery applications, the quiescent current in sleep mode is < 1 uA typical but the ADC and USART must be disabled before entering sleep to avoid leakage.
When laying out the 44-pin PLCC footprint, ensure the 16.59 x 16.59 mm PCB land pattern follows JEDEC MS-018 (PLCC44). Per Microchip package drawings, J-leads require 1.27 mm (0.05 inch) pitch with 0.80 mm lead width. Place the ICSP connector (PGC on pin 39, PGD on pin 40, MCLR on pin 1, VSS on pin 12) at the board edge for in-circuit programming access. Keep crystal traces to OSC1/OSC2 (pins 13-14) short and symmetric to avoid clock jitter above 20 MHz.
Estimated configuration-fuse pitfalls: the PIC16F877T-20I/L requires CONFIG1 word bit 4 (FOSC) set correctly for HS (high-speed crystal) mode when using a >4 MHz resonator, otherwise the oscillator fails to start. Per Microchip datasheet, the WDT (watchdog timer) is enabled by default - clear WDTE in CONFIG1 if not used. The LVP (low-voltage programming) bit enables ICSP via pin 33 (RB3/PGM); leave LVP=ON if using PICkit programmers with low-voltage mode. Forgetting to configure ADC port pins as analog inputs (ANSEL/ADCON1 register) causes floating readings on RA0-RA5.
Compliance Information
RoHS compliant per Microchip product declaration. Not AEC-Q100 qualified - automotive safety-critical applications require PIC18 or dsPIC families. Microchip quality system is QS-9000 compliant (legacy) and ISO 9001 certified for PIC microcontrollers.