Home Page . . . . . . . Email: . . . . . . . . neelandan-at-gmãil·çöm
Here's a design for a programmer for the Atmel AT89C2051. This is an 8051 variant with 2K of flash ROM and 20 pins. The programmer connects to the parallel port of a PC and requires an external dc power supply (Wall Wart) of about 15 volts.

The processor requires all eight bits to be presented to it in parallel. An eight bit tristate edge triggered latch, the 74HC(T)574, is wired as a shift register. One input connects to a parallel port data line. The other outputs and inputs are connected in a daisy chain, and the last output connected back to a parallel port input line. To program a location in the processor, the instruction word is shifted into this register and the prog input of the processor pulsed low.
To read back the value just programmed, the latch outputs are put into high impedance and the read command issued to the processor. A clock pulse then loads this into the shift register. The processor outputs are disabled, the latch outputs enabled again and this word shifted out into the PC. Thus one integrated circuit performs the functions of a Serial in Parallel out and Parallel in Serial out shift register.
The other components enable switching the RST input of the processor between ground, +5 volts and +12 volts as required for the Program/Verify cycle.
This programmer requires the proper driver for it to function. One such has been written to be run under DOS. It accepts a file in motorola Hex representation and can erase, program and verify an AT89C2051.
Home Page . . . . . . . Email: . . . . . . . . neelandan-at-gmãil·çöm