Intel 8051: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: uk:Intel MCS-51 |
fix incipit |
||
| (29 versioni intermedie di 20 utenti non mostrate) | |||
Riga 1:
[[File:KL Intel P8051.jpg
[[File:SAB-C515-LN.jpg|thumb|Microcontrollore SAB-C515-LN di Infineon, basato sul core 8051.]]
L{{'}}'''Intel 8051''' è un [[microcontrollore]] a 8 [[bit]] su singolo chip basato su [[architettura Harvard]], prodotto da [[Intel]]
La differenza tra una vera e propria CPU e l'8051 è che quest'ultimo possiede 32 linee di I/O, organizzate in gruppi di 8 bit ciascuno. ad ognuno di questi è possibile collegare un pulsante, un LED, oppure altri dispositivi che possano fornire I/O all'8051.
La designazione ufficiale di Intel per la famiglia 8051 di microcontrollori è '''MCS 51'''. La prima versione fu prodotta utilizzando tecnologia [[Logica NMOS|NMOS]] mentre le versioni successive, identificate da una lettera C nel loro nome (es., 80C51) usavano tecnologia [[CMOS]] ed erano quindi più efficienti dal punto di vista energetico dei loro predecessori NMOS. Ciò li rendeva particolarmente adatti per l'uso su dispositivi a [[Batteria (chimica)|batteria]].
== Architettura 8051 ==
L'8051 possiede 60000 transistor. Il cuore dell'8051 è rappresentato dal bus principale cui sono collegati vari registri, quasi tutti destinati a lettura o scrittura, sotto il controllo del programma.
L'8051 è dotato di due memorie separate per codice e dati. La RAM dei dati è di soli
L'8051 è un processore sincrono in cui la maggior parte delle istruzioni, seppur non tutte, impiegano un solo ciclo macchina. Ogni ciclo macchina è suddiviso in dodici cicli di clock, e da sei stati. Ad ogni stato viene eseguita una precisa operazione che portano all'esecuzione dell'istruzione.
== Applicazioni e funzioni importanti ==
[[File:
Il chip dell'8051 integra le funzionalità seguenti:
* [[Central processing unit|CPU]] a 8 bit
Riga 20 ⟶ 22:
* [[Bus (informatica)#Bus dati|bus dati]] a 8 bit
* [[Bus (informatica)#Bus indirizzi|Bus indirizzi]] a 16 bit (spazio indirizzabile complessivo: 2<sup>16</sup> = 64[[kilobyte|kB]] indipendenti su RAM e ROM)
* RAM interna (memoria dati) -
* ROM interna (memoria programma) - 4kB
* Quattro porte di I/O orientate al byte
* [[UART]] (porte seriali) di tipo sincrono (SPI, ''Serial
* Due contatori/[[timer (informatica)|timer]] a 16 bit
* Gestore di ''[[interrupt]]'' a due livelli di priorità
* Controllo del consumo (modalità di risparmio energetico)
Una caratteristica particolarmente utile dell'8051 è la possibilità di elaborare direttamente e in modo efficiente [[Variabile booleana|variabili booleane]] a un solo bit, nei registri e nella RAM. Questa caratteristica ha contribuito a consolidare la popolarità dell'8051 in applicazioni di controllo industriale. Un'altra caratteristica apprezzata è la presenza di quattro gruppi separati di registri di contesto, usati per ridurre drasticamente le latenze degli ''interrupt'' rispetto ai metodi tradizionali di immagazzinamento del contesto su [[Pila (informatica)|stack]].
Le porte seriali dell'8051 rendono semplice l'uso del chip come interfaccia di comunicazione. È infatti possibile configurare la modalità di connessione tra i pin esterni e i registri a scorrimento interni, collegandoli anche ai timer interni, ottenendo così il supporto di diverse modalità di comunicazione seriale, di tipo sia sincrono (SPI) che asincrono.
Le porte UART integrate, dalla gestione particolarmente semplice, sono in grado di comunicare secondo i protocolli seriali più diffusi, in particolare è supportata anche una modalità compatibile con il protocollo [[EIA-485|RS-485]] per comunicazioni multipunto. Questa capacità di interfacciamento verso altri dispositivi rende l'8051 particolarmente adatto per applicazioni di tipo embedded.
La versione originale dell'8051 ha un ciclo macchina pari a 12 cicli di clock. Dato che la maggior parte delle istruzioni richiedono uno o due cicli macchina, usando un clock a 12
I più recenti modelli di microcontrollore basati su core 8051 hanno esteso anche le funzionalità integrate nel chip, aumentando il numero di sorgenti di interrupt, estendendo le funzionalità accessorie quali il numero di timer e contatori e integrando ulteriori funzioni ausiliarie: oscillatori interni, memorie non volatili programmabili (flash [[EPROM]], [[EEPROM]]), ROM con ''bootloader'' per un avvio velocizzato, dispositivi avanzati di comunicazione seriale sincrona (I<sup>2</sup>C), gestori di interfaccia USB, modalità a basso consumo e a risparmio energetico, meccanismi di autodiagnostica eccetera.
== Programmazione ==
Oltre alla programmazione in linguaggio [[
== Instruction set ==
Riga 300 ⟶ 302:
|-
| SWAP A
| scambia i due nibble
| 1
| 1
Riga 358 ⟶ 360:
| 2
|-
| MOV direct, direct
| Copia nella posizione direct il contenuto della posizione direct
| 3
Riga 468 ⟶ 470:
|-
| CLR bit
| Azzera il bit
| 2
| 1
Riga 478 ⟶ 480:
|-
| SETB bit
| Pone a 1 il bit
| 2
| 1
Riga 488 ⟶ 490:
|-
| CPL bit
| Inverte il bit
| 2
| 1
|-
| ANL C,bit
| AND logico fra CY e il bit
| 2
| 2
|-
| ANL C,/bit
| AND logico fra CY e la negazione del bit
| 2
| 2
|-
| ORL C,bit
| OR logico fra CY e il bit
| 2
| 2
|-
| ORL C,/bit
| OR logico fra CY e la negazione del bit
| 2
| 2
Riga 542 ⟶ 544:
|-
| RET
| Termina
| 1
| 2
|-
| RETI
| Termina
| 1
| 2
|-
| AJMP addr11
| Salta
| 2
| 2
|-
| LJMP addr16
| Salta
| 3
| 2
Riga 592 ⟶ 594:
|-
| JB bit,rel
| Salta alla posizione [rel] se il bit contenuto
| 3
| 2
|-
| JNB bit,rel
| Salta alla posizione [rel] se il bit contenuto
| 3
| 2
|-
| JBC bit,rel
| Salta alla posizione [rel] se il bit contenuto
| 3
| 2
Riga 646 ⟶ 648:
Rn Registri di lavoro R0-R7<br />
direct 128 locazioni di ram interna, porta di I/O, registro di controllo o stato<br />
@Ri Locazione di RAM interna indiretta indirizzata dal registro R0 o R1
# data costante a 8 bit inclusa nell'istruzione
# data16 costante a 16 bit inclusa nell'istruzione
bit 128 flag software, pin di I/O, bit di controllo o stato<br />
addr16 L'indirizzo di destinazione può essere ovunque nei 64-kByte dello spazio di memoria programma<br />
addr11 L'indirizzo di destinazione sarà nella stessa pagina di memoria programma ampia 2-kByte come primo byte della corrente istruzione<br />
rel offset a 8-bit relativo al primo byte della corrente istruzione (+127, -128)<br />
All mnemonics copyrighted (C) Intel Corporation 1979
== Varianti ==
[[File:INTEL8031AH.png|thumb
{| class="wikitable" border="1"
Riga 711 ⟶ 713:
== Bibliografia ==
* {{
data=19 dicembre 1990 | editore=Elsevier | città= | lingua=inglese |isbn=978-0-12-547570-9 | pagine=528 }}
* Andrew S. Tanenbaum, Architettura degli elaboratori, un approccio strutturale, Pearson Prentice Hall
== Altri progetti ==
{{interprogetto|preposizione=sull'}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
*
* {{cita web | 1 = http://www.cast-inc.com/cores/r8051xc2/index.shtml | 2 = CAST, Inc. (8051 IP core provider) | accesso = 21 maggio 2009 | urlarchivio = https://web.archive.org/web/20090430022418/http://www.cast-inc.com/cores/r8051xc2/index.shtml | dataarchivio = 30 aprile 2009 | urlmorto = sì }}
* {{cita web | 1 = http://www.standardics.nxp.com/products/80c51/ | 2 = NXP (Philips) | accesso = 21 maggio 2009 | urlarchivio = https://web.archive.org/web/20090428045327/http://www.standardics.nxp.com/products/80c51/ | dataarchivio = 28 aprile 2009 | urlmorto = sì }}
* {{cita web |1=http://para.maxim-ic.com/cache/en/results/4592.html |2=Maxim Integrated Products |accesso=21 maggio 2009 |urlarchivio=https://web.archive.org/web/20070307014316/http://para.maxim-ic.com/cache/en/results/4592.html |dataarchivio=7 marzo 2007 |urlmorto=sì }}
* {{cita web | 1 = http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ConsumerElectronicsIC/ | 2 = Nuvoton | accesso = 21 maggio 2009 | urlarchivio = https://web.archive.org/web/20090617155113/http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ConsumerElectronicsIC/ | dataarchivio = 17 giugno 2009 | urlmorto = sì }}
*
*
*
* {{cita web | 1 = http://mcu-memory.com/ | 2 = STC Semiconductor (Chinese supplier of 8051-based products) | accesso = 21 maggio 2009 | urlarchivio = https://web.archive.org/web/20090228171624/http://www.mcu-memory.com/ | dataarchivio = 28 febbraio 2009 | urlmorto = sì }}
* {{cita web |1=http://www.dolphin.fr/flip/logic/logic_overview.html |2=Dolphin Integration (8051 IP provider) |accesso=21 maggio 2009 |urlarchivio=https://web.archive.org/web/20090601183242/http://www.dolphin.fr/flip/logic/logic_overview.html |dataarchivio=1º giugno 2009 |urlmorto=sì }}
* {{cita web|url=http://www.dcd.pl/acore.php?idcore=44|titolo=DIGITAL CORE DESIGN, DCD (8051/80390 IP core provider)|accesso=21 maggio 2009|urlarchivio=https://web.archive.org/web/20080213042913/http://www.dcd.pl/acore.php?idcore=44|dataarchivio=13 febbraio 2008|urlmorto=sì}}
{{Controllo di autorità}}
[[Categoria:Microcontrollori]]▼
{{Portale|informatica}}
▲[[Categoria:Microcontrollori]]
| |||