So how do you get a program into the PIC
Once you have created a program either in assembler or using a high level
language and created the hex file you are ready to program the hex file into
The ICSP interface
or In Circuit Serial Programming interface is used to program the PIC device.
The ICSP is simply a set of pins on the PIC microcontroller with the
following names (or similar names)
With these three signals plus the ground reference you can program virtually any PIC device.
You can find more information on ICSP here.
and typical connections for pic programming using ICSP here.
To do the job you need a piece of hardware which interfaces to the PIC ICSP pins and to the PC. Here's some examples:
Software running on the PC translates the hex file into a serial bit stream of data and the pic microcontroller takes care of everything else.
There's also information on pic programmers here.
The programming hardware holds the Vpp pin at a high voltage to indicate
that the PIC device must enter programming mode.
Then a stream of data is generated to the PGD pin and along with this a clock signal is sent (PGC). The PIC uses these signals to load up its internal flash memory and program it.
Note: The ICSP is a bi-directional interface so the programming software can also read back the contents of the part for verification.
Here's a diagram of the programming set up:
Note: When the parallel port interface is used the data is still sent serially by controlling individual pins in the port.
Once you have the programmer hardware and programming software in place you won't have to worry about the details - and if you design the hardware carefully you can use the ICSP interface while your circuit is running.
This makes using the PIC micro extremely simple as you can leave the ICSP interface connected to the programmer and try out different programs - all..
All you do is generate the hex file, hit the programming key in the
programmer and check the circuit operation.
Some programmer hardware provides a ZIF socket where you transfer the PIC device from your circuit, to the programmer then from your programmer to the circuit - but I say you do not need one - None of the designs on the site require this - they are all IN CIRCUIT.
...Which language ?
How to make a Pulse Rate Sensor using a simple single opamp circuit with an Arduino and a few other components.
74HC595 : How to add nearly unlimited outputs to any microcontoller.
How to use the MAX6675 and an Arduino to measure temperatures from 0°C to 1024°C with two components: A chip - the MAX6675, and a Sensor: - a type-K thermocouple.