PIC18F Microcontroller Family Summary

PIC18 (High-End) 8-bit MCU
The PIC18 family combines the maximum level of performance and integration with the ease-of-use of an 8-bit architecture.

  • Up To 64 MHz Internal Oscillator
  • Up to 128 kB Flash Program Memory
  • Up to 1 kB Data EEPROM
  • Up to 8 kB of SRAM
  • 32 Level Stack
  • Hardware Stack Overflow and Underflow Reset Capabilities
  • Vectored Interrupt Capability (VIC)
  • Direct Access Memory (DAM) Controllers
  • 12-bit ADC with Computation (ADC2), up to 43 channels
  • Memory Access Partition (MAP)
  • Device Information Area (DIA)
  • Windowed Watch Dog Timer (WWDT)
  • Up to three Complementary Waveform Generator (CWG)
  • Up To four Configurable Logic Cell (CLC)
  • Peripheral Pin Select (PPS)
  • Up To two Comparators
  • Zero Cross Detect (ZCD)
  • On-chip Temperature Indicator
  • Data Signal Modulator (DSM)
  • 5-bit DAC
  • Capacitive Voltage Divider (CVD)
  • Up to four 10-bit PWMs
  • Communication: UART, SPI, I2C, CAN, USB, Ethernet, LCD
  • eXtreme Low-Power (XLP)
  • Available in 18- to 100-pin Packages

Device Selector

PIC18F Device Selector

Click image to enlarge.

 Self-Paced Training

The material in these training modules exists elsewhere on this site in a general reference format. However, the training modules present it in an organized, step-by-step sequence to help you learn the topic from the ground up.

Tutorial / Class Title

 Frequently Asked Questions

Zero-Cross Detect (ZCD) Disable
Why is the PIC16F1619 DAC1OUT on a Curiosity board always at 0 V in debug mode?
Why do I get a C syntax error on compiling a rotate left instruction asm("RLF aux, w");?
Why can't I drive my MOSFET when connected to PWM?
What is the resistance value of the internal weak pull-up?
What is the internal protection provided by the silicon such as discharge diodes?
What is the instruction size of a PIC® MCU?
What is Q1 on a PIC16F Comparator?
What does the "-ICD" suffix on an MCU mean?
What are the base PIC® microcontrollers used in the ARxxxx Series?
TX Output Signal From USART Show Two Stop Bits
PIC16F870/871 - What is the restart procedure after frame error (FERR) event ?
PIC16F - Unable To Change the Functionality of CLKIN Pin
Do the device pin tables show which pins are 5V tolerant?
Testing TSOP, SSIC, QFN, DFN Packages on a Breadboard
How can I create a Programmable Gain Amplifier (PGA) using an OP Amp and DAC output from a PIC® MCU?
What is the difference between the Byte Endurance (ED) and the Number of Total Erase/Write Cycle before Refresh (TREF)?
PIC18F87xx - How do you select the functionality of a pin?
Impact of Ripple on Vdd when using a Microchip Microcontroller
I²C Not Able to Write to SSPBUF
How do you read internal temperature on the PIC18F?
How do I debug a Curiosity Board's PIC16F1503?
PWM Output is Going Low While the CCP is Being Configured
PIC18F25K80 - I²C Stops Working in an Interrupt Driven System
How do you read the EEPROM memory of a PIC18F46J50?
How can I find a pin-to-pin compatible microcontroller to migrate my project?
ECAN Code Example Using Enhanced FIFO Mode (Mode 2)
Drive the RTCC using an External 32.768 kHz Digital Clock Input
Custom Part Suffix Meaning
Constant Current LED Driver Using PIC18
Compute the Capacitor Values for a Crystal Oscillator
Can the internal temperature sensor in PIC® devices measure ambient temperature?
SMI Interface Implementation on an 8-bit PIC®
Slow PIC® Microcontroller Startup in Freezing Temperatures
PIC10F - Invalid Calibration Memory Error
How do you calculate the sampling rate for a SAR ADC on PIC16F MCU?
Changing Oscillator Speed During Runtime on the PIC16F
Can the RTCC on a PIC® MCU without a VBAT run off a battery?
What is the most common problem encountered when communicating with a PIC® MCU SPI module?
Need to find a device with more RAM
Migrating to a newer PIC16 family
External VCAP on PIC16F
EUSART Pins Don't Work on PORTA
Can a PIC16F with USB run on the Internal Oscillator?
Can the ADC measure 5 V if the VDD is 3.3 V?
Can I reprogram the Oscillator Calibration on a PIC® device?
Why do I need to use a unity gain amplifier to measure DAC output voltage of a PIC16F1xxx?
Where can I find code examples for a PID controller using the PIC16F161x Math Accelerator?
Can I connect VUSB3V3 to VDD (+3.3 V) for USB operation on the PIC16F1455?
Can both UART and I²C be used on PIC12F1840 or PIC16F1829?
Connection of NC Pins
Can CRC Be Read From A Code Protected PIC?
Where can I find the ADC voltage reference?
Adding a Serial Number to a PIC18
App note on LCD fundamentals and the LCD driver module for 8-bit PIC® MCUs
Why I can't debug with a PIC16F18877? Why does it work in release mode but not in debug mode?
What are the differences among the 8-bit PIC MCU sub-families?
© 2019 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.