Intel 8051

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 9 ianuarie 2022; verificările necesită 9 modificări .

Intel 8051  este un microcontroler Harvard cu un singur cip care a fost produs pentru prima dată de Intel în 1980 pentru a fi utilizat în sistemele încorporate . Extrem de popular în anii 1980 și începutul anilor 1990, dar ulterior a devenit învechit și înlocuit de dispozitive mai moderne, tot cu 8051 nuclee compatibile, produse de peste 20 de producători independenți precum Atmel , Maxim IC (o subsidiară a Dallas Semiconductor ), NXP , Winbond , Silicon Laboratories , Texas Instruments, Cypress Semiconductor și Nuvoton). Numele oficial al familiei 8051 de microcontrolere Intel este MCS 51 . Există și o clonă sovietică a acestui cip, KR1816BE51.

Primele din familia Intel 8051 au fost fabricate folosind tehnologia n-MOS , dar versiunile ulterioare care conțineau „C” în nume, cum ar fi 80C51, foloseau tehnologia CMOS și consumau mai puțină energie decât predecesorii n-MOS (acest lucru le făcea mai ușor de utilizat ).pentru dispozitive alimentate cu baterie).

Caracteristici

O caracteristică comună a microcontrolerelor moderne compatibile cu 8051 a fost încorporarea de circuite îmbunătățite și suplimentare, cum ar fi: resetarea automată la o scădere a tensiunii de alimentare; generatoare de ceas încorporate ; programarea în circuit a memoriei programelor; Încărcătoare automate de memorie de date nevolatile bazate pe EEPROM ; I²C  ; SPI (standard magistrală serială cu 3 fire); Interfață gazdă USB ; generatoare PWM ; comparatoare analogice ; convertoare ADC și DAC ; ceas în timp real; temporizatoare și contoare suplimentare; depanare în circuit, surse suplimentare de întrerupere; moduri avansate de economisire a energiei.

Microcontrolerele compatibile cu 8051 au de obicei unul sau două UART ( UART ), două sau trei temporizatoare, 128 sau 256 octeți de memorie RAM pe cip (din care 16 octeți sunt adresabili pe biți), 512 octeți până la 128 KB de memorie de program pe cip , iar utilizarea EEPROM este uneori întâlnită .adresată prin „registre de funcții speciale” (SFR = registru de funcție specială). UART / UART poate fi configurat pentru utilizare în modul de date pe 9 biți, care permite transceiver-ul punct-la-multipunct bazat pe protocolul hardware RS-485 .

Un ciclu de mașină al nucleului 8051 original necesită 12 cicluri de ceas, iar majoritatea instrucțiunilor sunt executate în unul sau două cicluri de mașină. Cu o viteză de ceas de 12 MHz, nucleul 8051 poate efectua 1 milion de operațiuni pe secundă într-un ciclu sau 500 de mii de operațiuni pe secundă în două cicluri. Miezul îmbunătățit compatibil cu 8051, care este acum obișnuit, completează un ciclu de mașină în șase, patru, doi sau chiar un ciclu de ceas și permite utilizarea generatoarelor de ceas cu o frecvență de până la 100 MHz, ceea ce a crescut numărul de operații pe secundă.
8051 de nuclee și mai rapide, cu 1 ciclu pe ciclu de mașină, sunt organizate folosind FPGA -uri , cum ar fi FPGA (viteză în intervalul 130-150 MHz) sau ASIC (viteză în intervalul de câteva sute de MHz), folosind firmware special [2] . Toate dispozitivele compatibile cu 8051 produse de SILabs , unele produse de Dallas , câteva produse de Atmel și Nuvoton au un nucleu cu 1 ceas pe ciclu de mașină.

O caracteristică extrem de utilă a nucleului 8051 este procesarea datelor booleene , care a permis introducerea logicii binare care operează direct pe biții RAM-ului intern (zona de 128 de biți adresabili direct) și registre. Această caracteristică a fost solicitată în aplicațiile de automatizare industrială . O altă caracteristică valoroasă au fost cele 4 seturi de registre independente , care au redus semnificativ latența de întrerupere în comparație cu stiva clasică folosită în trecut.

Controlere înrudite

Predecesorul controlerului 8051 a fost Intel 8048 , care a fost folosit pe tastatura PC-ului IBM original  - a convertit semnalele de apăsare a tastei într-un flux de date transmis pe o linie serială către unitatea de sistem a computerului. Controlerul 8048, precum și controlerele bazate pe acesta, sunt încă folosite la tastaturi.

Controlerul 8031 ​​este o versiune redusă a Intel 8051: nu are memorie pe cip pentru a stoca programul.

Controlerul 8052 este o versiune extinsă a Intel 8051 original: este echipat cu 256 de octeți de memorie RAM internă (în loc de 128 de octeți de 8051), 8 KB de ROM (în loc de 4 KB), iar un al treilea timer de 16 biți are i-au fost adăugate.

Controlerul 8058 diferă de 8052 printr-o memorie ROM crescută de 32 KB.

Controlerul 8032 este similar cu 8052, dar nu are memorie încorporată pentru stocarea programelor. Controlerele 8052 și 8032 sunt considerate învechite, deoarece aproape toate variantele moderne de 8051 sunt echipate cu aceleași extensii pe care le are și 8052.

Programare

Mai multe compilatoare pentru limbajul de programare C sunt disponibile pentru 8051 , în special Keil, dintre care majoritatea acceptă extensii de limbaj pentru a exploata mai bine caracteristicile lui 8051. De exemplu, un programator poate specifica în care dintre cele șase tipuri de memorie ale lui 8051 ar trebui să fie o variabilă. depozitat; compilatorului i se poate spune cum să folosească blocuri de registre comutabile și instrucțiuni pentru manipularea biților individuali de registre.

Alte limbaje de nivel înalt, cum ar fi Forth , BASIC , Pascal , PL/M și Modula-2 sunt folosite pentru a programa 8051 , dar nu sunt la fel de utilizate ca C și asamblare .

Comparație dintre Intel i8085 , i8048 și i8051 pe exemplul de funcționare a rutinelor I/O seriale
Subrutină de intrare
8085 8048 8051
ÎN FUNCȚIUNE MOV C, SERPIN CLR RI
MASCA ANI CLR C JNB RI, $
JZLO JNT0 LO MOV A, SBUF
CMC CPL C
LO: LXI HL, SERBUF LO: MOV R0, #SERBUF
MOV A,M MOV A, @R0
RR RRC A
MOV M,A MOV@R0,A
     
     
     
8 echipe 7 echipe 3 echipe
14 octeți 9 octeți 6 octeți
56 de state 9 cicluri 4 cicluri
19 µs 22,5 µs 4 µs
rutina de ieșire
8085 8048 8051
LXI HL,SERBUF MOV R0,#SERBUF CLR TI
MOV A,M MOV A,@R0 MOV SBUF
RR RRC A JNB TI, $
MOV M, A MOV@R0, A
ÎN FUNCȚIUNE
J.C.H.I. J.C.H.I.
LO: ANI NU MASCA ANL SERPRT, #NU MASCA
JMP CNT JMP CNT
SALUT: ORI MASK SALUT: ORL SERPRT, #MASCA
CNT:OUT SERVER CNT:
     
10 echipe 8 echipe 3 echipe
20 de octeți 13 octeți 6 octeți
72 de state 11 cicluri 4 cicluri
24 µs 27,5 µs 4 µs

Aplicație

Nucleul de calcul este încă utilizat pe scară largă în diferite microcontrolere în scopuri generale și speciale, cu un set diferit de periferice.

Literatură

Link -uri

Note

  1. Bob Koehler. 8051 Specificații arhitecturale și descriere funcțională a microcomputerului cu un singur cip . - Santa Clara: Intel Corporation, 1980. Arhivat 13 octombrie 2011 la Wayback Machine Archived copy (link indisponibil) . Consultat la 18 septembrie 2012. Arhivat din original la 13 octombrie 2011. 
  2. Exemple pot fi văzute la e8051.com