Hi,
Does somebody have an experience with this programmer? I built it but it does not work!! It has a very simple schematic and i would like to build this programmer for 16F877.Why does not it work? How many voltage should i measure when programming, reading and idle position?
Take a look at Microchips Programming Specifications for that chip ( **broken link removed** ). You can see that the programming voltage (high voltage mode) is specified between 12.5V and 13.5V at a rise time < 1us. So it's not a good idea to get the programming voltage from the serial port as it's not guaranteed that this port reaches 12.5V. But I don't think this is your problem. I've seen a lot of PICs entering the programming mode @ about 8V ...
Much more important is the very fast rise time (check it with a scope). Also be sure to tie RB3 (low voltage programming pin), OSC1 and OSC2 to ground during programming mode (read & write !).
Note that there is a difference in the programming algorithm of 16F877 and 16F877A (ref. to the migration specs https://www.microchip.com/download/lit/migrat/39591a.pdf). So if your software uses the wrong algorithm you're only able to read the preprogrammed device ID but any try to program the device will crash.