Intel 8051
Specifikace
Uvedení1980
Počet jader1
Frekvence12 MHz
Paměť programu4 KiB
Patice40 pinů
SAB-C515-LN od Infineon navržen podle 8051

Intel 8051 je osmibitový mikropočítač Harvardské architektury, který byl vyvinut společností Intel v roce 1980 pro použití v oblasti vestavěných (embedded) systémů. Původní verze byla populární v roce 1980 a na začátku devadesátých let, ale dnes byla z velké části nahrazena celou řadu rychlejších a funkčně posílených 8051 kompatibilních zařízení vyráběných více než 20 nezávislými výrobci, včetně Atmel, Infineon Technologies (dříve Siemens AG), NXP (dříve Philips Semiconductor), Nuvoton (dříve Winbond), ST Microelectronics, Silicon Laboratories (dříve Cygnal), Texas Instruments a Cypress Semiconductor. Intelovské oficiální označení pro rodinu 8051 μCs je MCS 51.

Důležité vlastnosti a aplikace i8051 mikroarchitektury.

i8051 architektura

Zvláště užitečná funkce z jádra 8051 je začlenění bitově adresovatelné paměti. Umožňuje totiž provádět logické operace s jednotlivými bity, které jsou prováděny přímo a efektivně na vnitřních registrech paměti RAM. Tato vlastnost pomohla upevnit popularitu 8051 v řídicích aplikacích v průmyslu.

8051 UART je jednoduchý na používání čipu jako sériového komunikačního rozhraní. Vnější vývody lze nakonfigurovat pro připojení k interní posuvných registrů mnoha různými způsoby, vnitřní časovač může být také použit, umožňují též sériovou komunikaci v několika režimech, a to jak synchronním tak asynchronním. Některé režimy umožňují komunikaci bez vnějších součástek.

Mikropočítače založené na 8051 obvykle zahrnují jednu nebo dvě UART, dva nebo tři časovače, 128 nebo 256 bajtů interních dat RAM (16 bytů, které jsou bitově adresovatelné), a to až do 128 bytů I / O, 512 bytů a 64 kB interní programové paměti a někdy rozšířenou datovou paměť RAM (ERAM), umístěnou v externím datovém prostoru. Původní jádro 8051 běželo na 12 hodinových cyklech / strojový cykl, většina strojových instrukcí je vykonávaná v jednom nebo dvou strojových cyklech. Při hodinové frekvenci 12 MHz by tak 8051 mohl vykonat 1 milion jednocyklových instrukcí za sekundu nebo 500000 dvoucyklových instrukcí za sekundu. Rozšíření jádra 8051 je nyní běžně používané, běží na šest, čtyři, dva, nebo dokonce jednu dobu na strojový cykl, přitom má frekvenci až 100 MHz, a je tedy schopné ještě větších počtů instrukcí za sekundu. Všechny mikropočítače SILabs, některé Dallas a několik Atmel mají jediný cykl jádra.

Ještě vyšší rychlost jednoho cyklu 8051 byla v rozmezí 130 MHz až 150 MHz, na internetu lze stáhnout formulář pro použití v programovatelných logických zařízení, jako je například FPGA, a na mnoha stovek MHz v ASICs, např. netlist z [1].

Programování

Moderní IDE pro 8051

K dispozici je několik C překladačů pro 8051, z nichž většina vlastní rozšířené funkce, které umožňují programátorovi určit, kde leží která proměnná v které paměti, a poskytuje funkce pro přístup k hardwaru 8051, jako jsou vícenásobné registry a manipulace s jednotlivými bity. Pro ostatní vysokoúrovňové jazyky jako Forth, BASIC, Pascal / Object Pascal, PL/M a Modula-2 jsou k dispozici taktéž, je jich však méně používané, než C a assembler. Pro assembler, jazyk C a případně další jazyky existují pro 8051 různé simulátory a vývojová prostředí, jejíž součástí je simulátor, například moderní MCU 8051 IDE pro Linux a Windows nebo staré AS51 pro MS-DOS.

Instrukční sada

Aritmetické operace

Zápis Příklad Vysvětlení Byty Cykly
ADD A,Rn ADD A,R2 Přidá registr Rn do A 1 1
ADD A,direct ADD A, 23 Přidá obsah adresy bytu do A 2 1
ADD A,@Ri ADD A,@R3 Přidá nepřímo obsah adresy RAM do A 1 1
ADD A,#data ADD A,#43 Přidá daná data do A 2 1
ADDC A,Rn ADDC A,R3 Přidá registr Rn do A s Carry (bite určující přetečení) 1 1
ADDC A,direct ADDC A,13 Přidá obsah adresy bytu do A s Carry 2 1
ADDC A,@Ri ADDC A,@R4 Přidá nepřímo obsah adresy RAM do A s Carry 1 1
ADDC A,#data ADDC A,#24 Přidá daná data do A s Carry 2 1
SUBB A,Rn SUBB A,R0 Odečte registr Rn z A s Borrow 1 1
SUBB A,direct SUBB A,31 Odečte obsah adresy bytu z A s Borrow 2 1
SUBB A,@Ri SUBB A,@R6 Odečte nepřímo obsah adresy RAM z A s Borrow 1 1
SUBB A,#data SUBB A,#56 Odečte daná data z A s Borrow 2 1
INC A - Inkrementuje A (původní hodnota +1) 1 1
INC Rn INC R3 Inkrementuje registr 1 1
INC direct INC 24 Inkrementuje obsah adresy bytu 2 1
INC @Ri INC @R2 Inkrementuje nepřímo obsah adresy RAM 1 1
DEC A - Dekrementuje A (původní hodnota -1) 1 1
DEC Rn DEC R4 Dekrementuje registr Rn 1 1
DEC direct DEC 12 Dekrementuje obsah adresy bytu 2 1
DEC @Ri DEC @R6 Dekrementuje nepřímo obsah adresy RAM 1 1
INC DPTR - Inkrementuje Data Pointer (adresa na vnější RAM) 1 2
MUL AB Vynásobí A a B (A x B => BA) 1 4
DIV AB Vydělí A B (A/B => A + B), A obsahuje celočíselný výsledek a B zbytek 1 4
DA A Decimal Adjust A 1 1

Logické operace

Zápis Příklad Vysvětlení Byty Cykly
ANL A,Rn ANL A,R0 Logický součin registru Rn a A, výsledek se uloží do A 1 1
ANL A,direct ANL A,22 Logický součin obsahu adresy bytu a A, výsledek se uloží do A 2 1
ANL A,@Ri ANL A,@R1 Logický součin nepřímého obsahu adresy RAM a A, výsledek se uloží do A 1 1
ANL A,#data ANL A,#24 Logický součin daných data a A, výsledek se uloží do A 2 1
ANL direct,A ANL 17,A AND A to direct byte 2 1
ANL direct,#data ANL 32,#45 AND immediate data to direct byte 3 2
ORL A,Rn ORL A,R2 OR register to A 1 1
ORL A,direct ORL A,27 OR direct byte to A 2 1
ORL A,@Ri ORL A,@R3 OR indirect RAM to A 1 1
ORL A,#data ORL A,#67 OR immediate data to A 2 1
ORL direct,A ORL 24,A OR A to direct byte 2 1
ORL direct,#data ORL 45,#81 OR immediate data to direct byte 3 2
XRL A,Rn XRL A,R4 Exclusive-OR register to A 1 1
XRL A,direct XRL A,47 Exclusive-OR direct byte to A 2 1
XRL A,@Ri XRL A,@R5 Exclusive-OR indirect RAM to A 1 1
XRL A,#data XRL A,#35 Exclusive-OR immediate data to A 2 1
XRL direct,A XRL 41,A Exclusive-OR A to direct byte 2 1
XRL direct,#data XRL 65,#37 Exclusive-OR immediate data to direct byte 3 2
CLR A - Clear A 1 1
CPL A - Complement A 1 1
RL A - Rotuje obsah registru A vlevo 1 1
RLC A - Rotate A Left through Carry 1 1
RR A - Rotuje obsah registru A vpravo 1 1
RRC A - Rotate A Right through Carry 1 1
SWAP A - Swap nibbles within A 1 1

Související procesory

Reference

V tomto článku byl použit překlad textu z článku Intel 8051 na anglické Wikipedii.

Literatura

Pahýl Tento článek je příliš stručný nebo postrádá důležité informace.Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.