Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

difference in atmel 89c51 and 89c52

Not open for further replies.


Junior Member level 1
Jan 13, 2006
Reaction score
Trophy points
Activity points
difference between 89c51 and 89c52


can anybody explain the difference in atmel 8o51 series -89c51 and 89c52 which may affect coding if the microntroller is changed and in what respect will that affect.


difference between 89s52 & 89c51

• 4K Bytes of In-System Reprogrammable Flash Memory
• 128 x 8-bit Internal RAM
• Two 16-bit Timer/Counters
• Six Interrupt Sources

• 8K Bytes of In-System Reprogrammable Flash Memory
• 256 x 8-bit Internal RAM
• Three 16-bit Timer/Counters
• Eight Interrupt Sources

First of all both microcontroller has been discontinued by Atmel.

If your design is based on 89C51, you don't have to worry if it's changed later with 89C52. No changes are to be performed, neither software nor hardware (some minor settings in the hardware programmer device).
But if your software relies on 89C52 then simple looking at the features provided by both microcontroller will tell you in what aspect will changes affect your design if a replacement with 89C51 has to be done.

difference between 89c52 and 89c51

Also, check this out


Might be useful..

difference between atmel 89s52 and atmel 89c51

Philips still manufactures the 89C51 and 89C52. One major difference though. Atmel used an EEPROM process, so the "Flash" is byte addressable. Philips uses a Flash process, no byte addressability. Otherwise a switch if needed should be pretty smooth.


compare 89c51 and 89s52

silabs also makes mixed signal 8051

difference between 89c52 andmic 89c51

The 89C51 and 89C52 are not In System Reprogrammable as stated by silvio. 89S51 and 89S52 are In System Reprogrammable.

89c51 vs 89c52

Atmel 89C51 data sheet : 4K Bytes of In-System Reprogrammable Flash Memory
Atmel 89S51 data sheet : 4K Bytes of In-System Programmable (ISP) Flash Memory

I've emphasized in red the word Reprogramable. Atmel didn't claimed that 89C51 are Programable in the system (ISP), but Reprogramable

From their point of view, the low-voltage programming mode (+5v) provides a convenient way to program the AT89C51 inside the user’s system, while the high-voltage programming mode (+12v) is compatible with conventional thirdparty Flash or EPROM programmers.

At89S51 is ISP (In System Programmable) through SPI interace. There are not ISR (In System Reprogramable).
Like AT89C51 is ISR and not ISP.

As you can notice, it's only english. And it's not stated by me. It's Atmel's statement.

How about IAP (In Application Programming) ? I'm confident you know what a bootloader means.

different between 89c51 and 89c52

this is a bit offbeat , but has any1 tried to programme an atmel 89c2051 using a C code that uses interrupts for calling functions.
example: void check() interrupt 1 using 2

I am using keil to convert it into intel-hex format but the compilation gives an error saying IMPROPER FIXUP ...i figured out that it is trying towrite to memory locations beyond 2K( the on chip flash is 2K !!) . however on removing the ISR , it works fine someone

feateres of 89s52 microcontroller

Hi Smercho

The best ideea is to start a new thread. In this one you won't be seen by the peoples who really can help you. This thread regarding difference between 89C51 and 89C52 it's not opened by smart peoples just because can't find any news or it's useless answering to a question for which you can find the answer just reading the datasheets.
And use a suggestive title for the thread.

Please type the full complains of compiler. Not only IMPROPER FIXUP... (segment and the offset of the offending instruction)
As you already noticed it's true that this kind of errors are due to the linker which cannot resolve the address of a branch instruction (like a LCALL - prohibited in 89C2051 - inside your ISR).

1. When you say "removing the iSR" are you completelly remove the code from your program ?. Or just keep the function code and declare it as not using interrupts.
There are another few questions :

2. What kind of memory model do you use ? If you use SMALL then CALL and JMP instructions are coded as ACALL and AJMP. Thus, if inside your ISR is called a function located beyond 2K limit of ACALL then you can get Fixup errors.
3. Did you included the STARTUP.A51 file into your project ?
4. What type of Code Optimization Level do you use ?

Please try to answer to this questions and come back in a new thread.
Is not necessary to mention you have been asked here.
Just try to give as many details as possible in order to be helped quickly and straight to the point.

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to