ATMEL AT89C51 - How to use?

I have this $2 (or less, converted from PHP 100) analog TV box that I opened (because I love opening things and hate putting it back) which happened to have an ATMEL AT89C51 microcontroller. Beside the microcontroller there's this Serial EEPROM (atmel712 24c028). Annddd... can I use it?

Not necessarily use the arduino bootloader. How will I reprogram it? What extra tools will I need (hardware or software)? It also has a tuner that the microcontroller controls and that tuner can transmit and receive. And I guess I have something in mind to do with these. Where will I start?

That MCU is an 8051, not an AVR.

I can tell you from experience, you can use this compiler:

You will need a ROM programmer to upload the result binary to it. It doesn't use an a debugger/emulator like AVRISP or AVR JTAGICE.

Have fun being an 8051 hobbiest.

A board I made out of a similar Atmel 8051 chip using the compiler above, programmed using a ChipMax programmer:

8051? Like AVR and PIC?

What's the difference between all those three? Can you give me a bird's eye view of the microcontroller (or processor) family? Don't worry I will google some. I just want to know which questions to ask though.

I hope I will have fun and not frustration. xD

nikkoderic:
8051? Like AVR and PIC?

What's the difference between all those three? Can you give me a bird's eye view of the microcontroller (or processor) family? Don't worry I will google some. I just want to know which questions to ask though.

I hope I will have fun and not frustration. xD

AVR (8 bit) - Made by Atmel. Uses AVR instruction set.
PIC (8 bit) - Made by Microchip. Uses PIC instruction set.
8051 (only 8 bit) - Made by everyone and their uncle. Uses 8051 instruction set, originally by Intel who gave up selling these 15 years ago when they decided anything that didn't net them $50 wasn't worth their time.

So we are talking about three different and totally incompatible 8-bit architectures. Like 6052, Z-80, and 6800. But it doesn't matter so much if you have a C compiler to do the dirty work for you.

Some more information here:

http://forum.arduino.cc/index.php?topic=163313.0

But they can talk to each other right? Like send these data bytes or/and tell the other (totally different) microprocessor to do this and that?

nikkoderic:
But they can talk to each other right? Like send these data bytes or/and tell the other (totally different) microprocessor to do this and that?

There is always a way to interface digital ICs, even if they are running at different voltage levels. But if they are all running at the same voltage, say +5V/0V, it's pretty simple. Logic pin to logic pin connections are just a wire or a trace - no resistors or anything else needed unless you are trying to communicate in multi-megahertz speeds. (you may need a pullup resistor if the output is open-drain, but this is not likely). The only trouble you might have is making your software synchronize things well - that is to make sure the receiving MCU is ready when the transmitting one is transmitting. This can be done with either interrupts or polling. Interrupts are better, but the software gets a little bit more complex.

That's good to hear. As long as these different microprocessors can do the same job more or less. Thank you!

8051 microcontroller are one of the first microcontroller, so if you are interested in learning microprocessor and microcontroller then you would learn starting from this type of microcontroller.

ATMEL has its own 8051 based microcontroller called AT89C51. For embedded systems this 8 bit MC would normally be sufficient. how to use? See basic tutorial on C programming and interfacing to 89C51 microcontroller to learn the basic of using this microcontroller.

1 Like