The Microchip PIC microcontroller range looks really daunting at first, with lots of 8, 16 and 32 bit devices to choose from. This article will look at 8-bit PICs as they are adequate for most purposes and far more suited to beginners.
There are different series of 8-bit PIC microcontrollers- PIC10F, PIC12F, PIC16F and PIC18F, all with different features and price bands. The PIC10F and PIC12F are the cheapest and generally have less memory, smaller pin counts and less peripherals.
PIC18F series are the most sophisticated, with more instructions and are better suited to C compilers but they are the most expensive. There is also a limited amount of applications and code examples on the web for them, which can make it harder to get started with your own project.
PIC16F series are the most popular as they have been around the longest and have the biggest code library on the Internet. A lot of the available code and schematics has been written for PIC16F877 but this is a poor choice today as they are a very old design. If you want to re-use PIC16F877 designs as easily as possible then upgrade to the PIC16F887 as it is now much cheaper than PIC16F877, about 1/3 of the price. It has the same pin layout, same peripherals and the same code will run without modification. It also has On-Board Debug features so a cheap emulator, like PICKit2 or PICKit3 can be used.
These are 40-pin chips with 14KB memory, enough for most projects even those written in C. They also have 256 bytes of EEPROM for storing serial numbers, calibration data and other values that need to be preserved if the device needs to be reprogrammed. The peripherals on this microcontroller include everything you would need to build a project and learn about programming the PIC, including serial ports (UART), SPI and I2C buses plus 14 channel ADC. The ADC is 10-bit, which is accurate enough for most applications. You also have lots of spare I/O pins.
As a beginners choice, the PIC16F887 takes some beating because it can use PIC16F877 projects but newer PIC microcontrollers are also worth a look, certainly once you have gained experience. In recent years, Microchip have produced a new range of PIC16F microntrollers, which start with a one, for example PIC16F1519 and PIC16F1789.
These two are both 40-pin (same pinout as PIC16F877), with similar peripherals but twice the memory and much better current consumption. They also have more instructions, so for example, you can read the configuration memory (User ID bytes, calibration and fuses) from within your code unlike older devices. The PIC16F1789 also has EEPROM. They have 2KB of RAM memory (PIC16F887 has 384 bytes), which enables C compilers to produce better, faster code and their price is reasonable.
In conclusion, a good place for beginners to start is with PIC16F series and with newer PIC16F1xxx in particular. These cover all the basics and have the code space and all the peripherals most projects need.
PIC18F series microcontrollers have more features and a different instruction set – instructions are 16-bit wide instead of 14-bit like PIC16F. They need a different C compiler that is included as a limited version in MPLAB. Not many code examples are available for them so are not really suitable for absolute beginners.
Kanda PIC Training Kits are based on PIC16F1789 to give you the best start but also discuss PIC18F series to provide a good upgrade path.
Microchip have a good selector tool, where you enter the features you need and it does the selection for you.
Microchip PIC Selector in a new window.
PIC16F877 and why you should update