![]() |
||||||||||||||||||||||||
![]()
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() I use
and
recommend Firefox for the best internet browsing experience. Click below for your free copy today: CLICK
THE IMAGE:
Note:
I find it faster
and easier to use and it has great plugins. It even imports all your current browser settings! There's
no risk as your existing browser is not affected in any way - you can just choose which
one to use.
|
Useful For You. Readers
comments
|
|||||||||||||||||||||||
PIC 12F675 Microcontroller Tutorial.A tutorial on the 12F675 PIC microcontroller which shows you how to program and use it with a series of projects starting out with a simple LED flasher and progressing on to more advanced projects. To use the tutorial files you need to have a PIC programmer with an ICSP output connector and the components shown in each tutorial. You don't have to install the compiler as hex file is contained in the downloadable zip file. If you do want to re-compile the source code the compiler is free for the small amounts of code used here as they all generate hex output files that are below the 2k limit. Jump to Solderless breadboard. Jump to Circuit diagram. Jump to Software.
Before you start have a look at the following for background info:
12F675The 12F675 microcontroller is packaged in an 8 pin chip and even though it is tiny it is packed with peripherals. It even has a 10bit ADC built in (this is the same ADC that you can find on the 16F877A and 16F88 used elsewhere on this site). So learning about this peripheral is also useful for these other parts.The 12F675 has 1024 words of program memory, 64 Bytes of RAM and 128 Bytes of EEPROM, an internal oscillator, timers an ADC and a comparator. Note:The 12F629 is identical except that it does not have the ADC. 12F675 Microcontroller FeaturesThe following bubble diagram shows the major peripherals and features of the 12F675 in a visual format:Note: you can compare this chip (using bubble diagrams) to some others used on this site by clicking here. 12F675 Microcontroller ProgrammingYou can program the microcontroller using an ICSP programmer (you can use it for any PIC chip). ICSP connections are shown in the diagram below.To use it you will need software running on the PC : ICPROG. This lets you flash the hex file generated by the compiler into the 12F675 You can find a programmer circuit here and information on using ICPROG here. Note:
Using the above programmer circuit sometimes you need to remove the
ICSP connector (this is easier than removing the whole chip). I have
used a 4 pin molex with wires soldered to the base (these go into the
solderless breadboard) making removal trivial.
Sometimes you need to remove it as the programmer does not
release Vpp (PC software operation) and at other times you will need to
remove it as you will want
to read the analogue voltage at the ICSP pin (see temperature logger in
a further tutorial).
12F675 : ICSP connections:12F675 Microcontroller Power SupplyIf you don't have a bench power supply then you should use the following standard circuit. xAll you will need is a wall power supply block with dc output (greater than 8V and no more than 35V) or a 9V battery to plug into CN1. Note: It is best to use the 5V power supply circuit as it not only correctly regulates the dc voltage but it protects your PIC chip. The input voltage can go up to 35V without damaging the 7805. You would not want to use that high voltage for very long if using reasonable current as the 7805 would have to get rid of the excess power as heat. Say you used 100mA dropping 35V to 5V gives P=VxI = 30 *0.1 = 3W - a huge power output - the 7805 would get very hot and go into thermal shutdown! ![]() 12F675 oscillator calibration value.Before programming it with your hex file make a note of the oscillator calibration value which is factory set by Microchip.Note:The calibration value is located at the last memory address 0x3FF This value calibrates the 4MHz oscillator to 1%. If overwritten you have to re-calculate it yourself. Click here for more detailed information (in a further tutorial) and then come back here. If you use ICPROG then it warns you that you are about to overwrite the oscillator calibration value and asks if you use the value from the hex file - you should answer No to keep the original value. Note: Each oscillator calibration value will be different so you have to note down each value for each chip and not muddle them up! If you loose it you can recalculate it but you will need a frequency counter. Tip for storing the calibration valueThis is a tip I have seen on the web for storing your calibration value on the device itself - it's so good I thought I would include it here.All you do is think of the pins of the 8 pin device as a binary number and mark those pins with the value you read out using the programmer (in read mode) All you need is the last hex number as the 1st is always 34. So lets say you read your device and get 344C. Just use the 4C part. ![]() Oscillator modesAs with the 16F88 the 12F675 microcontroller has eight oscillator modes but unlike the 16F88 the internal oscillator is fixed at 4Mhz.You can use an external oscillator either a resistor capacitor pair, an external clock signal or a crystal (or resonator). You can even operate the crystal to 20Mhz if you need extra performance. Note: Only use the external modes if absolutely necessary as you loose the use of pins (loosing 2 out of 6 I/O pins is a lot to loose). Tutorial 1 : 12F675 Flashing an LEDThe first program is a flashing LED - it always is! The reason is that there is the least hardware to go wrong so it gives a good test of your system setup.This project also uses the 12F675's internal oscillator and you don't need a crystal so there is even less to go wrong! Use the solderless breadboard to construct the following circuit: Note: Double check your connections on the breadboard. Note: the plus sign on the 10u electrolytic capacitor which must connect to the positive input voltage and have a voltage rating stamped on it of greater than 35V (or greater than your maximum dc power block output). The LED must be connected with the flat side to ground. Solderless breadboard layout![]() Circuit diagramThe following diagram shows the above Plugblock circuit in schematic form. It is exactly the same circuit but lets you view the circuit in an easier way and shows the layout of the circuit from the point of view of the circuit block functions rather than how you have to place the components (using the Plugblock). |
||||||||||||||||||||||||
| Buy
all the 12F675 Tutorial
source code ...with the MikroC project files and compiled hex files Click here for more information. |
|
| ////////////////////////////////////////////////////////////////////// void init_ports(void) { TRISIO = 0; // set as output } ////////////////////////////////////////////////////////////////////// // Start here void main() { init_ports(); while(1) { // infinite loop GPIO = (1<<4); delay_ms(200); GPIO = 0; delay_ms(200); } } |
| Start Page | 12F675 Tutorial Index | Next |
![]() |
Don't forget to Sign Up for your Microcontroller
Newsletter
With "Essential tips and techniques", ..."New Site Info" and more... |
![]() |
|
![]() |
Including a
free project :
How to drive
an LCD and 12key keypad using "Only
One 8 Bit Port"
with no
interface logic!...
(Works for any microcontroller)
This costs you : Nothing... ![]() Just fill out the form below and you'll get full C source code and project schematic and description. |
||
|