Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Intel MCS-51
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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. Once a UART, and a timer if necessary, has been configured, the programmer needs only 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. === 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>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Intel MCS-51
(section)
Add topic