PIC16F877-20/P - 8-Bit 20MHz 14KB Flash MCU 40-PDIP | Microchip
MPN: PIC16F877-20/P ✓ نشطPIC16F877-20/P نظرة عامة
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.
بدائل مباشرة لـ PIC16F877-20/P — نفس الحزمة، متوافق دبوس بدبوس. تُستثنى القطع ذات الحزم المختلفة التي تتطلب تعديل PCB.
الطرازات في هذه السلسلة
طرازات من نفس السلسلة متوافقة تمامًا مع PIC16F877-20/P (نفس عامل الشكل والبصمة) — يختلف في Package, Core Architecture, ADC, Timers, Mounting Type.
PIC16F877A-I/P
✅ بديل مباشرتواصل لمعرفة السعر
عرض ورقة البيانات ←PIC16F877-20/L
✅ بديل مباشرتواصل لمعرفة السعر
عرض ورقة البيانات ←PIC16F874A-I/P
✅ بديل مباشر📋 بديل مرجعي (غير موجود في الكتالوج)
PIC16F887-I/P
✅ بديل مباشرتواصل لمعرفة السعر
عرض ورقة البيانات ←PIC16F877-04E/PQ
✅ بديل مباشرتواصل لمعرفة السعر
عرض ورقة البيانات ←PIC16F877-20E/P
✅ بديل مباشر ⚠️ مواصفات غير مُتحقق منها📋 بديل مرجعي (غير موجود في الكتالوج)
PIC16F877-20/P الحدود القصوى والخصائص الكهربائية
| 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) |
| درجة حرارة التشغيل | 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) |
| العلبة | 40-pin PDIP (DIP-40, 0.600 inch / 15.24 mm) |
| نوع التركيب | Through-Hole (THT) |
| حالة RoHS | Compliant |
| Lead-Free | Yes |
| I/O Sink/Source Current | 25 mA per pin |
| In-Circuit Debug | ICD support via PGD/PGC pins |
تكوين أطراف PIC16F877-20/P
| دبوس 1 | MCLR — Master Clear (reset) input, active low |
| دبوس 2 | RA0/AN0 — PORTA bit 0 / Analog input 0 |
| دبوس 3 | RA1/AN1 — PORTA bit 1 / Analog input 1 |
| دبوس 4 | RA2/AN2 — PORTA bit 2 / Analog input 2 |
| دبوس 5 | RA3/AN3/VREF+ — PORTA bit 3 / Analog input 3 / Voltage reference positive |
| دبوس 6 | RA4/T0CKI — PORTA bit 4 / Timer0 clock input |
| دبوس 7 | RA5/AN4/SS — PORTA bit 5 / Analog input 4 / SPI slave select |
| دبوس 8 | RE0/RD/AN5 — PORTE bit 0 / Parallel slave port read / Analog input 5 |
| دبوس 9 | RE1/WR/AN6 — PORTE bit 1 / Parallel slave port write / Analog input 6 |
| دبوس 10 | RE2/CS/AN7 — PORTE bit 2 / Parallel slave port chip select / Analog input 7 |
| دبوس 11 | VDD — Positive supply voltage (5V typical) |
| دبوس 12 | VSS — Ground reference |
| دبوس 13 | OSC1/CLKIN — Oscillator crystal input or external clock input |
| دبوس 14 | OSC2/CLKOUT — Oscillator crystal output or clock output |
| دبوس 15 | RC0/T1OSO/T1CKI — PORTC bit 0 / Timer1 oscillator output / Timer1 clock input |
| دبوس 16 | RC1/T1OSI/CCP2 — PORTC bit 1 / Timer1 oscillator input / CCP2 I/O |
| دبوس 17 | RC2/CCP1 — PORTC bit 2 / CCP1 I/O |
| دبوس 18 | RC3/SCK/SCL — PORTC bit 3 / SPI clock / I2C clock |
| دبوس 19 | RD0/PSP0 — PORTD bit 0 / Parallel slave port bit 0 |
| دبوس 20 | RD1/PSP1 — PORTD bit 1 / Parallel slave port bit 1 |
| دبوس 21 | RD2/PSP2 — PORTD bit 2 / Parallel slave port bit 2 |
| دبوس 22 | RD3/PSP3 — PORTD bit 3 / Parallel slave port bit 3 |
| دبوس 23 | RC4/SDI/SDA — PORTC bit 4 / SPI data in / I2C data |
| دبوس 24 | RC5/SDO — PORTC bit 5 / SPI data out |
| دبوس 25 | RC6/TX/CK — PORTC bit 6 / USART async transmit or sync clock |
| دبوس 26 | RC7/RX/DT — PORTC bit 7 / USART async receive or sync data |
| دبوس 27 | RD4/PSP4 — PORTD bit 4 / Parallel slave port bit 4 |
| دبوس 28 | RD5/PSP5 — PORTD bit 5 / Parallel slave port bit 5 |
| دبوس 29 | RD6/PSP6 — PORTD bit 6 / Parallel slave port bit 6 |
| دبوس 30 | RD7/PSP7 — PORTD bit 7 / Parallel slave port bit 7 |
| دبوس 31 | VSS — Ground reference |
| دبوس 32 | VDD — Positive supply voltage (5V typical) |
| دبوس 33 | RB0/INT — PORTB bit 0 / External interrupt input |
| دبوس 34 | RB1 — PORTB bit 1 |
| دبوس 35 | RB2 — PORTB bit 2 |
| دبوس 36 | RB3/PGM — PORTB bit 3 / Low-voltage ICSP programming entry |
| دبوس 37 | RB4 — PORTB bit 4 |
| دبوس 38 | RB5 — PORTB bit 5 |
| دبوس 39 | RB6/PGC — PORTB bit 6 / In-circuit debugger clock / ICSP clock |
| دبوس 40 | RB7/PGD — PORTB bit 7 / In-circuit debugger data / ICSP data |
التطبيقات النموذجية
PIC16F877-20/P مناسب لـ 7 التطبيقs: 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.
موصى به
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.
موصى به
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.
موصى به
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.
موصى به
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.
موصى به
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.
موصى به
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.
موصى به
ملخص المنتجات الموصى بها
بيانات مرجعية هندسية لـ PIC16F877-20/P — المقارنة وإرشادات التصميم ومعلومات الامتثال.
دليل الاختيار
المقارنة مع البدائل
| المعامل | هذا المنتج | 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 |
أبرز الفروقات
- Mature code base and toolchain support (مقابلPIC16F887-I/P)
- Industrial temperature variant available (مقابلPIC16F877-04E/P)
- Larger Flash and RAM than the PIC16F874 family (مقابلPIC16F874A-I/P)
ملاحظات التصميم
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.
معلومات الامتثال
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.