MICROCONTROLLER TUTORIALS – PIC
Introduction to PIC:
Welcome to the start of the PIC Tutorial. These pages will take you form the basic structure of the device, right throughto programming methods and techniques. Also, there will be suggestions on how to modify the code so that you canadapt the PIC to suit your applications within Cybot. We will not be including any internal architecture diagrams, as thismay only lead to confusion. If you want to look at the datasheet, then this can be downloaded from Microchips' website.
To start, let us take a look at the PIC.
Microchip PIC 16F84 Microcontroller
Microchip manufacture a series of microcontrollers called PIC. You can see the range of their microcontrollers(http://www.ic-prog.com/index1.htm). 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. We are going toconcentrate 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. We are going to show you theAssembly Language. Don't be put off by this. There are only 35 instructions to learn, and it is the cheapest way toprogram 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. We will go through each pin, explaining what each is usedfor.
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 bitnumber (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.
VSS And VDD
These are the power supply pins. VDD is the positive supply, and VSS is the negative supply, or 0V. The maximumsupply voltage that you can use is 6V, and the minimum is 2V
OSC1/CLK IN And OSC2/CLKOUT
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 isconnected 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 othersingle 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'tbe using this one much either.