Intel MCS-51

[3] While Intel no longer manufactures the MCS-51, MCS-151 and MCS-251 family, enhanced binary compatible derivatives made by numerous vendors remain popular today.

Some derivatives integrate a digital signal processor (DSP) or a floating-point unit (coprocessor, FPU).

Beyond these physical devices, several companies also offer MCS-51 derivatives as IP cores for use in field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC) designs.

The 8051 architecture provides many functions (central processing unit (CPU), random-access memory (RAM), read-only memory (ROM), input/output (I/O) ports, serial port, interrupt control, timers) in one package: One feature of the 8051 core is the inclusion of a Boolean processing engine, which allows bit-level Boolean logic operations to be carried out directly and efficiently on select internal registers, ports and select RAM locations.

Another feature is the inclusion of four bank-selectable working register sets, which greatly reduce the time required to perform the context switches to enter and leave interrupt service routines.

[7][8][9] 8051 variants may include built-in reset timers with brown-out detection, on-chip oscillators, self-programmable flash ROM program memory, built-in external RAM, extra internal program storage, bootloader code in ROM, EEPROM non-volatile data storage, I2C, SPI, and USB host interfaces, CAN or LIN bus, Zigbee or Bluetooth radio modules, PWM generators, analog comparators, analog-to-digital and digital-to-analog converters, RTCs, extra counters and timers, in-circuit debugging facilities, more interrupt sources, extra power-saving modes, more or fewer parallel ports etc.

Intel manufactured a mask-programmed version, 8052AH-BASIC, with a BASIC interpreter in ROM, capable of running user programs loaded into RAM.

Most 8051 systems respect the instruction set and require customized features to download new executable programs, e.g. in flash memory.

The special function registers (SFR) include the accumulators A (or ACC, at E0) and B (at F0) and program status word (or PSW, at D0), themselves, as well as the 16-bit data pointer DPTR (at 82, as DPL and 83 as DPH).

The currently active window is determined by a two-bit address contained in the program status word.

Special jump and call instructions (AJMP and ACALL) slightly reduce the size of code that accesses local (within the same 2 KB) program memory.

This emulates the MCS8051 mode that can page the upper byte of a RAM address by setting the general-purpose I/O pins.

Any bit of these bytes may be directly accessed by a variety of logical operations and conditional branches.

Several C compilers are available for the 8051, most of which allow the programmer to specify where each variable should be stored in its six types of memory, and provide access to 8051-specific hardware features such as the multiple register banks and bit manipulation instructions.

Because IRAM, XRAM, and PMEM (read only) all have an address 0, C compilers for the 8051 architecture provide compiler-specific pragmas or other extensions to indicate where a particular piece of data should be stored (i.e. constants in PMEM or variables needing fast access in IRAM).

The 8051's predecessor, the 8048, was used in the keyboard of the first IBM PC, where it converted keypresses into the serial data stream which is sent to the main unit of the computer.

An 8051 chip could be sold as a ROM-less 8031, as the 8051's internal ROM is disabled by the normal state of the EA pin in an 8031-based design.

A vendor might sell an 8051 as an 8031 for any number of reasons, such as faulty code in the 8051's ROM, or simply an oversupply of 8051s and undersupply of 8031s.

This part was available in a ceramic package with a clear quartz window over the top of the die so UV light could be used to erase the EPROM.

The 80C5x7 has fail-safe mechanisms, analog signal processing facilities, enhanced timer capabilities, and a 32-bit arithmetic peripheral.

[citation needed] Other ICs or IPs compatible with the MCS-51 have been developed by Analog Devices,[32] Integral Minsk,[33] Kristall Kyiv,[34] and NIIET Voronezh.

[35] Available in hardware description language source code (such as VHDL or Verilog) or FPGA netlist forms, these cores are typically integrated within embedded systems, in products ranging from USB flash drives to washing machines to complex wireless communication systems on a chip.

Designers use 8051 silicon IP cores, because of the smaller size, and lower power, compared to 32-bit processors like ARM Cortex-M series, MIPS and BA22.

Design improvements have increased 8051 performance while retaining compatibility with the original MCS 51 instruction set.

Several variants with an additional 16-bit digital signal processor (DSP) (for example for MP3 or Vorbis coding/decoding) with up to 675 million instructions per second (MIPS)[46] and integrated USB 2.0 interface[47] or as intellectual property[48] exist.

In 1996 Intel announced the MCS-151 family, an up to 6 times faster variant,[3] that's fully binary and instruction set compatible with 8051.

The MCS-151 family was also discontinued by Intel, but is widely available in binary compatible and partly enhanced variants.

The 80251 8/16/32-bit microcontroller with 16 MB (24-bit) address-space and 6 times faster instruction cycle was introduced by Intel in 1996.

[50] It features extended instructions[51] – see also the programmer's guide[52] – and later variants with higher performance,[53] also available as intellectual property (IP).

The MCS-251 family was also discontinued by Intel, but is widely available in binary compatible and partly enhanced variants from many manufacturers.

i8051 microarchitecture
Intel 8031 microcontrollers
Intel D87C51 microcontroller
Intel P8044AH microcontroller
Silicon Storage Technology 89V54RD2