Circuit schematic for the classic PIC serial programming cable. There is also a high resolution version of the image, and a Scalable Vector Graphics source file for printing. Please note that the SVG file might not display properly in some browsers.
Microcontrollers generally require special hardware for programming them from a computer. The cable can be as simple as a few wires, resistors and diodes connecting the parallel printer port to the microcontroller hardware, or it can contain a microcontroller of its own to mediate between the computer software and the microcontroller.
I've found this simple circuit to be a good compromise. It works via the serial port of the PC and is capable of programming most kinds of PIC microcontrollers. Typically it is used to configure and load a bootstrap program into a new blank microcontroller. Once the bootstrap program is in place, the serial programmer may be dispensed with and the computer can communicate with the bootstrap program to update and interrogate the microcontroller via a normal serial cable.
The software for programming PIC microcontrollers with this is in these files: serial.lisp and controller.lisp They have been extensively used with PIC16F84 microcontrollers and more recently they have been enhanced to take advantage of the features of PIC16F88 microcontrollers.
The bootstrap program for the PIC16F88 is bootstrap-pic16f88.lisp and is accessed via additional methods in the controller.lisp file.