PIC Tutorial

Gadgets known as “programmers” are typically utilized to obtain plan code in to the focus on PIC. Most PICs that Microchip presently market function ICSP (In Circuit Serial Programming) and/or LVP (Reduced Voltage Programming) capabilities, permitting the PIC to become programmed whilst it’s sitting within the focus on circuit. ICSP programming is carried out utilizing two pins, clock and information, whilst a higher voltage (12V) is current around the Vpp/MCLR pin. Reduced voltage programming dispenses using the higher voltage, but reserves unique utilization of an I/O pin and may consequently be disabled to recover the pin for other utilizes (as soon as disabled it could only be re-enabled utilizing higher voltage programming).

There are lots of programmers for PIC microcontrollers, ranging through the very easy styles which depend on ICSP to permit immediate obtain of code from the host pc, to intelligent programmers that may confirm the gadget at a number of provide voltages. Numerous of those complicated programmers use a pre-programmed PIC on their own to deliver the programming instructions towards the PIC that’s to become programmed. The intelligent kind of programmer is required to plan previously PIC designs (mainly EPROM kind) which don’t assistance in-circuit programming.

Numerous with the greater finish flash primarily based PICs may also self-program (create to their very own plan memory). Demo boards are accessible having a little bootloader factory programmed that may be utilized to load consumer applications more than an interface like RS-232 or USB, therefore obviating the require to get a programmer gadget. Alternatively there’s bootloader firmware accessible the consumer can load onto the PIC utilizing ICSP. The benefits of the bootloader more than ICSP will be the far exceptional programming speeds, instant plan execution subsequent programming, and also the capability to each debug and plan utilizing the exact same cable.


Microchip Programmers

Microchip PICSTART Plus programmer

There are many programmers/debuggers available directly from Microchip.

Current Microchip Programmers (as of 1/2010)[15]

PICStart Plus (RS232 serial interface) : intelligent.

MPLAB ICD 3 (USB 2.0 interface)

MPLAB PM3 (RS232 serial and USB interface)

MPLAB REAL ICE (USB 2.0 interface) : ICSP programming only

PICKit 2 (USB interface)

PICKit 3 (USB interface)

Legacy Microchip Programmers

MPLAB ICD2 (RS232 serial and USB 1.0 interface) : ICSP programming only

PICKit 1 (USB interface)

PRO MATE II (RS232 serial interface) : intelligent.


Third-Party Programmers

There are programmers available from other sources, ranging from plans to build your own, to self-assembly kits and fully tested ready-to-go units. Some are simple designs which require a PC to do the low-level programming signalling (these typically connect to the serial or parallel port and consist of a few simple components), while others have the programming logic built into them (these typically use a serial or USB connection, are usually faster, and are often built using PICs themselves for control). For a directory of PIC related tools and websites, see PIC microcontroller at the Open Directory Project. These are some common programmer types:

Simple serial port ICSP programmers

These generally rely on driving the PIC’s Vss line negative to get the necessary voltage differences from programming. Hence they are compact and cheap but great care is needed if using them for in circuit programming.

Simple parallel port ICSP programmers

Simple to understand but often have much higher part counts and generally require external power supplies.

Intelligent programmers (some use USB port)

Generally faster and more reliable (especially on laptops which tend to have idiosyncrasies in the way they implement their ports) but far more complex to build (in particular they tend to use a PIC in the programmer which must itself be programmed somehow).

Here are some programmers available:


PICPgm – PIC Development Programmer for Windows and Linux. Supports 10F, 12F, 16F, 18F and dsPIC devices and a lot of different programmer hardware like JDM, Tait, AN589, …

usbpicprog, an open source USB PIC programmer usbpicprog

Open Programmer, another open source USB programmer for PICmicro and I2C EEPROM, using HID class OpenProgrammer

home-made ICSP JDM Pic

DIY PIC and EEPROM programmer with ICSP support. PCB files, photos and detailed information are also provided.

PIC PRESTO that supports ICSP, ISP, JTAG, I2C, SPI, Microwire interfaces, works on USB and complies with programming specifications

home-made ICSP with external powersupply based on JDM: BobProg (Romanian)


The major problem of home-made or very simple programmers is that these programmers do not comply with programming specifications and this can cause premature loss of data in the flash or EEPROM







Note: Laptops require USB to RS232 converter cable for PIC Programming.


USB Serial PIC Programmer Kit

USB ports are just about standard on all PC’s now a days. So this is our first PIC programmer using the USB port. Just in case, we have also left a standard serial port connection – DIY Kit 149.


USB/Serial Port Connection

Software that can be updated as new Pics are released

Windows 9x/NT/2000/XP Compatible Software

ICSP (In Circuit Serial Programming) Connector

Quality PCB and Silkscreen for Easy Assembly

Complete Assembly and Programming Instructions


L: 4″ W: 3″ H: 5/8″

Requires external 16 Volt DC @ 50 mA power supply

(Need a Power Supply?)

Requires USB or Serial Cable

Includes standard IC sockets (ZIF socket available as separate purchase below) What is a Zif Socket?

Here is a list of PICs that the MicroPro Software Supports and that this programmer will program. New PIC’s are released by the mfg very frequently, so it is impossible to always be up to date. You can add to the software on your own, and new updates are released about once a month:

12C508 12C508A 12C509 12C509A 12C671 12C672 12CE673 12CE674 12F629 12F675 16C505 16C554 16C558 16C61 16C62 16C62A 16C62B 16C63 16C63A 16C64 16C64A 16C65 16C65A 16C65B 16C66 16C66A 16C67 16C620 16C620A 16C621 16C621A 16C622 16C622A 16C71 16C71A 16C72 16C72A 16C73 16C73A 16C73B 16C74 16C74A 16C74B 16C76 16C77 16C710 16C711 16C712 16C716 16C745 16C765 16C773 16C774 16C83 16C84 16F627 16F627A 16F628 16F628A 16F630 16F648A 16F676 16F684 16F688 16F72 16F73 16F74 16F76 16F77 16F737 16F747 16F767 16F777 16F83 16F84 16F84A 16F87 16F88 16F818 16F819 16F870 16F871 16F872 16F873 16F873A 16F874 16F874A 16F876 16F876A 16F877 16F877A 18F242 18F248 18F252 18F258 18F442 18F448 18F452 18F458 18F1220 18F1320 18F2220 18F2320 18F4220 18F4320

PICkit 2 Development Programmer/Debugger

Part Number: DV164121

The PICkit™ 2 Development Programmer/Debugger (PG164120) is a low-cost development tool with an easy to use interface for programming and debugging Microchip’s Flash families of microcontrollers. The full featured Windows® programming interface supports baseline (PIC10F, PIC12F5xx, PIC16F5xx), midrange (PIC12F6xx, PIC16F), PIC18F, PIC24, dsPIC30, dsPIC33, and PIC32 families of 8-bit, 16-bit, and 32-bit microcontrollers, and many Microchip Serial EEPROM products. With Microchip’s powerful MPLAB Integrated Development Environment (IDE) the PICkit™ 2 enables in-circuit debugging on most PIC® microcontrollers. In-Circuit-Debugging runs, halts and single steps the program while the PIC microcontroller is embedded in the application. When halted at a breakpoint, the file registers can be examined and modified.

Features of PICkit 2 Debug Express:

PICkit 2 Development Programmer/Debugger

44-pin demo board with PIC16F887 Midrange PIC microcontroller

The PIC16F887 may be debugged directly without any additional hardware.

A series of 12 Lessons on assembly programming that cover I/O, A/D converters, timers, interrupts, and data tables (All source code files are provided)

A Debugging Tutorial on using the PICkit 2 as a debugger with the MPLAB IDE (Ch. 4 of the PICkit 2 User’s Guide)

Getting Started in C tutorial on developing and debugging in C with a FREE CCS PCM™ Midrange C Compiler Demo* for PIC16F887(contained on the PICkit 2 CD) *2kWord Program Limit.

Getting Started in C tutorial on developing and debugging in C with a FREE HI-TECH PICC™ LITE C Compiler with MPLAB IDE

FREE! Microchip’s MPLAB IDE software for a complete code development


PICkit 3 Debug Express

Part Number: DV164131

Microchip’s PICkit 3 In-Circuit Debugger/Programmer uses in-circuit debugging logic incorporated into each chip with Flash memory to provide a low-cost hardware debugger and programmer. In-circuit debugging offers these benefits:

-Low cost

-Minimum of additional hardware needed for debug

-Expensive sockets or adapters are not required

-The PICkit 3 can now also reprogram any PIC microcontroller

he PICkit 3 Debug Express includes

PICkit 3 Debugger/Programmer

44-pin demo board with a PIC18F45k20 microcontroller

All hookup cables

and a CDROM that includes the following:

▪ PICkit 3 User’s Guide

▪ A series of 12 Lessons on C programming that cover I/O, A/D converters, timers, interrupts, and data tables (All source code files are provided)

▪ A Debugging Tutorial on using the PICkit 3 as a debugger with the MPLAB IDE

▪ HI-TECH C PRO for PIC10/12/16 MCU Family in Lite mode.

▪ Microchip’s MPLAB IDE software for a complete code development environment


The MPLAB PICkit 3 allows debugging and programming of PIC® and dsPIC® Flash microcontrollers at a most affordable price point using the powerful graphical user interface of the MPLAB Integrated Development Environment (IDE). The MPLAB PICkit 3 is connected to the design engineer’s PC using a full speed USB interface and can be connected to the target via an Microchip debug (RJ-11) connector (compatible with MPLAB ICD 2, MPLAB ICD 3 and MPLAB REAL ICE). The connector uses two device I/O pins and the reset line to implement in-circuit debugging and In-Circuit Serial Programming™.

PICkit 3 Features

USB (Full speed 12 Mbits/s interface to host PC)

Real-time execution

MPLAB IDE compatible (free copy included)

Built-in over-voltage/short circuit monitor

Firmware upgradeable from PC/web download

Totally enclosed

Supports low voltage to 2.0 volts (2.0v to 6.0v range)

Diagnostic LEDs (power, busy, error)

Read/write program and data memory of microcontroller

Erase of program memory space with verification

Freeze-peripherals at breakpoint

Program up to 512K byte flash with the Programmer-to-Go

Header Information

Some 8-, 14- and 18-pin devices use small header boards with a special MCU for debugging. This special MCU has extra pins for PICkit 3 communication and therefore allows the use of all pins on the part for the application. The header board is not used or needed for programming. However, when debugging these devices the header must be used. See the “Header Specification” document below or see a list of current devices that use headers here.

Leave a Reply

Your email address will not be published. Required fields are marked *