component
PIC16F877A
Public Unreviewedby adom
Microchip 8-bit PIC MCU, 40-pin DIP. 14 KB flash, 368 B RAM, 20 MHz, 33 I/O, 8-ch 10-bit ADC. Datasheet-verified.
← Commit history
page.json+308−22@@ -3,8 +3,9 @@ "type": "component", "slug": "pic16f877a", "title": "PIC16F877A",- "brief": "8-bit PIC MCU, 20MHz, 14KB Flash, DIP-40",+ "brief": "Microchip 8-bit PIC MCU, 40-pin DIP. 14 KB flash, 368 B RAM, 20 MHz, 33 I/O, 8-ch 10-bit ADC. Datasheet-verified.", "version": "0.1.0",+ "license": "CC-BY-SA-4.0", "tags": [ "component", "microcontroller",@@ -15,36 +16,321 @@ "pdip-40", "microchip" ],- "license": "MIT", "component": { "mpn": "PIC16F877A",- "manufacturer": "Microchip",- "package": "DIP-40",- "pin_count": null,- "category": "library",- "subcategory": "",- "body_size": null,- "parts": {},- "distributor_links": {}+ "manufacturer": "Microchip Technology",+ "package": "PDIP-40",+ "pin_count": 40,+ "category": "Microcontroller",+ "subcategory": "8-bit PIC MCU",+ "datasheet": "https://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf",+ "parts": {+ "symbol": "pic16f877a.kicad_sym",+ "footprint": "pic16f877a.kicad_mod",+ "model_3d": "pic16f877a.glb"+ },+ "distributor_links": {},+ "pins": [+ {+ "number": "1",+ "name": "MCLR/VPP",+ "type": "input",+ "description": "Master Clear (active-low reset) input and programming voltage input. Schmitt Trigger buffer. Tie through 10 k\u03a9 pull-up to VDD in normal operation; VPP (~12-13 V) is applied during high-voltage ICSP programming."+ },+ {+ "number": "2",+ "name": "RA0/AN0",+ "type": "bidirectional",+ "description": "PORTA bit 0 digital I/O with TTL input buffer; alternate function is analog input channel AN0 to the 10-bit ADC."+ },+ {+ "number": "3",+ "name": "RA1/AN1",+ "type": "bidirectional",+ "description": "PORTA bit 1 digital I/O with TTL input buffer; alternate function is analog input channel AN1 to the 10-bit ADC."+ },+ {+ "number": "4",+ "name": "RA2/AN2/VREF-/CVREF",+ "type": "bidirectional",+ "description": "PORTA bit 2 digital I/O (TTL); can be analog input AN2, ADC low reference input VREF-, or comparator voltage-reference output CVREF."+ },+ {+ "number": "5",+ "name": "RA3/AN3/VREF+",+ "type": "bidirectional",+ "description": "PORTA bit 3 digital I/O (TTL); can be analog input AN3 or ADC high reference input VREF+."+ },+ {+ "number": "6",+ "name": "RA4/T0CKI/C1OUT",+ "type": "bidirectional",+ "description": "PORTA bit 4 digital I/O with Schmitt Trigger input buffer, open-drain output stage; also the Timer0 external clock input T0CKI or Comparator 1 output C1OUT."+ },+ {+ "number": "7",+ "name": "RA5/AN4/SS/C2OUT",+ "type": "bidirectional",+ "description": "PORTA bit 5 digital I/O (TTL); can be analog input AN4, SPI slave-select input SS, or Comparator 2 output C2OUT."+ },+ {+ "number": "8",+ "name": "RE0/RD/AN5",+ "type": "bidirectional",+ "description": "PORTE bit 0 digital I/O (ST); can be the Parallel Slave Port read-strobe input RD (active-low) or analog input AN5."+ },+ {+ "number": "9",+ "name": "RE1/WR/AN6",+ "type": "bidirectional",+ "description": "PORTE bit 1 digital I/O (ST); can be the Parallel Slave Port write-strobe input WR (active-low) or analog input AN6."+ },+ {+ "number": "10",+ "name": "RE2/CS/AN7",+ "type": "bidirectional",+ "description": "PORTE bit 2 digital I/O (ST); can be the Parallel Slave Port chip-select input CS (active-low) or analog input AN7."+ },+ {+ "number": "11",+ "name": "VDD",+ "type": "power_in",+ "description": "Positive supply for logic and I/O pins. Operating range 2.0 V to 5.5 V. Decouple with a 100 nF ceramic capacitor to VSS placed close to the pin (a 40-pin PDIP has two VDD pins; both must be tied to the same rail)."+ },+ {+ "number": "12",+ "name": "VSS",+ "type": "power_in",+ "description": "Ground reference for logic and I/O pins. Connect to the board ground plane; a 40-pin PDIP has two VSS pins that must be tied to the common ground."+ },+ {+ "number": "13",+ "name": "OSC1/CLKI",+ "type": "input",+ "description": "Oscillator crystal input or external clock source input. Schmitt Trigger buffer in RC oscillator mode, CMOS input otherwise. Connect a crystal (with load caps) between OSC1 and OSC2, or drive with an external clock."+ },+ {+ "number": "14",+ "name": "OSC2/CLKO",+ "type": "output",+ "description": "Oscillator crystal output; connects to crystal or resonator in Crystal Oscillator mode. In RC mode outputs CLKO at 1/4 of OSC1 frequency, indicating instruction-cycle rate."+ },+ {+ "number": "15",+ "name": "RC0/T1OSO/T1CKI",+ "type": "bidirectional",+ "description": "PORTC bit 0 digital I/O (ST); can be Timer1 low-power oscillator output T1OSO or Timer1 external clock input T1CKI."+ },+ {+ "number": "16",+ "name": "RC1/T1OSI/CCP2",+ "type": "bidirectional",+ "description": "PORTC bit 1 digital I/O (ST); can be Timer1 oscillator input T1OSI or CCP2 Capture2 input / Compare2 output / PWM2 output."+ },+ {+ "number": "17",+ "name": "RC2/CCP1",+ "type": "bidirectional",+ "description": "PORTC bit 2 digital I/O (ST); can be CCP1 Capture1 input, Compare1 output, or PWM1 output (up to 10-bit PWM)."+ },+ {+ "number": "18",+ "name": "RC3/SCK/SCL",+ "type": "bidirectional",+ "description": "PORTC bit 3 digital I/O (ST); MSSP synchronous serial clock I/O - SCK for SPI mode or SCL for I2C mode."+ },+ {+ "number": "19",+ "name": "RD0/PSP0",+ "type": "bidirectional",+ "description": "PORTD bit 0 digital I/O (ST); Parallel Slave Port data bit 0 when PSP is enabled."+ },+ {+ "number": "20",+ "name": "RD1/PSP1",+ "type": "bidirectional",+ "description": "PORTD bit 1 digital I/O (ST); Parallel Slave Port data bit 1 when PSP is enabled."+ },+ {+ "number": "21",+ "name": "RD2/PSP2",+ "type": "bidirectional",+ "description": "PORTD bit 2 digital I/O (ST); Parallel Slave Port data bit 2 when PSP is enabled."+ },+ {+ "number": "22",+ "name": "RD3/PSP3",+ "type": "bidirectional",+ "description": "PORTD bit 3 digital I/O (ST); Parallel Slave Port data bit 3 when PSP is enabled."+ },+ {+ "number": "23",+ "name": "RC4/SDI/SDA",+ "type": "bidirectional",+ "description": "PORTC bit 4 digital I/O (ST); MSSP SPI data input SDI or I2C data I/O SDA."+ },+ {+ "number": "24",+ "name": "RC5/SDO",+ "type": "bidirectional",+ "description": "PORTC bit 5 digital I/O (ST); MSSP SPI data output SDO."+ },+ {+ "number": "25",+ "name": "RC6/TX/CK",+ "type": "bidirectional",+ "description": "PORTC bit 6 digital I/O (ST); USART asynchronous transmit TX or USART synchronous clock CK."+ },+ {+ "number": "26",+ "name": "RC7/RX/DT",+ "type": "bidirectional",+ "description": "PORTC bit 7 digital I/O (ST); USART asynchronous receive RX or USART synchronous data DT."+ },+ {+ "number": "27",+ "name": "RD4/PSP4",+ "type": "bidirectional",+ "description": "PORTD bit 4 digital I/O (ST); Parallel Slave Port data bit 4 when PSP is enabled."+ },+ {+ "number": "28",+ "name": "RD5/PSP5",+ "type": "bidirectional",+ "description": "PORTD bit 5 digital I/O (ST); Parallel Slave Port data bit 5 when PSP is enabled."+ },+ {+ "number": "29",+ "name": "RD6/PSP6",+ "type": "bidirectional",+ "description": "PORTD bit 6 digital I/O (ST); Parallel Slave Port data bit 6 when PSP is enabled."+ },+ {+ "number": "30",+ "name": "RD7/PSP7",+ "type": "bidirectional",+ "description": "PORTD bit 7 digital I/O (ST); Parallel Slave Port data bit 7 when PSP is enabled."+ },+ {+ "number": "31",+ "name": "VSS",+ "type": "power_in",+ "description": "Ground reference for logic and I/O pins. Second VSS pin on 40-pin PDIP; must be tied to common ground with pin 12."+ },+ {+ "number": "32",+ "name": "VDD",+ "type": "power_in",+ "description": "Positive supply for logic and I/O pins (2.0-5.5 V). Second VDD pin on 40-pin PDIP; must be tied to common VDD with pin 11 and decoupled with a 100 nF ceramic near the pin."+ },+ {+ "number": "33",+ "name": "RB0/INT",+ "type": "bidirectional",+ "description": "PORTB bit 0 digital I/O with software-programmable weak pull-up; alternate function is the external interrupt input INT (Schmitt Trigger when configured as INT)."+ },+ {+ "number": "34",+ "name": "RB1",+ "type": "bidirectional",+ "description": "PORTB bit 1 digital I/O (TTL) with software-programmable weak pull-up. Part of the PORTB interrupt-on-change group (RB4-RB7 only)."+ },+ {+ "number": "35",+ "name": "RB2",+ "type": "bidirectional",+ "description": "PORTB bit 2 digital I/O (TTL) with software-programmable weak pull-up."+ },+ {+ "number": "36",+ "name": "RB3/PGM",+ "type": "bidirectional",+ "description": "PORTB bit 3 digital I/O (TTL); alternate function is the low-voltage (single-supply) ICSP programming enable input PGM."+ },+ {+ "number": "37",+ "name": "RB4",+ "type": "bidirectional",+ "description": "PORTB bit 4 digital I/O (TTL) with software-programmable weak pull-up and interrupt-on-change capability."+ },+ {+ "number": "38",+ "name": "RB5",+ "type": "bidirectional",+ "description": "PORTB bit 5 digital I/O (TTL) with software-programmable weak pull-up and interrupt-on-change capability."+ },+ {+ "number": "39",+ "name": "RB6/PGC",+ "type": "bidirectional",+ "description": "PORTB bit 6 digital I/O (TTL) with interrupt-on-change; alternate function is the in-circuit debugger and ICSP programming clock PGC (Schmitt Trigger when in Serial Programming mode)."+ },+ {+ "number": "40",+ "name": "RB7/PGD",+ "type": "bidirectional",+ "description": "PORTB bit 7 digital I/O (TTL) with interrupt-on-change; alternate function is the in-circuit debugger and ICSP programming data PGD (Schmitt Trigger when in Serial Programming mode)."+ }+ ],+ "provenance": {+ "extractor": "ds2sf",+ "datasheet": {+ "url": "https://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf",+ "pages": 14,+ "sha256": "3ab8d00885e545e3",+ "source_tier": "mfr"+ },+ "cad": "KiCad official (CC-BY-SA 4.0)",+ "pins": {+ "total": 40,+ "described": 40,+ "cites_pages": true,+ "refuses_to_fabricate": true+ }+ },+ "viewers": {+ "symbol": "viewers/symbol.html",+ "footprint": "viewers/footprint.html"+ } },- "readme": "# PIC16F877A\n\n8-bit PIC MCU, 20MHz, 14KB Flash, DIP-40\n\nThe PIC16F877A is a classic mid-range 8-bit microcontroller from Microchip. It features 14KB Flash, 368B SRAM, 256B EEPROM, and a rich set of peripherals including ADC, USART, I2C, and SPI.",+ "metadata": {+ "specs": {+ "Core": "8-bit PIC (RISC, 35 instructions)",+ "Flash": "14 KB (8K x 14)",+ "RAM": "368 bytes",+ "EEPROM": "256 bytes",+ "Max clock": "20 MHz",+ "I/O": "33 (ports A-E)",+ "ADC": "8-channel 10-bit",+ "Serial": "USART + SPI + I2C (MSSP)",+ "Supply voltage": "2.0-5.5 V",+ "Package": "PDIP-40"+ }+ },+ "sections": [+ "hero",+ "viewers",+ "readme",+ "breadcrumbs",+ "info"+ ],+ "discovery_triggers": [+ "pic16f877a",+ "pic microcontroller",+ "8-bit pic",+ "pic16f877",+ "40 pin pic"+ ],+ "discovery_pitch": "PIC16F877A 8-bit PIC microcontroller (40-pin DIP) with datasheet-verified pinout, KiCad symbol/footprint/3D, and full provenance.", "author": {- "name": "Kyle Bergstedt",- "email": "[email protected]"+ "name": "Ray",+ "email": "[email protected]" },- "visibility": "public",+ "dependencies": {}, "hero": { "type": "image", "path": "docs/hero.png" },- "sample_prompts": [],- "discovery_triggers": [],- "discovery_pitch": null,- "metadata": {},- "created_at": "2026-05-28T05:34:07.234Z",- "updated_at": "2026-05-28T05:34:07.234Z",- "description": "Microchip 8-bit PIC MCU, 40-pin DIP. 14 KB flash, 368 B RAM, 20 MHz, 33 I/O, 8-ch 10-bit ADC. Datasheet-verified.",- "dependencies": {}, "files": [ "page.json", "README.md",