In 8051 RAM size is 128 bytes which is divided in to 3 areas like register bank ,Bit addressable are and scratch pad area. what is the location for SFR ? many literature stating that 8051 has 256 byte memory in it 128 byte for general purpose and rest 128 for special purpose which one is true ? i am confused about (1)what is the RAM size of 8051 weather 128 bytes or 256 bytes? (2) if the RAM size is 128 bytes what are location for the SFR ?
While there exists 8051 chips that might have 64 or 128 bytes of internal RAM, the majority of 8051 models have 256 bytes of RAM.
It looks like below:
SSSSSSSS = 128 byte SFR on top of the upper address range of RAM RRRRRRRRRRRRRRRR = 256 byte RAM
The address range 0x80..0xff has overlapping RAM + SFR. So indirect accesses will reach the RAM "under" the SFR region. Direct accesses will reach SFR addresses. And for the address range 0x00..0x7f you can use byt direct and indirect accesses.
To make life even more interesting, some 8051 chips also has multiple pages of SFR because they have too many timers, UART, ... to control with just 128 bytes of SFR region, in which case the code must first "bank-switch" the correct SFR page before accessing some of the SFR functionality.
bible time
www.danlhenry.com/.../80C51_FAM_ARCH_1.pdf www.danlhenry.com/.../80C51_FAM_HARDWARE_1.pdf www.danlhenry.com/.../80C51_FAM_PROG_GUIDE_1.pdf
explains it all
"explains it all"
Specifically, look at Figures 6-8 in the 80C51_FAM_ARCH_1.pdf document.
Note that none of this has anything specifically to do with Keil - it is the Hardware Architecture (initially defined by Intel).
The original Intel 8051 had only 128 bytes internal RAM.
The original Intel 8052 had 256 bytes internal RAM - with the extra 128 bytes being only indirectly addressable.
http://www.8052.com/tut8052
Nowadays, the 8051/2 distinction is largely lost in the mists of time and the terms are used indiscriminately & interchangeably.
8051/2
That would be the Intel 4025.5 then
Is that before or after to 8048?
It does surprise me that you don't mention the 8031 or 8032 in your exhibition of knowledge.
It does surprise me that you don't mention the 8031 or 8032 in your exhibition of knowledge. 1) 803x are just w/o code memory 2) have not heard of 803x for the last 10+ years 3) the "original numberint system" has basically been abandoned e.g. I can count dozens of 8051 devices with 256 bytes of IRAM (NXP, SILabs, Arghmel, ....)