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).
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.
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.
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 serialeSubrutină de intrare
|
rutina de ieșire
|
---|
Nucleul de calcul este încă utilizat pe scară largă în diferite microcontrolere în scopuri generale și speciale, cu un set diferit de periferice.
Microcontrolere | ||||||||
---|---|---|---|---|---|---|---|---|
Arhitectură |
| |||||||
Producătorii |
| |||||||
Componente | ||||||||
Periferie | ||||||||
Interfețe | ||||||||
OS | ||||||||
Programare |
|