Here is a modified LudiPipo Serial Port PIC Programmer that has been used to programme the 10F204, 12F675, 16F628, 16F676, 16F876 and 16F877 chips.
The circuit uses two modem lines from the serial port via resistors connected to the program CLOCK and DATA lines. When reading from the PIC, it outputs against the modem line behind R3, 2K2. The TX pin is forced positive by applying a BREAK, to provide Vpp. Some PICS need the full 13V, while others are specified that Vpp should be Vdd+3.5V.
The software uses the Windows API to access the serial port. A USB to Serial Port has been tried, but there is too much software between mine and the programmer.
The circuits and software are offered as is. Microchip are selling fully supported programmers at a price that any professional can afford.
If you cannot get it to work please, find another free programmer program from somewhere else.
I have now got this to work with the 10F204, 12F675, 16F628, 16F676, 16F876 and 16F877 chips.
The 16F876 and 16F877 Chips must have Vss set between 4.5 and 5.5 volts to erase them. The 10F204 must have Vpp between 12.5 and 13.5V, so I have used a 9V battery to generate Vpp.
I also found that I had to decouple the PGC ( RB6 ) and PCD ( RB7 ) lines.
In this picture, when I used twisted leads from the programmer to the Chip, it would not program. If I used single strand wire it worked. I added a small capacitor from PGC to Vdd, it programs 16F876 and 16F877 chips.
Visit Here for more.