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.
master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
{
"schema_version": 1,
"type": "component",
"slug": "pic16f877a",
"title": "PIC16F877A",
"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",
"mcu",
"pic",
"pic16",
"8-bit",
"pdip-40",
"microchip"
],
"component": {
"mpn": "PIC16F877A",
"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-etched.glb",
"model_3d_plain": "pic16f877a.glb",
"lbr": "pic16f877a.lbr",
"model_3d_step": "pic16f877a-etched.step",
"model_3d_step_plain": "pic16f877a.step"
},
"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Ω 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"
}
},
"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": "Ray",
"email": "[email protected]"
},
"dependencies": {},
"hero": {
"type": "image",
"path": "docs/hero.png"
},
"files": [
"page.json",
"README.md",
"pic16f877a.kicad_sym",
"pic16f877a.kicad_mod",
"pic16f877a.glb",
"pic16f877a.lbr",
"docs/hero.png",
"docs/pic16f877a-datasheet.pdf",
"viewers/symbol.html",
"viewers/footprint.html",
"pic16f877a-etched.step"
],
"variants": [
{
"mpn": "PIC16F877A-I/P (PDIP-40)",
"kind": "packaging"
},
{
"mpn": "PIC16F877A-I/PT (TQFP-44)",
"kind": "packaging"
}
]
}