Help! A classmate and I are making a PIC16f877 programmer as a project in one of our courses and we've run into a problem. The PIC will not let us read data (properly) or advance the program counter while in program mode. Here are the steps we go through to program a location: 0. Issue a Bulk Erase Programing Memory 1. Reset the PIC by keeping RB6 and RB7 low and then bringing MCLR from 0v to 12.5v 2. Issue a Load Data for Program Memory command (6 clks) followed by clocking in the data (16 clks) 3. Issue a Begin Erase Programming Cycle command (6 clks) 4. Issue a Read Data From Program Memory (6 clks) to see if the data went in properly 5. Change our Data Out to High Impedance 6. Issue 16 clks to read the data from the PIC What comes out from the PIC (during these 16 clocks) is not what we programmed. It is all 1's. Now, if we perform a reset (ie step 1) and issue another Read Data From Program Memory (ie steps 4 through 6) we receive the correct data that we entered in! Further more, if we try to program the first two memory locations ie: 1. Reset the chip 2. Issue a Load Data For Program Memory 3. Issue a Begin Erase Programing Cycle 3. Clock in some data 4. Issue an Increment Address 5. Issue a Load Data For Program Memory 6. Issue a Begin Erase Programing Cycle Then reset the chip. We can read back the first location ok however the second location does not give us our data. Again it is all 1's. Any help would be greatly appreciated. Please try to respond to jakeszot@home.com as I don't know if I will be able to monitor this list for responses. Thanks! -Jake