HomeArticlesProjectsBlogContact
Articles
Learn Microcontrollers
Colin Mitchell
Colin Mitchell
March 01, 2009
Make sure to subscribe to our newsletter and be the first to know the news.

Index
12 FREE PIC Books Simply download the books via Rapidshare.
Lots of PIC micro information on this website.
or here: more downloads

START HERE

Chapter 1

Number1
Microchip claims to be the #1 in microcontrollers.
This is possibly true as they recently sold their billionth chip to a Chinese manufacturer.
The reason I recommend microchip is simple:
The back-up is enormous.
A huge number of projects have already been designed by hundreds of programmers.
A ”PIC Web-ring” on the internet will answer any questions.
The chips are “cheaper than ever.”
And you can create a circuit in which the program is safe from “prying eyes” via a security feature.

In fact, microcontrollers are the only way to go …

This is Chapter 1

It starts you at the beginning of making/creating/building a project using a microcontroller.
Electronics is enormous and the most interesting projects use a microcontroller.
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 oscillator.

Here are 2 circuits using the PIC12F629, (and see 6 more circuits HERE).

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: Elektor, EPE, Silicon Chip, over a number of issues but since the space in the magazine is limited to a few pages per issue, 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 board.
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.

ASSEMBLY LANGUAGE

All the instructions for the projects are written in ASSEMBLY LANGUAGE. Examples of 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:

   decf  2Ah,1

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 (capability) of 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?
It’s 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 sophistication:

Code with 4017 50
CODE PUZZLE USING DISCRETE CHIPS

To see more ideas, look at the projects below. 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 Library of Instructions and Routines has been included to help you with writing a program.
Our method is called “Cut and Paste.”
A blank 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 programmer: p12F629.inc

THE BACKGROUND 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 applications.
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 considerably.
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 device.

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 copied.
This is essential if you are on the path to designing a product that needs protection.
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 stage will involve discrete components.

IN-CIRCUIT PROGRAMMING

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 Multi-Chip 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 will use.
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 PICkit-2.
If you buy the Multi Chip Programmer, you will need a cable to connect the programmer to the computer. This cable is called: SERIAL CABLE.
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 PIC12F629 microcontroller Page 1.
Read the article on PROTOTYPING.
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 PROGRAMMING.

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.

THIS IS WHERE YOU START

  1. Create a folder called PICkit-2 Files.
    On your desktop, create a new folder with the wording PICkit-2 files. It will look like the following:

    Create a link from this icon so that when you click on the icon, all the files in the folder will appear on the screen.
    This folder will also have (eventually) lots of folders and each folder will have the files associated with each project that you will be developing.
    Each time you start a new project, you will add another folder to the folder containing all your work.
    You will start a new project by copying one of the project we have produced and then you will change some of the instructions and work from there. If you want to start from scratch, you can use blank template. This program will be written on NotePad2 and saved as xxxxxxxx.asm
    You can have only 8 characters in the name.
  1. On your desktop, place an icon like the following:

    Create a link so that when you click on the icon, you will get MPASM appearing on the screen with the following image:
    MPASMfront
    MPASM can be in the PICkit-2 Files folder.
    You must set up the screen so that it shows the same outputs etc as in the image above.
  2. On your desktop, place an icon like the following:

    In the PICkit-2 Files folder, place the following program: PICkit2V2.zip
    Create a link so that when you click on the icon, you will get PICkit-2 appearing on the screen with the following image:
    PICkit 2Frontice
    You will now have 3 icons on your desktop like this:
  3. When you begin or change or modify or start a program, you will start by clicking on the first icon (above) and this will bring up all your folders containing all your PIC programs.
    You will click on the appropriate folder and find the .asm file
    You will work on the .asm file and save it. This is done in a program called: Notepad++ or VS Code
  4. Then click on the MPASM icon (above) and this will display the program that will operate on the .asm file and assemble it to produce 4 more files: COD file .ERR file .HEX file .LST file and you will have 5 files.
    If your program contains mistakes, only the .ERR file will appear and we will deal with that later.
    Otherwise 5 files means the program has assembled correctly.
  5. You are now ready to “burn” the program into the PIC chip.
    This is done with a PICkit-2 programmer like this:
    pickit2 large

The PICkit-2 programmer needs to be connected to Talking Electronics PIC Burner Board to make burning easy:
PIC BurnerBoardTop
Connect the PICkit-2 programmer to a USB socket (via the cable supplied) and click on the PICkit-2 icon and it will find the PICkit-2 programmer and display the following:
PICkit 2Frontice

That’s the end of setting-up. We will now go over the next set of things to do: (there may be some repeats)

SETTING UP PICkit2

Place the PICkit2 programmer near your laptop.
Connect the interface cable between the USB port and the PICkit2 programmer
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 - PICkit2files”
Load MPLAB IDE CD and go to START on your computer and “right click” to get “Explore.”
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 PICkit.
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 NotePad (Notepad++ or VS Code) Unzip it and place it in “Program Files.”
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 projects.

You can now construct one or more of the projects in this series:

PROJECT 1 SKY WRITER

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.

PROJECT 2 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.

PROJECT 2a 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 the display.

PROJECT 3 CODE PUZZLE

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.

PROJECT 3a REACTION TIMER

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 friends.

PROJECT 3b 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.

PROJECT 4 REMOTE CONTROL

Control a servo with a pot. This project opens up all sorts of remote control applications such as panning and tilting of cameras, model displays etc.

PROJECT 5 FOX HUNT

A surface-mount PIC chip is used to create a beep tone for an FM transmitter.

PROJECT 6 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 get.

PROJECT 7 SOUND “OFF”

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.

PROJECT 8 DOORBELL

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.

PROJECT 9 CALL REMINDER

How many times have you tried to make a business call but the person did not answer?
Then you completely forgot to ring after say 30 minutes.
This is typical, as our mind finds it very difficult to repeat a particular action.
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 Notepad++ or VS Code and


Colin Mitchell

Colin Mitchell

Expertise

electronics
writing
PIC-Chips

Social Media

instagramtwitterwebsite

Related Posts

TODO
Transistor Test
© 2021, All Rights Reserved.

Quick Links

Advertise with usAbout UsContact Us

Social Media