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 device.
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. The interface you should use is either a PICKit2 or PICKit3. The PICKit3 is the most up to date and allows all PIC devices to be programmed, whereas the PICKit2 is an older version.
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:
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 ?
For Arduino string operations you can use Object Class Strings or C style strings but which should you use? Also find out how to decode commands and control variables in your programs using strings.
Real Time Clock Design (FREE): A Free and Complete RTC design using the DS1307 and a PIC micro (16F88) also re-targetable. This PIC project uses an I2C Clock chip and 7-segment display to create a fou…
With the ADXL345 acellerometer you can detect up to 16g! You can also find out how to use it for tap detection and more.
Arduino Interrupt Tutorial: Find out how many external there are on an Arduino Uno - The answer is more than two!
Switch debounce: Three different ways to debounce input push switches with one amazing method that you can't miss.
A tutorial on using the ADS1115 precision 16 bit ADC for low power use.