PIC16F877A-E/L - 8-bit 20MHz 14KB Flash MCU 44-PLCC | Microchip
MPN: PIC16F877A-E/L ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $13.16 | $13.16 |
| 10 | $11.85 | $118.50 |
| 100 | $9.95 | $995.00 |
| 500 | $8.65 | $4,325.00 |
| 1,000 | $7.4 | $7,400.00 |
PIC16F877A-E/L Overview
An 8-bit microcontroller (MCU) is a single-chip computer that integrates a CPU, RAM, non-volatile program memory, peripherals, and I/O on one die. PIC16F-series MCUs belong to the enhanced mid-range family of Microchip's PIC microcontroller hierarchy: PIC10/12/14/16 (base-line and mid-range 8-bit) -> PIC16 (mid-range, enhanced mid-range) -> PICmicro 8-bit -> Microcontroller -> Semiconductor. They are designed for deterministic, low-power embedded control with a small instruction footprint (35 instructions on the PIC16F877A).
Key features of the PIC16F877A include a 10-bit Analog-to-Digital Converter (ADC) with up to 8 input channels, two 8-bit timers plus one 16-bit timer, two Capture/Compare/PWM (CCP) modules, an Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART), a Master Synchronous Serial Port (MSSP) configurable for SPI or I2C, an ICD (In-Circuit Debug) interface, two analog comparators, brown-out reset (BOR), and a programmable watchdog timer. The Harvard architecture and 14-bit instruction word allow compact, predictable code execution.
Typical applications include industrial control systems, HVAC controllers, automotive body and interior electronics, sensor signal conditioning, low-cost instrumentation, and education/development platforms where the PIC16F877A is a long-standing reference design. The wide operating voltage and rich analog/digital peripheral mix make it suitable for replacing multiple discrete components with one programmable solution.
When designing with this device, ensure proper decoupling (100 nF + 10 uF bulk) near VDD pins, place the MCLR pull-up correctly for in-circuit debugging, and verify I/O assignments against the 44-pin PLCC pinout. The internal RC oscillator can be used to save cost, but a crystal is recommended for timing-sensitive UART or PWM applications.
Drop-in alternatives for PIC16F877A-E/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 PIC16F877A-E/L (same form factor and footprint) — differing in Core Architecture, Package, Timers, Operating Temperature, Communication.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F877-20/L
✅ Drop-In ⚠️ 参数待验证✓ In Stock
$4.85 / Unit
View Datasheet →PIC16F877-20I/L
✅ Drop-In ⚠️ 参数待验证✓ In Stock
$9.05 / Unit
View Datasheet →PIC16F871-E/L
✅ Drop-In✓ In Stock
$5.2 / Unit
View Datasheet →PIC18F458-E/L
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F877A-I/L
✅ Drop-In ⚠️ 参数待验证✓ In Stock
$7.12 / Unit
View Datasheet →PIC16F877A-E/L Maximum Ratings & Electrical Characteristics
| Core | PIC16 |
| Architecture | 8-bit Harvard RISC |
| Instruction Set | 35 single-word instructions |
| Instruction Cycle Time | 200 ns @ 20 MHz |
| Maximum Clock Frequency | 20 MHz |
| Program Memory (Flash) | 14 KB (8K x 14 words) |
| Data Memory (SRAM) | 368 bytes |
| Data EEPROM | 256 bytes |
| Supply Voltage (VDD) | 2.0 V to 5.5 V |
| Operating Temperature | -40 C to +125 C (Extended grade, "E") |
| I/O Pins | 33 |
| ADC | 10-bit, up to 8 channels |
| Timers | 2 x 8-bit, 1 x 16-bit |
| CCP Modules | 2 (Capture/Compare/PWM) |
| Serial Interfaces | MSSP (SPI / I2C), EUSART (RS-232/RS-485) |
| Comparators | 2 analog |
| In-Circuit Debug | Yes (ICD) |
| Brown-out Reset | Yes |
| Watchdog Timer | Yes (programmable) |
| Package | 44-pin PLCC (J-lead, 16.59 x 16.59 mm) |
| Mounting Type | Surface Mount |
| MSL Level | 3 (168 hours) |
| RoHS Status | Compliant |
PIC16F877A-E/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 control / Analog input 5 |
| Pin 9 | RE1/WR/AN6 — PORTE bit 1 / Parallel port write control / Analog input 6 |
| Pin 10 | RE2/CS/AN7 — PORTE bit 2 / Parallel port chip select / Analog input 7 |
| Pin 11 | VDD — Positive supply voltage (+5 V typical) |
| 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 I/O |
| Pin 17 | RC2/CCP1 — PORTC bit 2 / CCP1 I/O (Capture/Compare/PWM) |
| 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 / EUSART async transmit / sync clock |
| Pin 22 | RC7/RX/DT — PORTC bit 7 / EUSART async receive / sync 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 voltage (+5 V typical) |
| Pin 33 | RB0/INT — PORTB bit 0 / External interrupt input |
| Pin 34 | RB1 — PORTB bit 1 |
| Pin 35 | RB2 — PORTB bit 2 |
| Pin 36 | RB3/PGM — PORTB bit 3 / Low-voltage programming input |
| Pin 37 | RB4 — PORTB bit 4 |
| Pin 38 | RB5 — PORTB bit 5 |
| Pin 39 | RB6/PGC — PORTB bit 6 / In-circuit debugger clock |
| Pin 40 | RB7/PGD — PORTB bit 7 / In-circuit debugger data |
| Pin 41 | NC — Not connected (per datasheet) |
| Pin 42 | NC — Not connected (per datasheet) |
| Pin 43 | NC — Not connected (per datasheet) |
| Pin 44 | NC — Not connected (per datasheet) |
Typical Applications
PIC16F877A-E/L is suitable for 6 applications: Industrial Control Systems, HVAC and Building Automation, Educational and Development Platforms, Sensor Signal Conditioning Nodes, Automotive Body Electronics, Low-Cost Instrumentation.
Industrial Control Systems
The PIC16F877A-E/L is a strong fit for industrial control with 33 digital I/O to drive relays, contactors, and discrete sensors, plus a 10-bit ADC for analog process variables. Its 2.0 V to 5.5 V supply range tolerates 24 V industrial bus rails after simple regulation. Hardware PWM and CCP modules simplify closed-loop PID loops for motor or valve control without software overhead.
Recommended
HVAC and Building Automation
The PIC16F877A-E/L handles multi-zone HVAC control by reading temperature sensors via its 10-bit ADC and driving triac/SSR outputs through its CCP/PWM modules. The MSSP interface supports I2C temperature/humidity sensor arrays, while EUSART links to building management networks. The Extended temperature grade (-40 C to +125 C) supports unconditioned rooftop and basement installations.
Recommended
Educational and Development Platforms
The PIC16F877A-E/L is the canonical reference microcontroller for embedded systems curricula, with decades of academic tutorials, datasheets, and example code. Its 44-pin PLCC is easy to socket on development boards, while the in-circuit debugger (ICD) interface enables live debugging in MPLAB X. The 14 KB Flash accommodates multiple student projects without reprogramming hardware.
Recommended
Sensor Signal Conditioning Nodes
The PIC16F877A-E/L integrates sensor signal paths by multiplexing multiple analog sensors through the 10-bit ADC, processing thresholds, and driving outputs via SPI or UART. Its 5 MIPS performance is adequate for digital filtering (moving average, basic Kalman) on slow-changing sensor signals. The wide 2.0 V to 5.5 V supply supports battery and 5 V bus operation.
Recommended
Automotive Body Electronics
The PIC16F877A-E/L is used in non-safety automotive body modules such as interior lighting controllers, seat adjusters, and HVAC panels. Its Extended temperature grade (-40 C to +125 C) handles under-dash environments, while the 33 I/O support multiple switch/LED loads. For safety-critical modules, migrate to AEC-Q100-qualified PIC16F parts; the PIC16F877A itself is not AEC-Q100 qualified.
Recommended
Low-Cost Instrumentation
The PIC16F877A-E/L drives low-cost bench instruments such as panel meters, function generators, and signal analyzers using its PWM modules to synthesize waveforms and its 10-bit ADC to digitize measurements. Its UART enables USB-to-serial interface bridges for PC connectivity. The 14 KB Flash stores lookup tables and calibration data, simplifying firmware updates.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F877A-E/L — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F877-20/L | PIC16F871-E/L | PIC18F458-E/L | PIC16F877A-I/L |
|---|---|---|---|---|---|
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Package | 44-pin PLCC (J-lead) | 44-pin PLCC - same | 44-pin PLCC - same | 44-pin PLCC - same | 44-pin PLCC - same |
| Core | PIC16 (8-bit, 14-bit instruction) | PIC16 - same | PIC16 - same | PIC18 (16-bit instruction) | PIC16 - same |
| Program Memory (Flash) | 14 KB Flash | ROM (one-time programmable) | 13 KB Flash | 32 KB Flash | 14 KB Flash |
| Data Memory (SRAM) | 368 bytes | 368 bytes | 368 bytes | 1536 bytes | 368 bytes |
| Maximum Clock Frequency | 20 MHz | 20 MHz | 20 MHz | 40 MHz | 20 MHz |
| Operating Temperature | -40 C to +125 C (Extended) | 0 C to +70 C (Commercial) | -40 C to +125 C (Extended) | -40 C to +125 C (Extended) | -40 C to +85 C (Industrial) |
| ADC Channels | 8 x 10-bit | 8 x 10-bit | 5 x 10-bit | 8 x 10-bit | 8 x 10-bit |
Key Differentiators
- Extended temperature grade for industrial/automotive environments (vs PIC16F877A-I/L)
- Decades of design heritage and reference material (vs PIC16F887-I/L)
- More ADC channels than PIC16F871 (vs PIC16F871-E/L)
Design Notes
Place 100 nF ceramic decoupling capacitors as close as possible to each VDD/AVDD pin (pins 11 and 32), plus a 10 uF bulk capacitor near the MCU. VSS pins (12 and 31) must both be returned to a common low-impedance ground plane. Estimated: the PIC16F877A typically draws 5-15 mA active at 20 MHz and 5 V; the brown-out reset (BOR) is configurable via the configuration word to assert below 4.0 V.
The PLCC-44 package uses J-leads and accepts through-hole sockets that simplify programming and rework. Use a PLCC-44 socket (e.g., 3M Textool) on development boards. Estimated: keep the MCLR pull-up (typically 10 kohm) within 5 mm of pin 1 to avoid spurious resets; route the PGC/PGD ICD signals (RB6/RB7) away from switching traces to preserve debug signal integrity.
Do not leave MCLR floating - always tie it to VDD through a 10 kohm pull-up or directly if hardware reset is not needed. Watchdog timer must be disabled in configuration or cleared in software to avoid unintended resets. The internal oscillator (INTOSC) saves an external crystal but limits timing accuracy to roughly 2%, which is insufficient for UART communication without calibration.
Compliance Information
RoHS compliance verified from Microchip product page. PIC16F877A-E/L is not AEC-Q100 qualified; for AEC-Q100 automotive, use PIC16F877A-E/L equivalent devices in the Microchip automotive portfolio.