and the most interesting projects use a
In this chapter we start you with one of the simplest microcontrollers on
the market and we show how to make really interesting projects.
The chip is the PIC12F629. It has 8 pins, 5 output lines with 25mA
drive-current each. These can be configured as input (that's why they
are called input/output lines) and one other line is input-only. The
chip has 1024 spaces for your
program (i.e: 1024 lines of code or data), 128 bytes of EEPROM
memory (data will be retained when the power is removed) and 4MHz internal
Here are 2 circuits using the PIC12F629, (and see 6 more circuits
But first you must read all this chapter so you can see what we have
produced. Then you will be able to work out what project you want to
build and how you will program the chip.
All the projects are designed around the "simplest microcontroller on
the market." These will be appearing one or all of the three best
electronics magazines you will find in your newsagent:
Silicon Chip, over
a number of issues but since the space in the magazine is limited to a few pages
only the main parts will be described and the full article will be on the
web - right here!
The web is a "most amazing" place. It offers an "endless page"
with full-colour at no extra cost and since we have provided an enormous
amount of detail for each article, including links to other pages, we
will be using the resources of the web to the fullest.
You will find this series most fascinating as it introduces the
art of programming PIC microcontrollers when they are soldered to the
We start at the beginning with one of the simplest PIC chip on the
market (PIC12F629) and show what can be done with 8 pins. There are
smaller 6 pin chips, and the one we suggest is:
PIC10F222. But the cost of this
smaller chip is the same as the PIC12F629, so why increase your
inventory and complicate things?
THE BIG QUESTION . . .
Why do we write so much in each article?
Because many projects in magazines are designed by brilliant electronics engineers
and they expect everyone who reads the article to understand how the
project works. But all readers are not brilliant on every topic and sometimes a small amount
of explanation will make a project more understandable.
Since we don't know which part of the article requires
additional comment, we cover it all.
In all our books and magazines we have never been charged
with writing too much.
On the contrary. Readers like the in-depth approach. It removes so much
frustration. It took me more than 3 days to work out how a brilliant
clocking cycle worked in a counter chip project, some 20 years ago and I
don't want this frustration to occur with any of my projects.
All the instructions for the projects are written in ASSEMBLY LANGUAGE.
this are: decf (decrement the file "f") clrf (clear
"f") and an instruction such as "decrement file 2Ah (2A is
hexadecimal) and place the result in the file", is written as:
The ,1 indicates the result is placed in the named file and this is the
same as ,F or ,f If you write decf 2Ah,0
the result will be placed in "w" and the named file will not be altered!
These instructions are actually called mnemonics as they contains letters
or sounds similar to the wording of the instructions. This type of
programming is called "Low-Level" as it is very close to the
numbers ("0's" and "1's") that are understood by the microprocessor.
In other words there is a simple look-up table to
convert our instructions to "machine instructions" and this
conversion is done by a program called an assembler, when it changes the
assembly code (assembly language) we have written, into numbers (actually a string of "0's"
and "1's") that are understood by the microcontroller
(actually the microprocessor inside the chip). A
microcontroller is a chip containing a microprocessor and additional
items such as memory and drive-lines to allow the microprocessor to
connect to the outside world.
The 33-35 instructions we use to produce all our programs are very easy to remember. Every feature
the chip can be carried out with these instructions and you can compare
this to being given the 26 letters of the alphabet. All other languages are
called "High-Level" as they need an interpreter to convert the
instructions you produce
into instructions that can be understood by the micro. There is no problem with this but
you need to lean how to write High-Level programs.
By using the micro's 33 instructions you can start programming
immediately. We call our technique "Cut and Paste" where you move lines
of code into your program from sub-routines we have already produced.
WHAT CAN THE CHIP DO?
One of the first questions you will ask is: What can the chip do?
best to look at the projects below to see this.
Don't forget, we are using one of the smallest chips on the market and we have
designed many projects, including a telephone dialer, Vox bug,
timer, Infinity Bug, heating controller and more, so its capability is
quite impressive. If you try and compare the chip with old-style
logic chips, such as NAND gates, OR-gates, inverters and comparators etc, it could easily
replace 20 or more chips and still produce a smarter design.
Here is a typical example. It is a Code Puzzle circuit using discrete
chips. Our project uses a single chip and produces a higher degree of
CODE PUZZLE USING DISCRETE CHIPS
To see more ideas, look at the projects
Everything is documented with step-by-step instructions and this is the
first time you will be guaranteed to get a project working. Everything
you need is included on this site and a
Routines has been included to help you with writing a program.
Our method is called "Cut and Paste."
template is available for the chip and by cutting and pasting
sub-routines from other projects, you can create your own program with
the least effort. You will also need the "include" file for the
TO THE PIC CHIP
The original application for the first PIC chip to be invented, was to interface a program to a
computer to prevent pirate copying. It was fitted in a lead called
a "dongle" and worked so fast and efficiently that is was used in other
This brought a huge following on the internet and created considerable interest with
"PIC discussion groups."
Clones appeared and one company designed an easy to
program module around the chip using a higher-level language called BASIC.
Their BASIC program filled the chip and only allowed room for about 40
BASIC instructions in a section called EEPROM (memory that does not
disappear when the power is removed).
A BASIC instruction will carry out a greater command than a single mnemonic
instruction but overall the concept reduced the capability of the chip
This did not pose a major problem as the chip has such a high capability
that it is rarely completely used.
So, if you are worrying about running out of program space or the chip
is too small or too simple for a project, just look at what we
have done and see what type of projects are suitable for this 8-pin
Before finishing, there is one important reason why we chose the lowest level language for programming.
If a sub-routine has a fault and doesn't work, you will be
able to see the instructions and work out what is going wrong.
But most-important, by using our programming method, the program will be
the shortest and you can code-protect the chip to prevent it being
This is essential if you are on the path to designing a product that
There are thousands of products being invented each year requiring a
simple processor such as the one we are promoting. Look at the toy area,
medical aids or the "touch and go" swipe card. These types of
things will create sales in the millions and obviously the program will
be contained in a COB (Chip On Board) in the final design, but the initial
involve discrete components.
All the projects in this series involve surface-mount componentry and
IN-CIRCUIT PROGRAMMING. (You can use though-hole components and you can
use normal programming).
The three areas we cover are:
1. Building a surface-mount project.
2. Writing a program for a PIC chip.
3. Programming a PIC chip via In-Circuit Programming.
PIC chip are available as through-hole devices or surface mount. When
selecting the surface-
mount version, the project will need to have a programming socket and
wring to the chip so the chip can be programmed and re-programmed as you
develop and modify the program during development.
When selecting the through-hole device, you can program the chip via a
parallel programmer, using our
Programmer, or serially, via the USB port, using the PICkit-2. The
Multi Chip Programmer has an interface cable for In-Circuit Programming
but the programmer does not have any "driving" capability to program a
chip when items are connected to the output lines.
PICkit-2 is more expensive but has some "driving" capability.
You need to read all the articles before deciding which programmer you
Basically the decision is simple: If you have a "tower" computer with a
serial port, the Multi Chip Programmer uses the serial port and voltages
of the RS-232 to program the chip.
If you have a lap-top computer with USB, you will need to buy the
If you buy the Multi Chip Programmer, you will need a cable to
connect the programmer to the computer. This cable is called: SERIAL
If you buy the PICkit-2, it comes with a connecting cable.
BEFORE YOU START
Before you start building
anything, you need to read the following articles to learn about the PIC
chip, surface-mount technology, programming skills and how to
get a project "off the ground."
Start by reading about the
microcontroller Page 1.
Read the article on
Read the article on: Programming Board
for Surface Mount PIC and through-hole micro. (includes Connector
Boards for both types of chips).
Read the article on
You will now have an idea of some of the steps involved in getting an
idea "off the ground."
The next thing to do is construct a programming board
and "burn" some of the experiments into the micro and see the results.
To do this you will need to buy the PICkit2 programmer, the programming
board (for the surface-mount chip) and the connector. If you want
to program only the through-hole chip, you can buy the programming board
and connector for the through-hole chip.
THINGS YOU WILL NEED
Before you get to any of the projects, you will need to construct the programming board
(called SM-8 board) for a surface mount chip (and
components) to test your IN-CIRCUIT PROGRAMMING skills. You will need an IN-CIRCUIT
PROGRAMMER called PICkit2 and CD's that come with the programmer.
You will also need to build a connector
(called SM connector-1) to go between the programmer and
the PC board.
We also have a board for a through-hole 8-pin chip (called Dev-8
board) so you can program a
microcontroller for other projects. We also have a
connector to go between the programmer and
the development PC board (called Dev-8 connector-1).
All the projects in the series come with a pre-programmed PIC chip and a
programming socket so the chip can be modified while it is soldered to
the board. The projects also have lands for the surface-mount version of
the chip as well as the through-hole version. The 8-pin socket for the
through-hole version is soldered to the lands around the edges of the
surface-mount lands so the socket sits above the positions where
the surface mount chip is designed to be placed. This gives you the
opportunity to use either a surface-mount or standard chip.
SETTING UP PICkit2
Place the PICkit2 programmer near
Connect the interface cable between the USB port and the PICkit2
Fit the interface plug between PICkit2 and the programming board for
either a surface-mount PIC chip or through-hole chip.
Place the .asm file Blink.asm in a folder AT THE TOP OF YOUR
FOLDERS (MPASM does not like long extensions), such as "A -
Load MPLAB IDE CD and go to START on your computer and "right click" to
Locate drive D: and install the files in a folder called: "A - MPLAB" Go
to MPASM Suite and locate MPASMWIN.exe and right click. A window will
open with "Send to" Send to desktop (create shortcut). Close
all windows and the shortcut will be on your desktop. Move it to a new
position on the desktop and right click on the icon. Remove all the
wording and leave MPASM below the icon on your desktop.
Insert the CD PICkit Starter kit CD.
Go to Start on your computer and right click to get "Explore."
Go to D: and click on the folder "Install."
Click on PICkit 2.
Click on "setup.exe"
It will create a file "Microchip" in your "Programs Files."
A folder PICkit 2 v2 will be created and in this folder will be:
PICkit2V2.exe and an icon on your desktop.
Alternatively, insert PICkit Starter kit CD and click "Installs" on the
front screen. This will bring up a box to automatically install "setup.exe"
Go to your desktop and put the PICkit icon next to MPASM and rename it
Place the folder containing your files on the desktop by going to
"Start" Right click to get "Explore" Right click on
your files folder and "send to Desktop (create shortcut). Place the icon
near MPASM and PICkit2.
Install NotePad2.exe in "Program Files" (Download
NotePad2.exe as NotePad2.zip) Unzip it and place it in
Click on "PICkit2 files" icon on your desktop and select any .asm file.
Right Click and select "Properties" at the bottom. Find: "Open
with" and push the "change" button. Find NotePad2.exe in "Program Files"
and use this to open all your .asm files.
You are now set up.
You have now placed the files from the CD onto your computer, used the
PICkit2 serial programmer on your serial port, built the interface
connector to fit between the PICkit2 programmer and programming board,
built the Programming Board for either the surface-mount PIC12F629 or
through-hole version, (it also contains LEDs and components for the experiments).
You must prove the programmer is working by going through the
experiments to turn a LED on/off etc before starting any of the
can now construct one or more of the projects in this series:
This project uses a PIC12F629 and 6 LEDs to produce words "in space."
The project is waved through the air to produce words or any character
or symbol you program into memory.
FIND THE NORTH POLE
This project uses a PIC12F629, an inductor and an op-amp to detect the
magnetic field of the earth and identify the direction of the north
pole. A simple requirement, but an amazing thing to do with electronics.
SPIN THE DICE
This project uses the FIND THE NORTH POLE board. It is mounted on a "top" and spun to produce the pips on a
dice. The earth's magnetic orientation is used to reference the start of
Two switches are used to turn on a LED. The switches must be pressed in
the correct sequence and at the correct time. To turn on the next LED,
the sequence is different. There are 10 LEDs and if the switches are
pressed incorrectly, one LED will go out.
This program uses the CODE PUZZLE PC board.
Call this a "Booze-O-Meter" or "Skill Timer" or "Reaction Timer," it's
all the same. Ten LEDs show the time taken to press the stop button
after an unknown delay period. You will be amazed at how your reaction
time increases when you are tired or after "drinking." Test your
COUNT TO 1010
This program uses the CODE PUZZLE PC board. The 10 LEDs on the Code
Puzzle board are turned on as decimal values. The lowest LEDs blinks
every second. It is on for 0.5sec and off for 0.5sec) and after 10 seconds, the second LED illuminates
very dimply. After another 10 seconds its illumination is slightly
brighter. After illuminating 9/10ths of its brightness, it goes out and
the nest LED comes on dimly. All you
have to do is keep the project turned on and wait for the highest-value
LED to illuminate. It will represent 1010 seconds.
Control a servo with a pot. This project opens up all sorts of remote
control applications such as panning and tilting of cameras, model
A surface-mount PIC chip is used to create a beep tone for an FM
TALK TO ME
Two identical TALK TO ME projects are placed in a room. One will emit a series of
chirps. The piezo diaphragm on the other is in "listening
mode" and if it hears the chirps, it will respond. The more
of these you have in a room, the more communication you will get. You
will have to see how the program works to appreciate the result you will
A single button remote control to turn the sound on your TV on and off.
I have never listened to an advertisement in my life. I can't get to the
"off" button quick enough. Now you can have all the silence you want
during an advertisement. Just press the button and start to
think about the next project you will be working on. Silence is golden.
This project introduces you to
creating sounds with the PIC chip. The chip comes pre-programmed with a
doorbell chime but you can re-program it with any of the routines in the
project and see how many effects can be produced.
How many times have you tried to make a business call but the person did
Then you completely forgot to ring after say 30 minutes.
This is typical, as our mind finds it very difficult to repeat a
With this project you can set a reminder for any number of minutes and
prevent this type of situation.
CALL REMINDER has a set of LEDs to indicate the number of minutes remaining
before the mini piezo lets you know time is up.
This is just the beginning to the potential of the chip. After building one of the projects, you can change
any of the values in a sub-routine to see what effect it creates.
To do this, load the program into Notepad2.exe