PIC Tutorial 1

Welcome to the start of the PIC Tutorial. These pages will take you form the basic structure of the device, right through to programming methods and techniques. Also, there will be suggestions on how to modify the code so that you can adapt the PIC to suit your applications.

I will not be including any internal architecture diagrams, as this may only lead to confusion. If you want to look at the datasheet, then this can be downloaded from Microchips' web site.

To start, let us take a look at the PIC.

Microchip manufacture a series of microcontrollers called PIC. There are many different flavours available, some basic low memory types, going right up through to ones that have Analogue - To- Digital converters and even PWM built in. I am going to concentrate on the 16F84 PIC. Once you have learnt how to program one type of PIC, learning the rest is easy.

There are several ways of programming the PIC - using BASIC, C, or Assembly Language. I am going to show you the Assembly Language. There are only 35 instructions to learn, and it is the cheapest way to program the PICs, as you do not need any extra software other than the freebies.

The 16F84 Pins

Below is a diagram showing the pin-outs of the PIC 16F84. I will go through each pin, explaining what each is used for.


RA0 To RA4

RA is a bidirectional port. That is, it can be configured as an input or an output. The number following RA is the bit number (0 to 4). So, we have one 5-bit directional port where each bit can be configured as Input or Output.

RB0 To RB7

RB is a second bidirectional port. It behaves in exactly the same way as RA, except there are 8 - bits involved.


These are the power supply pins. VDD is the positive supply, and VSS is the negative supply, or 0V. The maximum supply voltage that you can use is 6V, and the minimum is 2V


These pins is where we connect an external clock, so that the microcontroller has some kind of timing.


This pin is used to erase the memory locations inside the PIC (i.e. when we want to re-program it). In normal use it is connected to the positive supply rail.


This is an input pin which can be monitored. If the pin goes high, we can cause the program to restart, stop or any other single function we desire. We won't be using this one much.


This is another clock input, which operates an internal timer. It operates in isolation to the main clock. Again, we won't be using this one much either.

How To Program The PIC

Now, you want to know how to program the PIC, but apart from learning the assembly code instructions, how do you go about actually programming the information in? Well, there are two ways - the easy way, and the DIY way.

The easy way is to buy a PIC programmer, which will connect to your PC and you can program your PIC using the software provided.

The DIY way is to build your own programmer and use free software from the Internet and program it that way.

The next thing you will need is an assembler. This converts the program that you write into a format that the PIC understands. The best one around is from Microchip themselves, called MPLAB. It is windows based, and includes an editor, simulator, and assembler. This is the de-facto software, as it is written by the manufacturers of the PIC, and above all it is FREE!

I also recommend using Breadboard to make your circuits up, while you are playing with the PIC. There are various sizes available, which come with their own costs.

Next, we will look at how to connect up a simple circuit for PIC development.