Getting Started With PIC

From AIRWiki
Revision as of 12:37, 5 May 2009 by PaoloVilla (Talk | contribs)

Jump to: navigation, search


Part 1: Introduction

Chosing a PIC

Software tools

Let’s verify we have all the necessary pieces of equipment ready and installed (latest version available for download from Microchip’s web site at

  • PIC Datasheet
  • MPLAB IDE, free Integrated Development Environment
  • MPLAB SIM, software simulator
  • MPLAB C30, C compiler (demo or free Student Version).

Part 2: Basic hardware

Besides a PC, because of we intend "make" something and not only talk about it, we need some hardware tools:

  • PIC programmer-debugger (in Ai&R Lab Lambrate you can find some Microchip ICD2 programmer-debugger and, some adapter boards with ZIF socket and some self-made programming cables)
  • PIC demoboard or your board with power supply, PIC, oscillator, MCLR circuitry and some input-output hardware


MCLR circuit

Programming interface

Programming Cable

Part 3: PIC programming

MPLAB settings

Start a new project

Then, let’s follow the “New Project Set-up” checklist to create a new project with the MPLAB IDE:

  • Select “Project->Project Wizard” to activate the new project wizard, which will guide us

automatically through the following steps…

  • Select the correct PIC device, and click Next.
  • Select the MPLAB C30 Compiler Suite and click Next.
  • Create a new folder and name it “FolderName”; name the project “ProjectName” and click Next.

Simply click Next to the following dialog box—there is no need to copy any source files from any previous projects or directories. Click on Finish to complete the Wizard set-up.

Open a new editor window.

Select “File->Save As”, to save the file as: “FileName.c”. Select “Project->Save” to save the project. Our first line of code is going to be:

#include <p24fj128ga010.h>

This is a pseudo-instruction for the preprocessor telling the compiler to read the content of a device-specifi c fi le before proceeding any further. The content of the device-specifi c “.h” file chosen is a long list of the names (and sizes) of all the internal special-function registers (SFRs) of the chosen PIC model: those names reflect exactly those being used in the device datasheet. Let’s add a couple more lines that will introduce you to the main() function:



The main() function is the place where the microcontroller (program counter) will go first at power-up or after each subsequent reset. Before entering the main() function, the microcontroller will execute a short initialization code segment automatically inserted by the linker. This is known as the c0 code. The c0 code will perform basic housekeeping chores, including the initialization of the microcontroller stack, among other things.