ASCII Programmer PIC16F84

Posted on Sep 5, 2012

The idea behind this project is to provide some means of loading a program into a PIC that will then be able to program other PICs in a more conventional way. How do you program a PIC to be a programming device without a programmer, and why would you want to build a programmer if you already have one that can program the PIC to be a programmer. The answer here is to try to build a very cheap circuit that is easy to build and does not need any special software to do the job. That way, after it has done it's job, the parts can end up back into the junk box. The simplest approach I could come up with, was to use a simple circuit, the PC Serial Port and be able to program a PIC just by sending (2) different ASCII codes.

ASCII Programmer PIC16F84
Click here to download the full size of the above Circuit.

This way, you do not need any special software to set up, and the circuit can be built out of junk bits and pieces. This programmer is not capable of reading data from a PIC, but for the purpose it is meant for, that doesn't matter. While programming, new data bits entering the PIC are placed on pin RB7 while the clock pulse appearing on pin RB6 is in a high state. The PIC will accept the new data when the clock line is brought low. Programming comands are 6 bits long, and the data that follows consists of a Low Start Bit plus 14 data bits that the PIC will store in memory and then a Low Stop Bit. The circuit shown below extracts clock pulses and data bits from the data stream produced by sending the (2) ASCII codes from the serial port. The circuit is very simple and is also easy to construct. ASCII data comes on the Tx line from the PC serial port on Pin 3 of a DB9 connector. This data is shown in MAGENTA and can be around 11 volts above and below ground. This is damaging to a circuit that is designed to run on 5 volts, so R1 and Z1 reduce the positive voltage to 5 volts and the negative voltage is blocked by D1. Next the data bits that the PIC will store are extracted from the ASCII value. The circuit path for this is in TEAL. Now the tricky part... The IC used in the circuit is a Schmitt Trigger Quad NAND gate. U1a is configured as a monostable multivibrator. When the incoming signal goes from 0V to 5V,...

Leave Comment

characters left:

New Circuits



Popular Circuits

power supply alarm circuit
Garduino-Automated Gardening System using Arduino
Antenna selector circuit diagram electronic project
Mini Split Acs
Voltage Controlled Duty Cycle Sawtooth Circuit
Circuit of graphic equalizer of 7 bands using it integrated la3607 of Sanyo
Car maintenance thyristor voltage regulator