- Intel 8051
The Intel 8051 is a
Harvard architecture, single chip microcontroller(µC) which was developed by Intelin 1980 for use in embedded systems. Intel's original versions were popular in the 1980s and early 1990s, but has today largely been superseded by a vast range of faster and/or functionally enhanced 8051-compatible devices manufactured by more than 20 independent manufacturers including Atmel, Infineon Technologies(formerly Siemens AG), Maxim Integrated Products(via its Dallas Semiconductorsubsidiary), NXP (formerly PhilipsSemiconductor), Nuvoton (formerly Winbond), ST Microelectronics, Silicon Laboratories(formerly Cygnal), Texas Instrumentsand Cypress Semiconductor. Intel's official designation for the 8051 family of µCs is MCS 51.
Intel's original 8051 family was developed using NMOS technology, but later versions, identified by a letter "C" in their name, e.g. 80C51, used
CMOStechnology and were less power-hungry than their NMOS predecessors - this made them eminently more suitable for battery-powered devices.
Important features and applications
* It provides many functions (CPU, RAM, ROM, I/O,
interruptlogic, timer, etc.) in a single package
data bus- It can access 8 bits of data in one operation (hence it is an 8-bit microcontroller)
address bus- It can access 216 memory locations - 64 kB each of RAM and ROM
* On-chip RAM - 128
* On-chip ROM - 4 kB ("Program Memory")
* UART (
* Two 16-bit Counter/
* Power saving mode
A particularly useful feature of the 8051 core is the inclusion of a boolean processing engine which allows
bit-level boolean logicoperations to be carried out directly and efficiently on internal registers and RAM. This feature helped to cement the 8051's popularity in industrial control applications. Another valued feature is that it has four separate register sets, which can be used to greatly reduce interrupt latencycompared to the more common method of storing interrupt context on a stack.
UARTs make it simple to use the chip as a serial communications interface. External pins can be configured to connect to internal shift registers in a variety of ways, and the internal timers can also be used, allowing serial communications in a number of modes, both synchronous and asynchronous. Some modes allow communications with no external components. A mode compatible with an RS-485 multi-point communications environment is achievable, but the 8051's real strength is fitting in with existing ad-hoc protocols, e.g when controlling serial-controlled devices.
Once a UART - and a timer, if necessary, have been configured, the programmer needs only to write a simple interrupt routine to refill the 'send' shift register whenever the last bit is shifted out by the UART and/or empty the full 'receive' shift register (copy the data somewhere else). The main program then performs serial reads and writes simply by reading and writing 8-bit data to stacks.
8051 based microcontrollers typically include one or two
UARTs, two or three timers, 128 or 256 bytes of internal data RAM(16 bytes of which are bit-addressable), up to 128 bytes of I/O, 512 bytes to 64 kB of internal program memory, and sometimes a quantity of extended data RAM (ERAM) located in the external data space. The original 8051 core ran at 12 clock cycles per machine cycle, with most instructions executing in one or two machine cycles. With a 12 MHz clock frequency, the 8051 could thus execute 1 million one-cycle instructions per second or 500,000 two-cycle instructions per second. Enhanced 8051 cores are now commonly used which run at six, four, two, or even one clock per machine cycle, and have clock frequencies of up to 100 MHz, and are thus capable of an even greater number of instructions per second. All SILabs, some Dallas and a few Atmel devices have single cycle cores.
Even higher speed single cycle 8051 cores, in the range 130 MHz to 150 MHz, are now available in internet downloadable form for use in
programmable logic devicessuch as FPGAs, and at many hundreds of MHz in ASICs, for example the netlistfrom [http://www.e8051.com www.e8051.com] .
Common features included in modern 8051 based microcontrollers include built-in reset timers with brown-out detection, on-chip oscillators, self-programmable
Flash ROMprogram memory, bootloader code in ROM, EEPROM non-volatile data storage, I²C, SPI, and USBhost interfaces, PWM generators, analog comparators, A/D and D/A converters, RTCs, extra counters and timers, in-circuit debugging facilities, more interrupt sources, and extra power saving modes.
Several C compilers are available for the 8051, most of which feature extensions that 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. Other high level languages such as Forth, BASIC, Pascal/
Object Pascal, PL/Mand Modula 2are available for the 8051, but they are less widely used than C and assembly.
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. The 8048 and derivatives are still used today for basic model keyboards.
The 8031 was a cut down version of the original Intel 8051 that did not contain any internal program memory (ROM). To use this chip external ROM is to be added that will contain the program that the 8031 will fetch and execute.
The 8052 was an enhanced version of the original Intel 8051 that featured 256 bytes of internal RAM instead of 128 bytes, 8 kB of ROM instead of 4 kB, and a third 16-bit timer. The 8032 had these same features except for the internal ROM program memory. The 8052 and 8032 are largely considered to be obsolete because these features and more are included in nearly all modern 8051 based microcontrollers.
*cite book | last=Payne | first=William | coauthors= | editor= | others=
title=Embedded Controller Forth for the 8051 Family |origdate = | origyear=
origmonth= | url= | format=hardcover | accessdate= | accessyear= | accessmonth= | edition=
date=19 | year=1990 | month=dec| publisher=Elsevier | location= | language=English
id=ISBN 978-0125475709 | pages=528 | chapter= | chapterurl=
* [http://www.howtofriends.com/8051/ 8051 Complete Tutorial]
* [http://lcdinterfacing.googlepages.com/lcdprogrammingwith8051 Interface LCD with 8051 ]
* [http://www.intel.com/design/mcs51/ Intel MCS 51 series microcontrollers]
* [http://www.atmel.com/products/8051/ Atmel]
* [http://www.standardics.nxp.com/products/80c51/ NXP (Philips)]
* [http://para.maxim-ic.com/cache/en/results/4592.html Maxim Integrated Products]
* [http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ConsumerElectronicsIC/ Nuvoton]
* [http://www.roman-jones.com/PB8051Microcontroller.htm Roman-Jones FPGA Based 8051 Core]
* [https://www.silabs.com/products/mcu/pages/default.aspx Silicon Labs]
* [http://www.cypress.com/portal/server.pt?space=CommunityPage&control=SetCommunity&CommunityID=209&PageID=215&gid=9&fid=14&category=All&showall=false Cypress USB]
* [http://focus.ti.com/mcu/docs/mcugeneralcontent.tsp?sectionId=98&tabId=1515 Texas Instruments]
* [http://mcu-memory.com/ STC Semiconductor (Chinese supplier of 8051-based products)]
* [http://www.dolphin.fr/flip/logic/logic_overview.html Dolphin Integration (8051 IP provider)]
* [http://grantronics.com.au/docs/8051inst.pdf Single page instruction set summary]
* [http://www.dnatechindia.com/index.php/Tutorials/ 8051 Interfacing Tutorials]
* [http://www.mikroe.com/en/books/8051book/ Free Online Book: Architecture and Programming of 8051 Microcontrollers]
* [http://sdcc.sourceforge.net/ Small Device C Compiler (SDCC)] is a well-known excellent open-source C compiler for 8051 (& other MCUs)
* [http://turbo51.com/ Turbo51] is a free Pascal compiler for the 8051 family of microcontrollers (uses
Turbo Pascal7 syntax)
* [http://plit.de/asem-51/ ASEM-51] is a free macro assembler for the 8051 family of microcontrollers (uses
Wikimedia Foundation. 2010.