why is Intel MCS-51 called "8051" when there exists no component as such?

Discussion in 'General Electronics Chat' started by PG1995, Apr 4, 2012.

  1. PG1995

    Thread Starter Distinguished Member

    Apr 15, 2011

    1: I have read Intel referred to their 8051 MCU by MCS-51. Then, who really invented the term/name "8051"? For instance, medicines have generic name, usually assigned by IUPAC. e.g. Paracetamol is a generic name of a medicine made from the words para-acetylaminophenol (it is chemical name of Paracetamol) and Apirin, which is a adopted name, has generic chemical name acetylsalicylic acid.

    2: Why is 8051 MCU considered an 8-bit microcontroller? Does it have anything to with its registers but there are also registers in it which are can handle data of more than 8-bit?
  2. jimkeith

    Well-Known Member

    Oct 26, 2011
    1. I think that MCS-51 is simply referring to a series

    2. The ports, registers and accumulator are 8bits wide--via careful data management, 16bit words (or larger) can be handled as two or more 8bit bytes
  3. MrChips


    Oct 2, 2009
    Intel made the original 8051. It has been rebranded as the MCS-51 family.

    8-bits usually refers to the size of the registers in the arithmetic logic unit (ALU).
    There are many 8-bit processors that can perform 16-bit operations, for example, the Freescale HC11 family.

    All 8-bit processors can handle data of more than 8 bits.
  4. Wendy


    Mar 24, 2008
    Most 8 bit machines (6502, 8080, etc) have a 16 bit buss address. Hence the Lo, Hi addressing.
  5. debjit625

    Well-Known Member

    Apr 17, 2010
    MCS-51 is the name of the family of microcontrollers manufactured by Intel ,it have an architecture which could be used in many Intel's mcu product,its like a framework upon which many different mcu could be built.

    In one instruction cycle it could handle only 8-bits i.e.. 1 byte of data,if it needs to handle more bytes it will need more instruction cycles.For example "ADD A,#immediate" instruction adds an immediate 8 bits value to 8 bits accumulator register and store the result in accumulator register,8 bits of data has been handled ,so 1 instruction cycle will be used.

    The reason is the data bus which is 8 bits long ,yes many or most registers are 8-bits because to make the system compatible and faster,their are 16 bits registers which can also be used as two 8 bits register high and low,actually when you use 16 bits register ,8051 only handle 8 bits at a time for the register.

    Good Luck
    Last edited: Apr 5, 2012
  6. RiJoRI

    Well-Known Member

    Aug 15, 2007
    Another thing is that 8051 -- when not used generically* -- referred to a ROM part; 8751 to an EPROM part, and 8951 to a flash part.


    *Many product names are used generically -- "Coke," "Kleenex," "Frigidaire." We've all seen PIC used here as a generic term, as well.
  7. Papabravo


    Feb 24, 2006
    At the dawn of time for this part (ca. 1978) there were three different ways you could get the part.
    1. Internal 4K Mask Programmable ROM(8051)
    2. ROMless(8351)
    3. 4K UV eraseable PROM(8751)
    Nowadays those original numbers and that scheme are obsolete.
    Last edited: Apr 5, 2012
  8. John Wharton

    New Member

    Aug 30, 2014
  9. John Wharton

    New Member

    Aug 30, 2014
    1.) There are two issues here. First, Intel has always liked to claim it sold "system solutions", not isolated products. Microprocessors and their support chips were always promoted as being members of a family of compatible devices.

    Intel's first microprocessor, the 4004, was one device in a family that also included a ROM device (the 4001), a RAM device (the 4002), and an I/O expansion device (the 4003). Am not sure why these numbers were selected, but I assume the 4001 ROM was the simplest, quickest part to be designed, the 4002 was the second, etc. The 4004, being the most complicated of these parts, was the last of the four to be completed, hence the last to be assigned a part number.

    All four devices, plus a handful of related parts, were collectively designated a 4-bit "Micro-Computer System" family, abbreviated MCS-4. Intel's later microprocessors, the 8008, 4040, 8080, and 8085 families were given the names MCS-8, MCS-40, MCS-80, etc.

    The 8051, 8751, and 8031 (see my earlier reply) were all announced at the same time, and were instruction-set and I/O feature compatible, so the term MCS-51 covered the whole family. Ensuing devices included the 8052, 8752, and 8032, which were likewise compatible with the original, and were absorbed into the original family nomenclature.

    The second reason for a distinction between the the 8051 and the term "MCS-51" is that simple numeric part numbers cannot be copyrighted, whereas compound letter/number hybrids can. It gave Intel better intellectual property protection to use the latter term whenever possible. Competing vendors might be able to build products with the same capabilities and the same product numbers, but they would not be able to document or promote them as members of the "MCS-51 Family" without infringing Intel's copyrights.

    2.) 99% of all 8051 resources and instructions can only process eight bits or fewer at a time. The 16-bit capabilities are all exceptions:

    a) The program counter is 16 bits wide, but not directly program accessible. For subroutine calls and returns it is artificially divided into two eight-bit chunks to be saved to and restored from the stack.

    b) The 16-bit DPTR is the opposite: The DPH and DPL registers are each eight bits, and it's only during the execution of a few DPTR-related instructions that they get artificially combined to perform a 16-bit operation.

    c) The MULTiply instructions can produce a 16-bit product, returned in the eight-bit Accumulator ("A") and "B" registers. DIVide processes both A and B, and returns two eight-bit values. But these are not handled by the ALU per se; in essence each instruction grabs data from two SFR registers, performs a "special function" on them, and rewrites them with the result.

    (By the same token, later 80x86 uPs could process 32-bit, 64-bit, or 80-bit floating point values, but they did so using separate, dedicated function units, not the nominally 16-bit ALU.)

    Since 95% of the 8051 opcodes process no more than eight bits at a time, it is an eight-bit architecture.

    Hope this helps.

    --John Wharton
  10. Externet

    AAC Fanatic!

    Nov 29, 2005