C Programming Tutorial: Programming software : ICPROG (Free!)Download and install ICPROG which is PC software that generates the correct serial ICSP signals to program your PIC chip. You can use it either on a parallel port, serial port or USB port with a USB to serial adapter - ( USB <-> Serial untested).Note: Look in left frame for download button.
C Programming Tutorial: Setting the path to ICPROG You should setup the environment variable to icprog.exe so that it can be called from anywhere but if you don't you can still start icprog by double clicking icprog.exe in its installation directory.The installation location is up to you but you should put it into a directory that is in the current path so that windows can find it or add the directory (where you put ICPROG) to the system path environment variable.Unfortunately setting up the windows path is different for every windows installation from Windows 95 to XP so you will need to find the exact details for your operating system. Windows 95 uses autoexec.bat and config.sys. For XP you can set the path from Start --> Control panel --> System --> Advanced (tab) --> Environment variables. You can set the path for a user or the system. I usually set the system path but see below:Note : Do not delete the path variables and only add to the end of them. If unsure select the system path value and copy and paste it to a local editor. There edit it keeping all the original - make sure it is exactly the same with only your additions on the end. e.g. if you want to put icprog.exe in a directory c:\icprog-path add the text 'c:\icprog-path;' to the end. Note save the text editor text and check everything works as before - if it does not go back and set the path to what you started with.
C Programming Tutorial: ICPROG for Windows 2000/XP users Windows 2000 and XP stop you using the parallel port directly by adding a layer of software between your program and the parallel port. It's probably there so that no more than one process (e.g. printer) or user can access it at the same time - but a 'PC' is a personal computer usually used by one person this "feature" just gets in the way.What this means is it is a pain if you want to use the parallel port for hardware. To get round this you have to install another piece or software which *will* allow you access to the parallel port. For ICPROG this program is a system driver and you can also download it from the ICPROG page it is icprog.sysFor a parallel port programmer you need to install icprog.sys to allow the software to have parallel port access:Note: A Serial or USB port programmer does not have this restriction.Open an explorer window and navigate to the icprog install directory,Download the icprog.sys file to your icprog install directory i.e. in the same directory as icprog.exe.
C Programming Tutorial: Windows XP and ICPROGUsing explorer select icprog.exe, right click. Then select the Properties menu then the Compatibility tab. Make sure compatibility mode is disabled - icprog will set this for you as you follow the next instructions.Start ICPROG - a privileged instruction error occurs - ignore this - icprog starts.Now in icprog choose Menu --> Settings --> Options --> Misc (tab) and set Enable NT/2000/XP Driver - icprog will now re-start with the driver installed.
First circuit for the C Programming Tutorial Course: Next you need to construct the following circuit:Note D7 should be placed at the top right of your development board as this will form part of the dice circuit later on.
C Programming Tutorial: Setting the path to ICPROG You should setup the environment variable to icprog.exe so that it can be called from anywhere but if you don't you can still start icprog by double clicking icprog.exe in its installation directory.The installation location is up to you but you should put it into a directory that is in the current path so that windows can find it or add the directory (where you put ICPROG) to the system path environment variable.Unfortunately setting up the windows path is different for every windows installation from Windows 95 to XP so you will need to find the exact details for your operating system. Windows 95 uses autoexec.bat and config.sys. For XP you can set the path from Start --> Control panel --> System --> Advanced (tab) --> Environment variables. You can set the path for a user or the system. I usually set the system path but see below:Note : Do not delete the path variables and only add to the end of them. If unsure select the system path value and copy and paste it to a local editor. There edit it keeping all the original - make sure it is exactly the same with only your additions on the end. e.g. if you want to put icprog.exe in a directory c:\icprog-path add the text 'c:\icprog-path;' to the end. Note save the text editor text and check everything works as before - if it does not go back and set the path to what you started with.
C Programming Tutorial: ICPROG for Windows 2000/XP users Windows 2000 and XP stop you using the parallel port directly by adding a layer of software between your program and the parallel port. It's probably there so that no more than one process (e.g. printer) or user can access it at the same time - but a 'PC' is a personal computer usually used by one person this "feature" just gets in the way.What this means is it is a pain if you want to use the parallel port for hardware. To get round this you have to install another piece or software which *will* allow you access to the parallel port. For ICPROG this program is a system driver and you can also download it from the ICPROG page it is icprog.sysFor a parallel port programmer you need to install icprog.sys to allow the software to have parallel port access:Note: A Serial or USB port programmer does not have this restriction.Open an explorer window and navigate to the icprog install directory,Download the icprog.sys file to your icprog install directory i.e. in the same directory as icprog.exe.
C Programming Tutorial: Windows XP and ICPROGUsing explorer select icprog.exe, right click. Then select the Properties menu then the Compatibility tab. Make sure compatibility mode is disabled - icprog will set this for you as you follow the next instructions.Start ICPROG - a privileged instruction error occurs - ignore this - icprog starts.Now in icprog choose Menu --> Settings --> Options --> Misc (tab) and set Enable NT/2000/XP Driver - icprog will now re-start with the driver installed.
First circuit for the C Programming Tutorial Course: Next you need to construct the following circuit:Note D7 should be placed at the top right of your development board as this will form part of the dice circuit later on.
BOM for the C programming tutorial course.For this page - see below for BOM for the 1st complete circuit.Here is the list of parts for the above circuit (or Bill Of Materials):
C programming tutorial BOM
R14End of C Programming Tutorial BOM.The last 3 components are for the curve tracer which also uses 10k resistors for gain setting.
(Click here for the parts list and circuit for c programming course 1st project)
You also need a circuit board to work on or a solderless breadboard and wire for connecting up the circuit.
Preparing the 16F88 for the C Programming Tutorial:R1 stops the part entering the wrong programming mode (LVP mode). LVP mode is the default mode (Low Volt Programming) and is always enabled for new parts but it makes the pin unusable for anything else. Since there are not many pins in this particular part the first task is to disable LVP mode. You can do this by programming the part with the first program which has turned off the LVP fuse and at the same time it flashes the LED so once the part is programmed you can see that it's working.At this point you don't need to do any compilation or C coding so lets just go through the programming process.Note: Later diagrams may not show R1 as it is only important when1st programming the part (if you ensure that the LVP control is always set to off in the compiler project edit control panel - see videos for more information on that).
C Programming tutorial directory preparation.Create a working directory:
c:\pic-c-course
Download hex file for setting up the C programming tutorialDownload the following zip file:
Download file:
Download here.Download the file c-course-Intro.zip to that directory. Note: I use 7zip - just do a google search for '7zip' if you don't have an unzip program which is free and integrates into the windows shell - meaning you can right click in explorer and directly zip/unzip files.Unzip the file 'prog00-16F88-intro.zip' in the pic-c-course directory. It will create a directory c:\pic-c-course\prog00-16F88-intro\ in which will be a hex file.
C programming tutorial: Program the 16F88 using ICPROGFor this C programming tutorial you should have installed ICPROG so start that program up now. Setup the hardware interfaces for your programmer using the options menu.
C programming tutorial BOM
R14End of C Programming Tutorial BOM.The last 3 components are for the curve tracer which also uses 10k resistors for gain setting.
(Click here for the parts list and circuit for c programming course 1st project)
You also need a circuit board to work on or a solderless breadboard and wire for connecting up the circuit.
Preparing the 16F88 for the C Programming Tutorial:R1 stops the part entering the wrong programming mode (LVP mode). LVP mode is the default mode (Low Volt Programming) and is always enabled for new parts but it makes the pin unusable for anything else. Since there are not many pins in this particular part the first task is to disable LVP mode. You can do this by programming the part with the first program which has turned off the LVP fuse and at the same time it flashes the LED so once the part is programmed you can see that it's working.At this point you don't need to do any compilation or C coding so lets just go through the programming process.Note: Later diagrams may not show R1 as it is only important when1st programming the part (if you ensure that the LVP control is always set to off in the compiler project edit control panel - see videos for more information on that).
C Programming tutorial directory preparation.Create a working directory:
c:\pic-c-course
Download hex file for setting up the C programming tutorialDownload the following zip file:
Download file:
Download here.Download the file c-course-Intro.zip to that directory. Note: I use 7zip - just do a google search for '7zip' if you don't have an unzip program which is free and integrates into the windows shell - meaning you can right click in explorer and directly zip/unzip files.Unzip the file 'prog00-16F88-intro.zip' in the pic-c-course directory. It will create a directory c:\pic-c-course\prog00-16F88-intro\ in which will be a hex file.
C programming tutorial: Program the 16F88 using ICPROGFor this C programming tutorial you should have installed ICPROG so start that program up now. Setup the hardware interfaces for your programmer using the options menu.
Note see module 1 of the course for a video tutorial on ICPROG.
Load hex fileNow open the file (in ICPROG)
c:\pic-c-course\prog00-16F88-intro\prog00-16F88-intro.hexNow program the file into the PIC Microcontroller.Note: You can find detailed instructions on using ICPROG for this C programming tutorial here.
C programming tutorial: ResultYou should now have a circuit with a flashing LED - this is the equivalent of the "hello World" program you usually find in the start of C courses but because the microcontroller is only concerned with I/O ports there is no way of displaying a message yet ...... later on we'll look at RS232 where you can make a hello world program. Congratulations......you have programmed the microcontroller correctly and are now ready to start the C programming tutorial course. This proves that all the software and hardware is operating correctly.
C programming tutorial: Notes Things to note about the circuit for the C programming tutorial course:
it uses the internal oscillator.
it has an internal reset circuit. The internal oscillator is running at 4MHz and saves you using an external crystal or RC network. Similarly the reset circuit is also internal. Both these features save pins as what was once a dedicated reset pin can now be used as an I/O pin. Again using the internal oscillator saves two pins for use as I/O pins.End of C programming tutorial Setup page.
Load hex fileNow open the file (in ICPROG)
c:\pic-c-course\prog00-16F88-intro\prog00-16F88-intro.hexNow program the file into the PIC Microcontroller.Note: You can find detailed instructions on using ICPROG for this C programming tutorial here.
C programming tutorial: ResultYou should now have a circuit with a flashing LED - this is the equivalent of the "hello World" program you usually find in the start of C courses but because the microcontroller is only concerned with I/O ports there is no way of displaying a message yet ...... later on we'll look at RS232 where you can make a hello world program. Congratulations......you have programmed the microcontroller correctly and are now ready to start the C programming tutorial course. This proves that all the software and hardware is operating correctly.
C programming tutorial: Notes Things to note about the circuit for the C programming tutorial course:
it uses the internal oscillator.
it has an internal reset circuit. The internal oscillator is running at 4MHz and saves you using an external crystal or RC network. Similarly the reset circuit is also internal. Both these features save pins as what was once a dedicated reset pin can now be used as an I/O pin. Again using the internal oscillator saves two pins for use as I/O pins.End of C programming tutorial Setup page.