Introduction: ARDUINO AS a 8051 PROGRAMMER - CHEAPEST PROGRAMMER IN THE WORLD

ITS TO HARD TO FIND 8051 PROGRAMMER WITH USB CONNECTIVITY.
YOU WILL FIND SO MANY CIRCUITS FOR 8051 PROGRAMMING BY MAX232 BUT IT WILL NOT WORK IF ITS NOT ICSP OR THE BOOTLOADER IS NOT INSTALLED ON CHIP.

BUT IF YOU HAVE ARDUINO YOU CAN USE IT AS PROGRAMMER FOR 89S52(ATMEGA89S52).

I HAVE CREATED ARDUINO SHIELD.

THIS IS THE CHEAPEST PROGRAMMER IN THE WORLD

COST WILL BE VERY LOW IF YOU HAVE ARDUINIO ALREADY.

Step 1: WHAT YOU NEED?

ARDUINO UNO (ANY ARDUINO)
AT89S52
IC STAND
PCB
22PF CAPACITOR 2 NO.
CRYSTAL 12Mhz(8Mhz to 16Mhz can work)
MALE PIN HEADER
USB CABLE
10K OHM RESISTOR
10uF capacitor

Step 2: TOTAL PRICE

CURRENCY IN INDIAN Rs.
IC STAND:- 5Rs
CRYSTAL:- 10Rs
CAPACITOR:- 3Rs
PCB:- 10Rs
MALE PIN
HEADER:- 5Rs
AT89S52 40Rs



TOTAL ONLY:-70Rs.

Step 3: Circuit Diagram and Software


upload at89s52program skatch to arduino
connect the circuit as per diagram
open 89s52programmer.exe
select com port of your arduino
click open hex file, and browse it ..
then click on identify chip you will see the message at bottom of the window (chip detected)

then click on upload hex
wait for a moment and message to diplay(finished writting).

now enjoy....

Step 4: Here Is Program for Arduino

#define dummyData 0xAA

#define RDY 75 #define NRDY 76

const int _MISO = 4; const int _MOSI = 5; const int _CLK = 3; const int RST = 2;

/* Variable definition block */

byte data; byte AL,AH; // 16-bit address byte lockByte; // embed lock bits here byte SigH,SigL; // Signature Bytes

void setup() { pinMode(_MISO, INPUT); pinMode(_MOSI, OUTPUT); pinMode(_CLK, OUTPUT); pinMode(RST, OUTPUT); Serial.begin(115200); // depends on the setting of the host PC

}

void loop() { while (!Serial.available()); // wait for character if (Serial.available() > 0) switch (Serial.read()) { case 'p': Serial.write(progEnable()); break; case 'r': readProgmem(); Serial.write(data); break; case 'a': while(!Serial.available()); AL = Serial.read(); break; case 'A': while(!Serial.available()); AH = Serial.read(); break; case 'd': while(!Serial.available()); data = Serial.read(); break; case 'S': AH = 0; AL = 0; SigH = readSign(); Serial.write(SigH); break; case 's': AH = 2; AL = 0; SigL = readSign(); Serial.write(SigL); AH = 1; AL = 0; SigL = readSign(); Serial.write(SigL); break; // read SigL case 'o': digitalWrite(RST,1);break; case 'c': digitalWrite(RST,0);break; case 'e': eraseChip(); Serial.write(RDY); break; case 'j': break; case 'w': writeProgmem(); break; }

}

unsigned char SendSPI(unsigned char data) { uint8_t retval = 0; uint8_t intData = data; int t; for (int ctr = 0; ctr < 7; ctr++) { if (intData & 0x80) digitalWrite(_MOSI,1); else digitalWrite(_MOSI,0);

digitalWrite(_CLK,1); delayMicroseconds(1);

t = digitalRead(_MISO); digitalWrite(_CLK,0);

if (t) retval |= 1; else retval &= 0xFE; retval<<=1; intData<<= 1; delayMicroseconds(1); }

if (intData & 0x80) digitalWrite(_MOSI,1); else digitalWrite(_MOSI,0); digitalWrite(_CLK,1); delayMicroseconds(1);

t = digitalRead(_MISO); digitalWrite(_CLK,0); if (t) retval |= 1; else retval &= 0xFE;

return retval; }

byte progEnable() { SendSPI(0xAC); SendSPI(0x53); SendSPI(dummyData); return SendSPI(dummyData); }

void eraseChip() { SendSPI(0xAC); SendSPI(0x9F); SendSPI(dummyData); SendSPI(dummyData); delay(520); }

void readProgmem() {

SendSPI(0x20); SendSPI(AH); SendSPI(AL); data = SendSPI(dummyData); }

void writeProgmem() { SendSPI(0x40); SendSPI(AH); SendSPI(AL); SendSPI(data); }

void writeLockBits() { SendSPI(0xAC); SendSPI(lockByte); SendSPI(dummyData); SendSPI(dummyData); }

void readLockBits() { SendSPI(0x24); SendSPI(dummyData); SendSPI(dummyData); lockByte = SendSPI(dummyData); }

byte readSign() { SendSPI(0x28); SendSPI(AH); SendSPI(AL); return SendSPI(dummyData); }

Step 5: Refrence

http://tiktakx.wordpress.com/2014/04/19/programmin...
and
www.facebook.com/SparkingElectronics
like this page for more projects like this.
how to generate hex file and make shield like this will be updated soon .. keep visiting..

On a Budget Contest

Participated in the
On a Budget Contest

Homemade Gifts Contest

Participated in the
Homemade Gifts Contest