<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Intel_MCS-51</id>
	<title>Intel MCS-51 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Intel_MCS-51"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Intel_MCS-51&amp;action=history"/>
	<updated>2026-05-30T12:49:45Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Intel_MCS-51&amp;diff=307882&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Intel_MCS-51&amp;diff=307882&amp;oldid=prev"/>
		<updated>2025-12-11T19:43:26Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Mikroprozessor&lt;br /&gt;
|Name = Intel 8051&lt;br /&gt;
|Bild = KL_Intel_P8051.jpg&lt;br /&gt;
|Untertitel = Intel P8051&lt;br /&gt;
|Produktionsbeginn = 1980&lt;br /&gt;
|Produktionsende = 1990er&lt;br /&gt;
|minimal = 12&lt;br /&gt;
|maximal = &lt;br /&gt;
|minimal-Einheit = MHz&lt;br /&gt;
|maximal-Einheit = &lt;br /&gt;
|FSB-minimal =&lt;br /&gt;
|FSB-maximal =&lt;br /&gt;
|größe-von =&lt;br /&gt;
|größe-bis =&lt;br /&gt;
|Produzent1 = [[Intel Corporation|Intel]]&lt;br /&gt;
|Produzent2 = [[NXP Semiconductors|Philips Semiconductors]]&lt;br /&gt;
|Produzent3 = [[NEC Corporation|NEC]]&lt;br /&gt;
|Produzent4 = Siemens AG&lt;br /&gt;
|Kern1 =&lt;br /&gt;
|Kern2 =&lt;br /&gt;
|Sockel1 = 40-pin DIP&lt;br /&gt;
|Sockel2 =&lt;br /&gt;
|Befehlssatz = 8 Bit&lt;br /&gt;
|Mikroarchitektur =&lt;br /&gt;
|next = Intel 8096&lt;br /&gt;
|prev = Intel 8048&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MCS-51&amp;#039;&amp;#039;&amp;#039; ist die Bezeichnung einer 1980 von [[Intel]] vorgestellten Familie von [[8-Bit-Architektur|8-Bit]]-[[Mikrocontroller]]n.&amp;lt;ref&amp;gt;John Wharton: &amp;#039;&amp;#039;An Introduction to the Intel&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; MCS-51™ Single-Chip Microcomputer Family&amp;#039;&amp;#039;, Application Note AP-69, May 1980, Publication number 121518, Intel Corporation; {{Webarchiv|url=http://www.eetasia.com/ARTICLES/2000FEB/2000FEB17_MEM_AN.PDF?SOURCES=DOWNLOAD |wayback=20130224054312 |text=PDF |archiv-bot=2019-04-19 01:18:12 InternetArchiveBot }}.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;John Wharton: &amp;#039;&amp;#039;Using the Intel&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; MCS-51™ Boolean Processing Capabilities&amp;#039;&amp;#039;, Application Note AP-70, May 1980, Publication number 203830-001, Intel Corporation; [http://www.yildiz.edu.tr/~uzun/PRGDEN_PDF/20383001_mcs51_plc.pdf PDF].&amp;lt;/ref&amp;gt; Bei einem Mikrocontroller sind im Optimalfall alle Teile eines Computersystems ([[Hauptprozessor|Prozessor]], Programmspeicher, Datenspeicher und Ein-/Ausgabeeinheiten) in einem einzigen Baustein zusammengefasst. Die MCS-51-Familie trat die Nachfolge der [[MCS-48]]-Familie an. Zu Beginn hatte sie nur drei Mitglieder mit den Bezeichnungen 8051, 8031 und 8751. Beim 8031 befindet sich das [[ROM]] in einem externen Baustein, wohingegen es sich beim 8051 und 8751 im Baustein selbst befindet – entweder in einem [[Maskenprogrammierung|maskenprogrammierten]] ROM (8051) oder in einem [[EPROM]] (8751).&amp;lt;ref name=&amp;quot;family&amp;quot;&amp;gt;{{Webarchiv | url=http://cpucharts.wallsoferyx.net/immatrix0.html | wayback=20110314071431 | text=Intel&amp;#039;s CPU family trees}}&amp;lt;/ref&amp;gt; Im Jahr 1983 wurden die Varianten 8052, 8032 und 8752 mit jeweils doppeltem ROM wie RAM und einem zusätzlichen Timer vorgestellt.&amp;lt;ref name=&amp;quot;family&amp;quot;/&amp;gt; Die Familie wurde zunächst in [[NMOS-Logik|NMOS-Technologie]], nach einigen Jahren dann auch in der heute üblichen [[Complementary Metal Oxide Semiconductor|CMOS-Technologie]] hergestellt.&lt;br /&gt;
&lt;br /&gt;
Intel hat den MCS-51-CPU-Kern an viele [[Halbleiterhersteller]] lizenziert und damit die Basis für einen herstellerübergreifenden Industriestandard geschaffen. Seit langem werden MCS-51-kompatible Mikrocontroller nicht nur von Intel, sondern auch von [[Analog Devices]], [[Atmel]] (Übernommen durch [[Microchip Technology]]), [[Infineon]], [[Dallas Semiconductor]] (akquiriert durch [[Maxim Integrated]]), [[Oki Electric Industry|Oki]], [[NXP Semiconductors]] (vormals [[Philips]]), [[Silicon Laboratories]], [[Texas Instruments]] u.&amp;amp;nbsp;v.&amp;amp;nbsp;a. hergestellt.&lt;br /&gt;
&lt;br /&gt;
Von Intel wurde der [[SDK-51]] als Entwicklungssystem angeboten.&lt;br /&gt;
&lt;br /&gt;
== Struktur ==&lt;br /&gt;
[[Datei:Intel 8051 arch.svg|mini|hochkant=2.0|links|Blockdiagramm des i8051]]&lt;br /&gt;
[[Datei:Pinagem8031.jpg|mini|Pinbelegung]]&lt;br /&gt;
[[Datei:INTEL8031AH.png|mini|Intel P8031 Mikrocontroller]]&lt;br /&gt;
[[Datei:EPROM-Microcontroller Intel 87C51 (chip).jpg|mini|87C51 Mikrocontroller mit EPROM]]&lt;br /&gt;
[[Datei:SAB-C515-LN.jpg|mini|Der SAB-C515-LN von Infineon stammt aus der MCS-51-Familie.]]&lt;br /&gt;
[[Datei:Apple TV, 1st generation - mainboard - Silicon Storage Technology 89V54RD2-3214.jpg|mini|89V54RD2 von [[Silicon Storage Technology]] mit &amp;#039;&amp;#039;SuperFlash Memory&amp;#039;&amp;#039;]]&lt;br /&gt;
&lt;br /&gt;
Die MCS-51-Familie hat sehr viele Mitglieder hervorgebracht, u.&amp;amp;nbsp;a. den [[Siemens 80C517]]. Sie besitzen folgende Gemeinsamkeiten:&lt;br /&gt;
&lt;br /&gt;
* 8-Bit-[[Prozessorkern]] mit einheitlichem [[Befehlssatz]]&lt;br /&gt;
* Mindestens 128 Bytes internes [[Random Access Memory|RAM]]&lt;br /&gt;
* Externes RAM und [[Festwertspeicher|ROM]]&lt;br /&gt;
* Ein einheitliches Adressierungsmodell für so genannte [[Register (Computer)#Spezialregister|Special Function Register]] (SFR)&lt;br /&gt;
* Full-Duplex-[[UART]]&lt;br /&gt;
* 5 [[Interrupt]]-Quellen&lt;br /&gt;
* 2 [[Interrupt]]-Prioritäten&lt;br /&gt;
* Diverse Timer&lt;br /&gt;
&lt;br /&gt;
Aufgrund der unterschiedlichen Befehlslängen von einem bis zu drei Byte sowie den unterschiedlichen Ausführungszeiten für einen Befehl handelt es sich eindeutig um eine [[Complex Instruction Set Computing|CISC]]-Architektur.&lt;br /&gt;
&lt;br /&gt;
Ein [[Befehlszyklus]] entspricht in der ursprünglich von Intel entwickelten Struktur einem bis drei Maschinenzyklen (Multiplikation und Division benötigen 4). Ein [[Maschinenzyklus]] entspricht 12 Taktzyklen. Heute übliche Varianten des MCS-51 kommen hingegen meist fix mit nur 2 Taktzyklen pro Maschinenzyklus aus. Damit ist bei gleicher Taktfrequenz eine deutlich schnellere Befehlsabarbeitung möglich.&lt;br /&gt;
&lt;br /&gt;
Eine Besonderheit dieses Prozessors ist der Bitprozessor, welcher im bitadressierbaren Bereich eine schnelle und einfache Bitmanipulation erlaubt.&lt;br /&gt;
&lt;br /&gt;
Aufgrund der großen Verbreitung dieser Prozessorfamilie und damit verbunden großer Softwarebibliotheken gibt es auch eine Vielzahl von synthetisierbaren MCS-51-Implementierungen. Diese sind als so genannte [[IP-Core]]s in einer [[Hardwarebeschreibungssprache]] wie beispielsweise [[Very High Speed Integrated Circuit Hardware Description Language|VHDL]] [[Freie Hardware|frei]] und im [[Quelltext]] verfügbar.&amp;lt;ref&amp;gt;[http://www.oreganosystems.at/?page_id=96 Vollständige Implementierung eines MCS-51-Mikrocontrollers in VHDL] unter [[GNU Lesser General Public License]].&amp;lt;/ref&amp;gt; Sie eignen sich für den Einsatz in [[Field Programmable Gate Array|FPGAs]] und [[Anwendungsspezifische integrierte Schaltung|anwendungsspezifischen integrierten Schaltungen]] (ASICs). Typische Anwendungsbeispiele sind [[USB]]-Controller, wie sie in Druckern oder Schnittstellenadaptern eingesetzt werden. In diese sind zur Steuerung der diversen Protokolle MCS-51-Mikrocontroller integriert.&lt;br /&gt;
{{Absatz|links}}&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
Die MCS-51-Baureihe umfasst folgende bekannte Mikrocontroller (alle Speicherangaben sind in Byte):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;hintergrundfarbe6&amp;quot; colspan=&amp;quot;9&amp;quot; align=&amp;quot;center&amp;quot; | [[NMOS-Logik|NMOS]]- und [[CMOS|CHMOS]]-Varianten&lt;br /&gt;
|-----&lt;br /&gt;
! Typ   || ROM&amp;lt;br/&amp;gt;intern || RAM&amp;lt;br/&amp;gt;intern || 16-bit&amp;lt;br/&amp;gt;Timer || [[UART]] || ext. IRQ-&amp;lt;br/&amp;gt;quellen || Bemerkung || [[NMOS-Logik|NMOS]] || [[CMOS|CHMOS]]&lt;br /&gt;
|-----&lt;br /&gt;
| 8031  ||     – || 128 || 2 || rowspan=&amp;quot;14&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;1 || rowspan=&amp;quot;11&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;2 || &amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;/&amp;gt; || rowspan=&amp;quot;4&amp;quot; | x || rowspan=&amp;quot;11&amp;quot; | x&lt;br /&gt;
|-----&lt;br /&gt;
| 8032  ||     – || 256 || 3 || &amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;/&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 8051  ||  4096 || 128 || 2 || maskenprogrammierbares ROM&amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;&amp;gt;[https://www.jameco.com/Jameco/Products/ProdDS/51844.pdf MCS&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; 51 8-Bit Control-Oriented Microcontroller]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;C51&amp;quot;&amp;gt;[https://www.keil.com/dd/docs/datashts/intel/8xc51fx_ds.pdf 8XC51FX CHMOS Single-Chip 8-Bit Microcontrollers]&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 8052  ||  8192 || rowspan=&amp;quot;3&amp;quot; | 256 || rowspan=&amp;quot;3&amp;quot; | 3 || maskenprogrammierbares ROM&amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;C52&amp;quot;&amp;gt;[https://www.sycelectronica.com.ar/semiconductores/D87C52.pdf 8XC52/54/58 CHMOS SINGLE-CHIP 8-BIT MICROCONTROLLER]&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 80C54 || 16384 || maskenprogrammierbares ROM&amp;lt;ref name=&amp;quot;C52&amp;quot;/&amp;gt; || rowspan=&amp;quot;2&amp;quot; | – &lt;br /&gt;
|-----&lt;br /&gt;
| 80C58 || 32768 || maskenprogrammierbares ROM&amp;lt;ref name=&amp;quot;C52&amp;quot;/&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 8751  ||  4096 || 128 || 2 || [[EPROM]] als [[One Time Programmable|OTP]] oder mit UV-Fenster&amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;C51&amp;quot;/&amp;gt; || rowspan=&amp;quot;2&amp;quot; | x &lt;br /&gt;
|-----&lt;br /&gt;
| 8752  ||  8192 || rowspan=&amp;quot;4&amp;quot; | 256 || rowspan=&amp;quot;4&amp;quot; | 3 || EPROM als OTP oder mit UV-Fenster&amp;lt;ref name=&amp;quot;8031_8051_8751&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;C52&amp;quot;/&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 87C54 || 16384 || EPROM als OTP oder mit UV-Fenster&amp;lt;ref name=&amp;quot;C52&amp;quot;/&amp;gt; || rowspan=&amp;quot;3&amp;quot; | – &lt;br /&gt;
|-----&lt;br /&gt;
| 87C58 || rowspan=&amp;quot;2&amp;quot; | 32768 || EPROM als OTP oder mit UV-Fenster&amp;lt;ref name=&amp;quot;C52&amp;quot;/&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 89C52 || [[Flash-Speicher]] &lt;br /&gt;
|-----&lt;br /&gt;
| 8044  ||  4096 || rowspan=&amp;quot;3&amp;quot; | 192 || rowspan=&amp;quot;3&amp;quot; | 2 || rowspan=&amp;quot;3&amp;quot; | &amp;amp;nbsp;&amp;amp;nbsp;? || RUPI™-44 (Remote Universal Peripheral Interface), maskenprogrammierbares ROM&amp;lt;ref name=&amp;quot;8044_8344_8744&amp;quot;&amp;gt;[http://www.hoeben.com/bitbus.info/Intel_8044AH_8344AH.pdf 8044AH/8344AH/8744H High Performance 8-Bit Microcontroller With On-Chip Serial Communication Controller]&amp;lt;/ref&amp;gt; || rowspan=&amp;quot;3&amp;quot; | x || rowspan=&amp;quot;3&amp;quot; | –&lt;br /&gt;
|-----&lt;br /&gt;
| 8344  ||     – || RUPI™-44 (Remote Universal Peripheral Interface)&amp;lt;ref name=&amp;quot;8044_8344_8744&amp;quot;/&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
| 8744  ||  4096 || RUPI™-44 (Remote Universal Peripheral Interface), EPROM als OTP oder mit UV-Fenster&amp;lt;ref name=&amp;quot;8044_8344_8744&amp;quot;/&amp;gt;&amp;lt;ref&amp;gt;[https://drive.google.com/file/d/0ByX0R-KjYec7OTRmZjFhZGUtMDBjYy00NzE0LTlkNjEtYzIzMWEzOWVkY2Iy/view?ddrp=1&amp;amp;hl=en_GB# M8744H RUPI™-44: Remote Universal Peripheral Interface]&amp;lt;/ref&amp;gt; &lt;br /&gt;
|-----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es von verschiedenen Firmen erweiterte MCS-51-Mikrocontroller, z.&amp;amp;nbsp;B. von Siemens (heute [[Infineon]]) entwickelt und in [[NMOS-Logik|NMOS]]-Technologie hergestellt:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-----&lt;br /&gt;
! Typ || ROM&amp;lt;br/&amp;gt;intern || RAM&amp;lt;br/&amp;gt;intern || Bemerkung&lt;br /&gt;
|-----&lt;br /&gt;
| SAB 80515 || 8192 || rowspan=&amp;quot;2&amp;quot; | 256 || Hersteller: SIEMENS, 3× 16-Bit-Timer, 1 UART, 2 externe Interruptquellen, [[Pulsweitenmodulation|PWM]],&amp;lt;br/&amp;gt;8-fach A/D-Wandler, maskenprogrammierbares ROM&lt;br /&gt;
|-----&lt;br /&gt;
| SAB 80535 || – || 3× 16-Bit-Timer, 1 UART, 2 externe Interruptquellen, PWM, 8-fach A/D-Wandler&lt;br /&gt;
|-----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die CMOS-Varianten der Siemens MCS-51-Serie sind funktionsgleich, allerdings nicht in allen Varianten pinkompatibel.&lt;br /&gt;
&lt;br /&gt;
Weitere moderne MCS-51-kompatible Mikrocontroller, welche in [[CMOS]]-Technologie mit Flash-Speicher hergestellt werden und meistens schnellere Befehlsverarbeitung, mehr Speicher oder spezielle Schnittstellen aufweisen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-----&lt;br /&gt;
! Hersteller || Typ || Flash&amp;lt;br/&amp;gt;intern || RAM&amp;lt;br/&amp;gt;intern || Bemerkung&lt;br /&gt;
|-----&lt;br /&gt;
| ATMEL || AT89C2051 || 2048 || rowspan=&amp;quot;2&amp;quot; | 128 || rowspan=&amp;quot;2&amp;quot; | Nur 20 Pins, kein externer Daten-/Adressbus, 2× 16-Bit-Timer, 1 UART,&amp;lt;br/&amp;gt;1 Komparator, [[Flash-Speicher]]&lt;br /&gt;
|-----&lt;br /&gt;
| ATMEL || AT89C4051 || 4096 &lt;br /&gt;
|-----&lt;br /&gt;
| ATMEL || AT89C51ED2 || rowspan=&amp;quot;2&amp;quot; | 16384 || rowspan=&amp;quot;3&amp;quot; | 256 || bis zu 6 Ports (je nach Gehäusegröße), 1792 Bytes internes MOVX-SRAM, RS232-Boot-&amp;lt;br/&amp;gt;Loader im ROM, 2 KBytes internes Daten-EEPROM, 3× 16-Bit-Timer, 1 UART,&amp;lt;br/&amp;gt;1 Komparator, 2 Datenzeiger, PWM, SPI, [[Flash-Speicher]]&lt;br /&gt;
|-----&lt;br /&gt;
| MAXIM/DALLAS || DS89C430 || rowspan=&amp;quot;2&amp;quot; | 1 Taktzyklus/Befehl, max. 33 MIPS bei 33 MHz, 1 KB internes MOVX-SRAM, RS232-Boot-&amp;lt;br/&amp;gt;Loader im ROM, 3× 16-Bit-Timer, 1 UART, 1 Komparator, 2 Datenzeiger, [[Flash-Speicher]]&lt;br /&gt;
|-----&lt;br /&gt;
| MAXIM/DALLAS || DS89C450 || 65536 &lt;br /&gt;
|-----&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Speicherorganisation ==&lt;br /&gt;
[[Datei:MFrey SFR MCS-51.svg|mini|hochkant=1.2|links|Special Function Register: Weiß: 8051, Blau: zusätzlich beim 8052]]&lt;br /&gt;
[[Datei:MFrey Internal RAM MCS-51-DE.svg|mini|hochkant=1.2|Internes Adressierungsschema]]&lt;br /&gt;
&lt;br /&gt;
Der [[Stapelspeicher|Stack]] befindet sich immer frei definierbar im internen RAM. Die [[Byte-Reihenfolge]] ist little-endian.&lt;br /&gt;
In der ursprünglichen Form handelt es sich um eine [[Harvard-Architektur]], jedoch besitzen viele neuere MCS-51-Entwicklerboards eine modifizierte Harvard-Architektur. Mit dieser Architektur wird ein Teil des XRAMs (extended data RAM) mittels eines [[Adressdekoder]]s in den Programmspeicher gespiegelt. Das ermöglicht einer meist ab ROM laufenden Terminalsoftware z.&amp;amp;nbsp;B. per [[Serielle Schnittstelle]] kommende Software in den Programmspeicher zu laden und nach dem Übertragen auszuführen.&lt;br /&gt;
&lt;br /&gt;
=== Datenspeicher ===&lt;br /&gt;
[[Datei:MFrey ROM MCS-51.svg|mini|hochkant=1.2|Interrupt-Adressen]]&lt;br /&gt;
&lt;br /&gt;
Die 4 Registerbänke enthalten jeweils 8 [[Register (Computer)|Register]], die entweder als Register oder über ihre Adresse ansprechbar sind. Vorteile der Register gegenüber dem „RAM zur allgemeinen Verwendung“ sind die kürzeren Befehle. Register 0 und 1 können als 8-Bit-Datenpointer im internen und externen RAM verwendet werden. Durch geschickte Verwendung der Registerbänke lässt sich die Reaktionszeit auf einen Interrupt verkürzen, da die Daten nicht in den Stack verschoben werden müssen.&lt;br /&gt;
&lt;br /&gt;
Da sich das obere RAM und die Special Function Register die Adressen teilen, dient die Adressierungsart zur Unterscheidung. Das obere RAM lässt sich nur indirekt mittels Register 0 und Register 1 ansprechen, während die Special Function Register mittels direkter Adressierung ansprechbar sind.&lt;br /&gt;
&lt;br /&gt;
Bei der Programmierung wird das erweiterte RAM (engl. extended data RAM oder kurz XRAM) vom normalen RAM durch den Befehl unterschieden. &amp;lt;Code&amp;gt;MOV&amp;lt;/Code&amp;gt; spricht das interne RAM an, während &amp;lt;Code&amp;gt;MOVX&amp;lt;/Code&amp;gt; das XRAM anspricht. Das XRAM ist nur indirekt adressierbar, dafür jedoch linear. Bei den frühen Varianten war das XRAM immer extern, bei neueren Varianten kann es teilweise oder vollständig integriert sein.&lt;br /&gt;
&lt;br /&gt;
Aufgrund der Adressbusbreite von 16 Bit sind bis zu 65536 Byte XRAM möglich.&lt;br /&gt;
&lt;br /&gt;
Die Special Function Register bzw. Speicheradressen des XRAM werden von bestimmten Varianten von Controllern bzw. Controllerboards für Erweiterungen aller Art verwendet. Als Beispiel:&lt;br /&gt;
* Weitere Ein- und Ausgänge&lt;br /&gt;
* 16-Bit-Recheneinheit&lt;br /&gt;
* USB-Controller&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
Besonders bei den synthetisierbaren MCS-51-Implementierungen bietet sich das an, weil der Befehlssatz der MCS-51-Familie nicht verändert wird, womit die Kompatibilität zu deren Entwicklungstools erhalten bleibt.&lt;br /&gt;
&lt;br /&gt;
=== Programmspeicher ===&lt;br /&gt;
Da der Adressbus 16 Bit breit ist, kann der externe Programmspeicher bis zu 65536 Byte umfassen. Es kann entweder der interne oder der externe Programmspeicher verwendet werden. Ein gleichzeitiges Betreiben ist nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Mittels &amp;lt;Code&amp;gt;MOVC&amp;lt;/Code&amp;gt; kann das Programm vom Programmspeicher lesen, was bei der Implementierung von Tabellen hilfreich ist.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
[[Datei:MFrey Port 1 MCS-51.svg|mini|hochkant=1.2|Ein Bit von Port 1 bzw. Port 3]]&lt;br /&gt;
&lt;br /&gt;
Alle Ports können als Ein- oder Ausgang betrieben werden, wobei die Ports 1 bis 3 einen internen Pull-up Widerstand besitzen. Port 0 ist ein echter [[Tri-State]]-Port, der zusammen mit Port 2 für externe Speicherzugriffe verwendet wird. Dabei wird Port 0 im Zeitmultiplex für die Ausgabe des unteren Adressbytes bzw. Ein- und Ausgabe der Daten verwendet. Gleichzeitig erscheint an Port 2 das obere Adressbyte.&amp;lt;ref&amp;gt;J. Koch: &amp;#039;&amp;#039;Die 8bit-Mikrocontroller-Familie 8051&amp;#039;&amp;#039;, Band 1 (Eigenschaften), Valvo/Boysen + Maasch, Oktober 1984, S.&amp;amp;nbsp;21ff, ISBN 3-87095-260-1&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[RMW-Befehl]]e lesen den Wert aus dem Speicher, während alle anderen Befehle die Werte vom Pin holen.&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
=== MCS-151 ===&lt;br /&gt;
Im Jahr 1991 kündigte Intel die MCS-151-Familie an, eine bis zu 6-mal schnellere Variante des MCS-51, welche vollständig binär- und befehlssatzkompatibel ist. Im Aufbau und im Gegensatz zum 8051 weist der 80151 intern eine [[Pipeline (Prozessor)|Pipeline]] mit einem 16&amp;amp;nbsp;Bit breiten Datenbus auf.&amp;lt;ref name=&amp;quot;mcs511&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MCS-251 ===&lt;br /&gt;
Im Jahr 1996 wurde der 8/16/32-Bit-Mikrocontroller MCS-251 von Intel vorgestellt, welcher über einen 24&amp;amp;nbsp;Bit breiten (linearen) Adressraum verfügt und wie der Vorgänger MCS-151 auf einer Pipeline-Struktur basiert. Auch der MCS-251 ist zum 8051 binärkompatibel, verfügt über zusätzliche Maschinenbefehle und hat darüber hinaus einen begrenzten Satz von 32&amp;amp;nbsp;Bit Befehlen, weitere 16 8- und 16-Bit-Register, 16 16-Bit-Register und 10 32-Bit-Register.&amp;lt;ref name=&amp;quot;mcs511&amp;quot;/&amp;gt; Der MCS-251 ist auch als [[IP-Core]] verfügbar und ist in dieser Form von verschiedenen Herstellern wie [[Atmel]] oder [[Temic]] lizenziert.&amp;lt;ref name=&amp;quot;themcs51&amp;quot;/&amp;gt; Auch die Familie der [[Kryptoprozessor]]en &amp;#039;&amp;#039;SLE78&amp;#039;&amp;#039; von [[Infineon]] basieren auf dem MCS-251.&lt;br /&gt;
&lt;br /&gt;
== Literatur und Datenblätter ==&lt;br /&gt;
* J. Koch (Bearb.): &amp;#039;&amp;#039;Die 8bit-Mikrocontroller-Familie 8051, 1. Eigenschaften&amp;#039;&amp;#039;. Philips/Valvo, 1984. ISBN 3-87095-260-1&lt;br /&gt;
* J. Koch (Bearb.): &amp;#039;&amp;#039;Die 8bit-Mikrocontroller-Familie 8051, 2. Befehlsvorrat&amp;#039;&amp;#039;. Philips/Valvo, 1984. ISBN 3-87095-261-X&lt;br /&gt;
* &amp;#039;&amp;#039;Mikrocomputer SAB 8051 Befehlsliste&amp;#039;&amp;#039;. Hrsg. von der Siemens AG, Bereich Bauelemente, Balanstraße 73, 8000 München 80 (Best-Nr. B/2591)&lt;br /&gt;
* Andreas Roth: &amp;#039;&amp;#039;Das Microcontroller Kochbuch MCS51&amp;#039;&amp;#039;, 6. Auflage, mitp Verlag, Januar 2002, ISBN 978-3-8266-0722-6&lt;br /&gt;
* R. Leicht: &amp;#039;&amp;#039;Das große 51er Anwendungsbuch&amp;#039;&amp;#039;. Franzis Verlag 2005, ISBN 3-7723-5419-X&lt;br /&gt;
* J. Walter: &amp;#039;&amp;#039;Mikrocomputertechnik mit der 8051-Controller-Familie&amp;#039;&amp;#039;. 3. Auflage, Springer 2008, ISBN 978-3-540-66758-2&lt;br /&gt;
* M. Baldischweiler: &amp;#039;&amp;#039;Der Keil C51-Compiler&amp;#039;&amp;#039;, ISBN 3-9804331-8-8&lt;br /&gt;
* K. Köhn, R. Schultes: &amp;#039;&amp;#039;8051-Prozessoren: Einführung – Applikationen – Programmierung&amp;#039;&amp;#039;, Franzis&amp;#039;-Verlag 1992, ISBN 3-7723-4331-7&lt;br /&gt;
* B. Vom Berg, P. Groppe, J. Klein: &amp;#039;&amp;#039;C-Programmierung für 8051er&amp;#039;&amp;#039;, Band 1–3, Elektor-Verlag 2003–2005&lt;br /&gt;
* [https://de.scribd.com/document/338404062/Intel-MCS-51-Users-Manual-Jan-81-pdf Intel MCS-51™ Family of Single Chip Microcontrollers User&amp;#039;s Manual], January 1981&lt;br /&gt;
* &amp;#039;&amp;#039;Microcontroller Handbook&amp;#039;&amp;#039;, Intel Corporation 1984, Order number 210918-002&lt;br /&gt;
* &amp;#039;&amp;#039;8-Bit Embedded Controllers&amp;#039;&amp;#039;, Intel Corporation 1991, Order number 270645-003&lt;br /&gt;
* &amp;#039;&amp;#039;MCS&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; 51 Microcontroller Family User&amp;#039;s Manual&amp;#039;&amp;#039;, February 1994, Publication number 121517, Intel Corporation; [https://web.mit.edu/6.115/www/document/8051.pdf PDF] (14,9&amp;amp;nbsp;MB)&lt;br /&gt;
* &amp;#039;&amp;#039;MCS-51™ Macro Assembler User&amp;#039;s Guide&amp;#039;&amp;#039;, Publication number 9800937, Intel Corporation&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mcs511&amp;quot;&amp;gt;{{Internetquelle | url =  https://datasheets.chipdb.org/Intel/MCS51/151BACK.HTM | titel = Intel MCS® 151 and MCS® 251 Microcontrollers | zugriff = 2024-09-08 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;themcs51&amp;quot;&amp;gt;{{Literatur | Autor = Kenneth J. Ayala | Titel = The 8051 Microcontroller | Verlag =  Thomson Delmar Learning | Sprache = en | ISBN = 978-1-40186158-2 | Jahr = 2005 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commonscat|MCS-51}}&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste Intel-Mikroarchitekturen}}&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Intel Mcs-51}}&lt;br /&gt;
[[Kategorie:Intel-Prozessor|MCS-51]]&lt;br /&gt;
[[Kategorie:Mikrocontroller]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>