PIC16F877-20/P - 8-Bit 20MHz 14KB Flash MCU 40-PDIP | Microchip
N.º de pieza: PIC16F877-20/P ✓ Activo| Cant. | Precio unitario | Total |
|---|---|---|
| 1 | $9.95 | $9,95 |
| 10 | $8.75 | $87,50 |
| 100 | $7.55 | $755,00 |
| 500 | $6.85 | $3.425,00 |
| 1.000 | $6.2 | $6.200,00 |
PIC16F877-20/P Descripción general
An 8-bit microcontroller (MCU) is a single-chip computer built around an 8-bit data bus, optimized for embedded control where deterministic behavior, low cost, and minimal external components matter more than raw throughput. The PIC16F877 belongs to the PIC mid-range family, which sits between the baseline PIC10/12/16 and the enhanced PIC18 families in Microchip's taxonomy: PIC MCU -> PIC16 mid-range 8-bit MCU -> CMOS FLASH MCU -> embedded controller. This 200ns-instruction architecture executes 35 single-word instructions, making it easy to program in assembly or C (XC8).
Key specifications include a 20MHz maximum clock, 14KB Flash, 368 bytes SRAM, 256 bytes EEPROM, 8 channels of 10-bit Analog-to-Digital converter, two Capture/Compare/PWM modules, a USART, MSSP configurable as SPI or I2C, two 8-bit timers plus one 16-bit timer, and a 25mA source/sink per I/O capability. The device operates from 4.0V to 5.5V across the industrial -40C to +85C range with 5V typical Vdd.
The architecture combines a Harvard-style program/data bus split with a RISC-like instruction set, enabling deterministic interrupt latency and compact code density. The in-system programmable Flash allows firmware updates without removal from the application circuit, while the integrated ICD (In-Circuit Debug) pin pair supports MPLAB ICD debug hardware for real-time emulation.
Typical applications include industrial control systems, HVAC controllers, security alarm panels, motor control loops, instrumentation, and educational/development platforms. The wide peripheral set and DIP-40 form factor make it especially common in legacy designs, hobbyist projects, and breadboard-friendly prototypes.
Designers should plan for a stable 20MHz crystal or resonator on OSC1/OSC2, decoupling 100nF near each Vdd pin, and MCLR pull-up configuration during reset. Because the PIC16F877 family has been surpassed by the PIC16F887 (more memory, lower cost) and PIC16F1xxx enhanced cores, new designs should evaluate these drop-in successors unless the existing toolchain or firmware mandates the classic device.
This page synthesizes distributor pricing, drop-in alternatives (PIC16F874A, PIC16F877A), and practical design notes not found in the manufacturer datasheet alone.
Alternativas directas para PIC16F877-20/P — mismo encapsulado, compatible pin a pin. Se excluyen las piezas de otro encapsulado que requieren retrabajo de la PCB.
Variantes de esta serie
Modelos de la misma serie compatibles directamente con PIC16F877-20/P (mismo factor de forma y huella) — difiere en Package, Core Architecture, ADC, Timers, Mounting Type.
Herramienta de comparación rápida — seleccione piezas alternativas para compararlas lado a lado:
PIC16F877A-I/P
✅ Sustitución directa✓ En stock
Consulte el precio
Ver hoja de datos →PIC16F877-20/L
✅ Sustitución directa✓ En stock
$4.85 / unidad
Ver hoja de datos →PIC16F874A-I/P
✅ Sustitución directa📋 Alternativa de referencia (no en el catálogo)
PIC16F887-I/P
✅ Sustitución directa✓ En stock
$1.88 / unidad
Ver hoja de datos →PIC16F877-04E/PQ
✅ Sustitución directa✓ En stock
$5.72 / unidad
Ver hoja de datos →PIC16F877-20E/P
✅ Sustitución directa ⚠️ Especificaciones sin verificar📋 Alternativa de referencia (no en el catálogo)
PIC16F877-20/P Valores máximos y características eléctricas
| Product Type | 8-bit Microcontroller (MCU) |
| Core Architecture | PIC16 mid-range (Harvard, RISC-like) |
| Program Memory | 14 KB Flash (8K x 14 words), in-system programmable |
| RAM | 368 bytes |
| EEPROM Data Memory | 256 bytes |
| Maximum CPU Frequency | 20 MHz |
| Instruction Cycle Time | 200 ns |
| Instruction Set Size | 35 single-word instructions |
| Supply Voltage (Vdd) | 4.0 V to 5.5 V (5 V typical) |
| Temperatura de funcionamiento | 0C to +70C (commercial, -40C to +85C for industrial -20I suffix) |
| Digital I/O Pins | 33 |
| ADC | 8 channels, 10-bit resolution |
| Timers | 2 x 8-bit + 1 x 16-bit |
| Capture/Compare/PWM | 2 modules (CCP) |
| Serial Interfaces | 1 x USART (SCI), 1 x MSSP (SPI / I2C configurable) |
| Encapsulado | 40-pin PDIP (DIP-40, 0.600 inch / 15.24 mm) |
| Tipo de montaje | Through-Hole (THT) |
| Estado RoHS | Compliant |
| Lead-Free | Yes |
| I/O Sink/Source Current | 25 mA per pin |
| In-Circuit Debug | ICD support via PGD/PGC pins |
Configuración de pines de PIC16F877-20/P
| Pin 1 | MCLR — Master Clear (reset) input, active low |
| Pin 2 | RA0/AN0 — PORTA bit 0 / Analog input 0 |
| Pin 3 | RA1/AN1 — PORTA bit 1 / Analog input 1 |
| Pin 4 | RA2/AN2 — PORTA bit 2 / Analog input 2 |
| Pin 5 | RA3/AN3/VREF+ — PORTA bit 3 / Analog input 3 / Voltage reference positive |
| 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 slave port read / Analog input 5 |
| Pin 9 | RE1/WR/AN6 — PORTE bit 1 / Parallel slave port write / Analog input 6 |
| Pin 10 | RE2/CS/AN7 — PORTE bit 2 / Parallel slave port chip select / Analog input 7 |
| Pin 11 | VDD — Positive supply voltage (5V typical) |
| Pin 12 | VSS — Ground reference |
| Pin 13 | OSC1/CLKIN — Oscillator crystal input or external clock input |
| Pin 14 | OSC2/CLKOUT — Oscillator crystal output or 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 |
| Pin 18 | RC3/SCK/SCL — PORTC bit 3 / SPI clock / I2C clock |
| Pin 19 | RD0/PSP0 — PORTD bit 0 / Parallel slave port bit 0 |
| Pin 20 | RD1/PSP1 — PORTD bit 1 / Parallel slave port bit 1 |
| Pin 21 | RD2/PSP2 — PORTD bit 2 / Parallel slave port bit 2 |
| Pin 22 | RD3/PSP3 — PORTD bit 3 / Parallel slave port 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 async transmit or sync clock |
| Pin 26 | RC7/RX/DT — PORTC bit 7 / USART async receive or sync data |
| 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 (5V 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 ICSP programming entry |
| Pin 37 | RB4 — PORTB bit 4 |
| Pin 38 | RB5 — PORTB bit 5 |
| Pin 39 | RB6/PGC — PORTB bit 6 / In-circuit debugger clock / ICSP clock |
| Pin 40 | RB7/PGD — PORTB bit 7 / In-circuit debugger data / ICSP data |
Aplicaciones típicas
PIC16F877-20/P es adecuado para 7 aplicacións: Industrial Process Control, Security and Alarm Systems, HVAC and Climate Controllers, Motor Control and Robotics, Educational Development Platforms, Test and Measurement Instrumentation, Automotive Aftermarket Accessories.
Industrial Process Control
The PIC16F877-20/P suits industrial control PLCs and process instrumentation thanks to its 8-channel 10-bit ADC for analog sensor inputs, dual Capture/Compare/PWM modules for actuator control, and USART for RS-485/RS-232 communication. The 20MHz CPU delivers deterministic 200ns instruction cycles ideal for closed-loop control. Its 14KB program space accommodates multi-protocol firmware, and 368 bytes of RAM support moderate data buffering. The wide 4.0-5.5V supply range tolerates noisy 24V-derived industrial rails after regulation. Engineers value the PIC16F877-20/P for HVAC damper controllers, conveyor sequencing, and SCADA slave terminals.
Recomendado
Security and Alarm Systems
The PIC16F877-20/P is well-suited to security alarm panels and access-control terminals due to its 33 I/O pins that can interface PIR motion sensors, magnetic reed switches, keypads, and indicator LEDs without external muxing. Its 256 bytes of EEPROM store zone configuration and event logs that survive power loss. The MSSP block provides SPI or I2C to drive keypads or non-volatile FRAM, while 14KB Flash accommodates complex arming-state machines. The 20MHz CPU executes debounce and supervision logic in real time, and the wide 4-5.5V supply is robust on backup-battery rails. Common designs include 8-16 zone hardwired panels.
Recomendado
HVAC and Climate Controllers
The PIC16F877-20/P drives HVAC thermostat and damper-actuator designs where 8 channels of 10-bit ADC read thermistor temperature sensors, and dual CCP modules generate PWM to control blower fan speeds and three-way valve actuators. Its 20MHz CPU performs PID control loops with sub-millisecond update rates. The 33 digital I/O lines interface 7-segment displays, keypad inputs, and relay drivers. The 14KB Flash fits complex scheduling firmware including holiday calendars. The 256-byte EEPROM stores setpoints across power cycles. Engineers commonly pair the PIC16F877-20/P with the LM35 analog temp sensor and zero-cross SSR drivers.
Recomendado
Motor Control and Robotics
The PIC16F877-20/P fits brushed-DC and unipolar stepper motor controllers through its dual Capture/Compare/PWM modules generating up to 10-bit PWM at tens of kHz for speed control. Its 20MHz instruction cycle delivers 200ns loop times, enabling smooth PID control of small DC gearmotors used in robotics and small CNC machines. The 8-channel ADC reads current-sense amplifiers and potentiometers for feedback. The MSSP supports SPI to smart power drivers and I2C to digital accelerometers. The 40-pin PDIP package is breadboard-friendly for hobbyist and educational robotics kits.
Recomendado
Educational Development Platforms
The PIC16F877-20/P remains a fixture in university microcontroller courses and hobbyist training kits thanks to its breadboard-friendly 40-pin PDIP package and the PIC16 mid-range's 35-instruction RISC-like instruction set. The device supports ICSP (In-Circuit Serial Programming) and ICD (In-Circuit Debug) via dedicated PGD/PGC pins, enabling real-time debugging with the MPLAB ICD hardware. Combined with XC8 C compiler and MPLAB X IDE, students learn embedded C, peripheral driver writing, and assembly programming. The mature toolchain and abundant teaching material make it a low-risk choice for coursework in digital systems, embedded programming, and mechatronics labs.
Recomendado
Test and Measurement Instrumentation
The PIC16F877-20/P suits bench instruments and portable data loggers where its 8-channel 10-bit ADC acquires voltage or sensor signals at up to ~50ksps, and the USART streams data to a PC terminal or LCD display. Its 14KB Flash holds moderate firmware for RMS calculation, statistics, and USB-CDC bridges using the MSSP. The 368-byte RAM supports small ring buffers for asynchronous acquisition. The 33 digital I/O pins drive 7-segment or character LCDs and read rotary encoders or pushbuttons. The 4-5.5V supply range is compatible with USB-derived 5V rails, simplifying integration in lab tools.
Recomendado
Automotive Aftermarket Accessories
The PIC16F877-20/P powers aftermarket automotive accessories like alarm systems, fuel-economy displays, and auxiliary lighting controllers where 8 ADC channels read battery voltage, thermistors, and pressure sensors. The USART interfaces GPS modules and OBD-II readers, while the MSSP drives SPI LED drivers for custom lighting. Its -40C to +85C operating range handles under-dash automotive environments. The 14KB Flash fits complex state machines for security and lighting sequences. Engineers typically use the PIC16F877-20/P in non-safety automotive accessories where AEC-Q100 qualification is not required.
Recomendado
Resumen de productos recomendados
Datos de referencia de ingeniería para PIC16F877-20/P — comparación, orientación de diseño e información de cumplimiento.
Guía de selección
Comparación con alternativas
| Parámetro | Este producto | PIC16F877A-I/P | PIC16F877-20/L | PIC16F874A-I/P | PIC16F887-I/P | PIC16F877-04E/P | PIC16F877-20E/P |
|---|---|---|---|---|---|---|---|
| Package | PDIP-40 (0.600 inch) | PDIP-40 (0.600 inch) - same | CDIP-40W (windowed CERDIP) - same pinout | PDIP-40 (0.600 inch) - same | PDIP-40 (0.600 inch) - same | PDIP-40 (0.600 inch) - same | PDIP-40 (0.600 inch) - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Program Memory (Flash) | 14 KB | 14 KB | 14 KB | 4 KB (-71%) | 14 KB | 14 KB | 14 KB |
| RAM | 368 bytes | 368 bytes | 368 bytes | 192 bytes (-48%) | 368 bytes | 368 bytes | 368 bytes |
| EEPROM | 256 bytes | 256 bytes | 256 bytes | 128 bytes (-50%) | 256 bytes | 256 bytes | 256 bytes |
| Maximum CPU Frequency | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 4 MHz (-80%) | 20 MHz |
| ADC Channels / Resolution | 8 / 10-bit | 8 / 10-bit (improved linearity) | 8 / 10-bit | 8 / 10-bit | 14 / 10-bit | 8 / 10-bit | 8 / 10-bit |
| Operating Temperature | 0C to +70C (commercial) | -40C to +85C (industrial) | 0C to +70C (commercial) | -40C to +85C (industrial) | -40C to +85C (industrial) | -40C to +125C (extended) | -40C to +125C (extended) |
| Power-Saving Modes | Sleep | Sleep + nanoWatt | Sleep | Sleep + nanoWatt | Sleep + nanoWatt XLP | Sleep | Sleep |
Diferenciadores clave
- Mature code base and toolchain support (frente a PIC16F887-I/P)
- Industrial temperature variant available (frente a PIC16F877-04E/P)
- Larger Flash and RAM than the PIC16F874 family (frente a PIC16F874A-I/P)
Notas de diseño
Place a 100nF decoupling capacitor as close as possible to each Vdd pin (pins 11 and 32), plus a bulk 10uF tantalum or electrolytic at the supply entry. The PIC16F877-20/P has two Vdd/Vss pairs (pins 11/12 and 31/32) and skipping the second pair causes brownout glitches during high-frequency switching loads. Vdd must be 4.0V to 5.5V; operation below 4.0V violates spec even though the device may still appear to run.
When using the on-chip ICD debug feature, do NOT pull PGD (RB7/PGD) or PGC (RB6/PGC) high externally during reset - ICD requires these pins to be released. The MCLR pin (pin 1) must be tied high through a 10k pull-up; leaving it floating causes intermittent resets. If the application does not use ICD, ensure RB3/PGM, RB6/PGC, RB7/PGD are not loaded with capacitance exceeding the ICSP spec or ICSP programming will fail.
Estimated: at 20MHz Fosc the instruction cycle is 200ns, and a 4-cycle ADC conversion takes ~3.2us with a 32MHz internal ADC clock. Place the analog reference decoupling (1uF to 10uF) on pin 5 (RA3/VREF+) if VREF+ is enabled, and keep analog traces short and away from high-current digital switching to minimize ADC channel crosstalk. For the HS oscillator mode, the load capacitor values on OSC1/OSC2 depend on the crystal's load capacitance; see the oscillator section of the Microchip datasheet (PIC16F87X Family Reference Manual).
Long wires on PORTB RB0 (external interrupt) and on the USART pins (RC6/TX, RC7/RX) benefit from series 100 ohm resistors near the MCU to damp reflections. The MSSP I2C lines (RC3/SCL, RC4/SDA) require pull-up resistors sized per the I2C spec - typical values are 4.7k for 100kHz Standard mode and 2.2k for 400kHz Fast mode. The CCP1 and CCP2 PWM outputs are 5V CMOS drive capable of 25mA sink/source.
When migrating PIC16F877 firmware to the PIC16F887 (recommended for new designs per the Microchip product page), preserve the same 40-pin PDIP footprint. The PIC16F887 adds enhanced mid-range instructions, nanoWatt XLP modes, and 14 ADC channels instead of 8. Existing PIC16F877 C code typically recompiles cleanly under XC8, but verify the configuration bits: the PIC16F887's CONFIG2 register layout differs slightly. Use MPLAB X with the latest XC8 compiler and device pack for the PIC16F887.
Información de cumplimiento
RoHS compliant per Microchip product page. Not AEC-Q100 qualified - this part is intended for industrial/commercial embedded applications, not automotive safety. Halogen free status not explicitly stated in verified web data and is set to unknown per Data Authenticity Rules.