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

PIC16F877A Astro Clock
ASCII Programmer PIC16F84
Butler aperiodic oscillator
low voltage monitor schematic
Adjustable voltage with adjustable current limit circuit
High And Low Voltage Cut Off With Time Delay
Analog to Digital Converters
FM Transmitter
Quick-Charge Auto-Fire Flash Circuit
4 hours AC power timer circuit 555 BH4024
Peripheral circuits MIC5158 a simple 5V input 3.3V 10A output linear regulator circuit