Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Intel MCS-51
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Important features and applications == [[File:Intel 8051 arch.svg|right|thumb|i8051 microarchitecture]] 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, [[timer]]s) in one [[Integrated circuit packaging|package]]: * 8-[[bit]] [[arithmetic logic unit]] (ALU) and [[accumulator (computing)|accumulator]], 8-bit [[processor register|registers]] (one [[16-bit]] register with special [[instruction set#Data handling and memory operations|move instructions]]), 8-bit [[data bus]] and 2 × 16-bit [[address bus]]es, [[program counter]], [[data pointer]], and related 8/11/16-bit operations; hence it is mainly an 8-bit [[microcontroller]] * [[Boolean data type|Boolean]] processor with 17 instructions, 1-bit accumulator, 32 registers (4 × 8-bit, bit-addressable) and up to 144 special 1 bit-addressable RAM variables (18 × 8-bit)<ref>{{cite web |url=http://www2.elo.utfsm.cl/~lsb/elo311/aplicaciones/intel/booleanproc.pdf |author=John Wharton |title=Using the Intel MCS-51 Boolean Processing Capabilities |id=Application Note AP-70 |date=May 1980 |publisher=Intel Corporation |archive-url=https://web.archive.org/web/20160303234549/http://www2.elo.utfsm.cl/~lsb/elo311/aplicaciones/intel/booleanproc.pdf |archive-date=2016-03-03 |url-status=dead}}</ref> * [[Binary multiplier|Multiply]], divide and [[relational operator|compare]] instructions * Four fast [[bank switching|switchable register banks]] with 8 registers each (memory-mapped) * Fast interrupt with optional register bank switching * [[Interrupt]]s and [[thread (computing)|threads]] with selectable priority<ref>{{Cite web |url=http://www.8052.com/tutint.phtml |title=8051 Tutorial: Interrupts |access-date=2012-12-21 |archive-url=https://web.archive.org/web/20121228002749/http://www.8052.com/tutint.phtml |archive-date=2012-12-28 |url-status=dead }}</ref> * 128 or 256 [[byte]]s of on-chip RAM (IRAM) * Dual 16-bit [[address bus]]; it can access 2 × 2<sup>16</sup> memory locations: 64 [[kilobyte|KB]] (65,536 locations) each of ROM (PMEM) and external RAM (XRAM), using two memory buses in a [[Harvard architecture]]. * On-chip ROM (not included on 803x variants) * Four (three full) 8-[[bit]] bidirectional [[input/output]] ports, bit-addressable * UART ([[serial port]]) * Two 16-bit counters/[[timer]]s * [[Power management|Power-saving]] mode (on some derivatives) 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 [[Processor register|registers]], ports and select [[RAM]] locations. Another feature is the inclusion of four [[bank switching|bank-selectable]] working register sets, which greatly reduce the time required to perform the [[context switch]]es to enter and leave [[interrupt service routine]]s. With one instruction, the 8051 can switch register banks, avoiding the time-consuming task of transferring the critical registers to RAM. === Derivative features === {{As of|2013}}, new derivatives are still being developed by many major chipmakers, and major compiler suppliers such as [[IAR Systems]], [[Keil (company)|Keil]] and [[TASKING]]<ref>{{Cite web |url=https://www.tasking.com/products/8051 |title=8051 Software Development Toolset - Overview |website=TASKING |access-date=2025-02-13}}</ref> continuously release updates. MCS-51-based microcontrollers typically include one or two [[UART]]s, 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. External RAM and ROM share the data and address buses. 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 (denoted "1T") and have clock frequencies of up to 100 MHz, thus being capable of an even greater number of instructions per second. All [[Silicon Labs]], some [[Dallas Semiconductor|Dallas]] (now part of [[Maxim Integrated]]) and a few [[Atmel]] (now part of [[Microchip Technology|Microchip]]) devices have [[Single-cycle processor|single-cycle cores]].<ref name=":0">{{Cite web |title=8-bit Microcontrollers – 8-bit MCUs – EFM8 |website=Silicon Labs |url=https://www.silabs.com/mcu/8-bit |access-date=2021-06-21 |language=en}}</ref><ref>{{Cite web |title=Site Search |website=Maxim Integrated |url=https://www.maximintegrated.com/en/site-search.html#q=DS80&sort=relevancy&f:@common_product_hierarchy=%5BMCU%20-%20Microcontroller%5D |access-date=2021-06-21 |archive-date=2021-06-24 |archive-url=https://web.archive.org/web/20210624210156/https://www.maximintegrated.com/en/site-search.html#q=DS80&sort=relevancy&f:@common_product_hierarchy=%5BMCU%20-%20Microcontroller%5D |url-status=dead }}</ref><ref name=":1">{{Cite web |title=8051 MCUs |website=Microchip Technology |url=https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/8-bit-mcus/8051-mcus |access-date=2021-06-21}}</ref> 8051 variants may include built-in reset timers with [[Brownout (electricity)#Digital systems|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|I<sup>2</sup>C]], [[Serial Peripheral Interface|SPI]], and [[USB]] host interfaces, [[controller–area network|CAN]] or [[Local Interconnect Network|LIN]] bus, [[Zigbee]] or [[Bluetooth]] radio modules, [[pulse-width modulation|PWM]] generators, analog [[comparator]]s, [[analog-to-digital]] and [[digital-to-analog converter]]s, [[real-time clock|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. MCS-51-based microcontrollers have been adapted to extreme environments. Examples for high-temperature variants are the Tekmos TK8H51 family for −40{{nbsp}}°C to +250{{nbsp}}°C<ref>{{cite web | title=TK80H51 250 °C Microcontroller | url=http://www.tekmos.com/products/80c51-microcontrollers/tk80h51-250-c-microcontroller | publisher=Tekmos Inc. | access-date=23 August 2017 | archive-url=https://web.archive.org/web/20170820093849/http://www.tekmos.com/products/80c51-microcontrollers/tk80h51-250-c-microcontroller | archive-date=20 August 2017 | url-status=dead }}</ref> or the [[Honeywell]] HT83C51 for −55{{nbsp}}°C to +225{{nbsp}}°C (with operation for up to 1 year at +300{{nbsp}}°C).<ref> {{cite web | title=HIGH TEMPERATURE 83C51 MICROCONTROLLER | url=http://www.keil.com/dd/docs/datashts/honeywell/ht83c51.pdf | publisher=Honeywell | access-date=23 August 2017 }}</ref> [[Radiation hardening|Radiation-hardenend]] MCS-51 microcontrollers for use in spacecraft are available; e.g., from [[Cobham plc|Cobham]] (formerly [[Aeroflex]]) as the UT69RH051<ref>{{cite web | title=Microcontrollers and Microprocessors | url=http://ams.aeroflex.com/pagesproduct/prods-hirel-uprocessors.cfm | publisher=Cobham Semiconductor Solutions | access-date=23 August 2017 | archive-date=23 August 2017 | archive-url=https://web.archive.org/web/20170823020620/http://ams.aeroflex.com/pagesproduct/prods-hirel-uprocessors.cfm | url-status=dead }}</ref> or from NIIET as the 1830VE32 ({{langx|ru|1830ВЕ32}}).<ref name=niiet/> In some engineering schools, the 8051 microcontroller is used in introductory microcontroller courses.<ref>{{Cite web |url=http://play.tojsiab.com/WFhtU3d2djNXckUz |title=Download link Youtube: ELEC2700 – 8051 Ultrasonic Radar |access-date=2017-08-22 |archive-url=https://web.archive.org/web/20170822215715/http://play.tojsiab.com/WFhtU3d2djNXckUz |archive-date=2017-08-22 |url-status=dead }}</ref><ref>Archived at [https://ghostarchive.org/varchive/youtube/20211205/H9sDn89EvD8 Ghostarchive]{{cbignore}} and the [https://web.archive.org/web/20200608025501/https://www.youtube.com/watch?v=H9sDn89EvD8&gl=US&hl=en Wayback Machine]{{cbignore}}: {{cite web| url = https://www.youtube.com/watch?v=H9sDn89EvD8| title = ELEC2700 Assignment 1 2014: 1D Pong | website=[[YouTube]]| date = 10 April 2014 }}{{cbignore}}</ref><ref>{{Cite web |url=https://www.zookal.com/ |title=ELEC2700 – Computer Engineering 2 (University of Newcastle Textbooks) |website=Zookal |access-date=2017-08-22 |archive-date=2017-07-27 |archive-url=https://web.archive.org/web/20170727171633/https://www.zookal.com/ |url-status=dead }}</ref><ref>{{cite web |url=http://s3.amazonaws.com/f01.justanswer.com/88willy/2012-06-29_065532_assignment_03.pdf |access-date=30 April 2023 |date=29 June 2012 |website=JustAnswer |title=ELEC2700 Assignment 3: Ultrasonic Radar}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)