Programmer
There are many PIC programmers you can purchase or whose schematics (and software) you can find freely over the Internet
David Tait has a programmer with software and hardware schematics available here. If you read his documentation, you will find various programmer schematics. I use the Classic βTaitβ Programmer. The schematic is below:
I donβt use FPP, the software supplied by David Tait. You can use it and program a PIC16F877 to run the oscilloscope firmware and everything should work just fine. If you want to program the more readily available (and generally cheaper) PIC16F877A, FPP wonβt work.
Therefore, I use another free programmer software called WinPic800 (you can also use another program called IC PROG). I prefer WinPic800 because it is easier to set up in Windows XP (you donβt have to go download a separate driver), it is flexible enough to work with non-standard programmers, and I get consistently good results.
To help with the setup, here is a screen capture of the Hardware Settings dialog from WinPic800 configured for use with the Tait Programmer on LPT1. Notice the bit numbers and byte offsets for each signal and which signals are inverted.