Articulo de referencia

Intel MCS-51

El Intel MCS-51 (conocido comúnmente como 8051 ) es una serie de microcontroladores (MCU) de un solo chip desarrollada por Intel en 1980 para su uso en sistemas embebidos . Las ...

El Intel MCS-51 (conocido comúnmente como 8051 ) es una serie de microcontroladores (MCU) de un solo chip desarrollada por Intel en 1980 para su uso en sistemas embebidos . Las versiones originales de Intel fueron populares en los años 80 y principios de los 90, y sus derivados compatibles con binario mejorados siguen siendo populares hoy en día. Se trata de un ordenador con un conjunto de instrucciones complejo y espacios de memoria separados para las instrucciones del programa y los datos.

La familia original MCS-51 de Intel se desarrolló utilizando tecnología de semiconductor de óxido metálico de tipo N ( NMOS ), al igual que su predecesor Intel MCS-48 , pero las versiones posteriores, identificadas por la letra C en su nombre (por ejemplo, 80C51), utilizan tecnología de semiconductor de óxido metálico complementario ( CMOS ) y consumen menos energía que sus predecesores NMOS. Esto las hizo más adecuadas para dispositivos alimentados por batería.

La familia continuó en 1996 con el MCS-151 mejorado de 8 bits y la familia MCS-251 de microcontroladores compatibles binarios de 8/16/32 bits. [ 1 ] Si bien Intel ya no fabrica la familia MCS-51, MCS-151 y MCS-251, los derivados compatibles binarios mejorados fabricados por numerosos proveedores siguen siendo populares hoy en día. Algunos derivados integran un procesador de señal digital (DSP) o una unidad de punto flotante (coprocesador, FPU). Además de estos dispositivos físicos, varias empresas también ofrecen derivados del MCS-51 como núcleos IP para su uso en diseños de matrices de puertas programables en campo (FPGA) o circuitos integrados de aplicación específica (ASIC).

Desarrollo

El arquitecto del conjunto de instrucciones Intel MCS-51 fue John H. Wharton . [ 2 ] [ 3 ]

Características y aplicaciones importantes

microarquitectura i8051

La arquitectura 8051 proporciona muchas funciones ( unidad central de procesamiento (CPU), memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM), puertos de entrada/salida (E/S), puerto serie, control de interrupciones , temporizadores ) en un solo paquete :

Una característica del núcleo 8051 es la inclusión de un motor de procesamiento booleano, que permite realizar operaciones lógicas booleanas a nivel de bits de forma directa y eficiente en registros internos , puertos y ubicaciones de RAM específicos . Otra característica es la inclusión de cuatro conjuntos de registros de trabajo seleccionables por banco , lo que reduce considerablemente el tiempo necesario para realizar los cambios de contexto al entrar y salir de las rutinas de servicio de interrupción . Con una sola instrucción, el 8051 puede cambiar de banco de registros, evitando la tarea, que consume mucho tiempo, de transferir los registros críticos a la RAM.

Características derivadas

A partir de 2013, muchos fabricantes de chips importantes siguen desarrollando nuevos derivados, y los principales proveedores de compiladores como IAR Systems , Keil y TASKING [ 6 ] lanzan actualizaciones continuamente.

Los microcontroladores basados ​​en MCS-51 suelen incluir una o dos UART , dos o tres temporizadores, 128 o 256  bytes de RAM de datos interna (16  bytes de los cuales son direccionables por bits), hasta 128  bytes de E/S , de 512  bytes a 64  KB de memoria de programa interna y, a veces, una cantidad de RAM de datos extendida (ERAM) ubicada en el espacio de datos externo. La RAM externa y la ROM comparten los buses de datos y de direcciones. El núcleo 8051 original funcionaba a 12 ciclos de reloj por ciclo de máquina, y la mayoría de las instrucciones se ejecutaban en uno o dos ciclos de máquina. Con una frecuencia de reloj  de 12 MHz , el 8051 podía ejecutar 1 millón de instrucciones de un ciclo por segundo o 500 000 instrucciones de dos ciclos por segundo. Actualmente se utilizan comúnmente núcleos 8051 mejorados que funcionan a seis, cuatro, dos o incluso un ciclo de reloj por ciclo de máquina (denominados "1T") y tienen frecuencias de reloj de hasta 100 MHz, lo que les permite procesar un número aún mayor de instrucciones por segundo. Todos los dispositivos de Silicon Labs , algunos de Dallas (ahora parte de Maxim Integrated ) y algunos de Atmel (ahora parte de Microchip ) tienen núcleos de un solo ciclo . [ 7 ] [ 8 ] [ 9 ]  

Las variantes del 8051 pueden incluir temporizadores de reinicio incorporados con detección de caída de tensión , osciladores en el chip, memoria de programa flash ROM autoprogramable , RAM externa incorporada, almacenamiento de programa interno adicional, código de cargador de arranque en ROM, almacenamiento de datos no volátil EEPROM , interfaces de host I2C , SPI y USB , bus CAN o LIN , módulos de radio Zigbee o Bluetooth , generadores PWM , comparadores analógicos , convertidores analógico-digital y digital-analógico , RTC , contadores y temporizadores adicionales, funciones de depuración en circuito , más fuentes de interrupción, modos de ahorro de energía adicionales, más o menos puertos paralelos, etc. Intel fabricó una versión programada por máscara, 8052AH-BASIC, con un intérprete BASIC en ROM, capaz de ejecutar programas de usuario cargados en la RAM.

Los microcontroladores basados ​​en MCS-51 se han adaptado a entornos extremos. Ejemplos de variantes de alta temperatura son la familia Tekmos TK8H51 para −40  °C a +250  °C [ 10 ] o el Honeywell HT83C51 para −55  °C a +225  °C (con funcionamiento hasta 1 año a +300  °C). [ 11 ] Existen microcontroladores MCS-51 resistentes a la radiación para su uso en naves espaciales; por ejemplo, de Cobham (anteriormente Aeroflex ) como el UT69RH051 [ 12 ] o de NIIET como el 1830VE32 ( en ruso : 1830BE32 ). [ 13 ]

En algunas escuelas de ingeniería, el microcontrolador 8051 se utiliza en cursos introductorios de microcontroladores. [ 14 ] [ 15 ] [ 16 ] [ 17 ]

Convenciones para nombrar familias

El primer microcontrolador MCS-51 de Intel fue el 8051, con 4  KB de ROM y 128  bytes de RAM. Las variantes que comienzan con 87 tienen una EPROM programable por el usuario, a veces borrable por UV. Las variantes con una C como tercer carácter son algún tipo de CMOS . Los modelos 8031 ​​y 8032 son versiones sin ROM, con 128 y 256 bytes de RAM. El último dígito puede indicar el tamaño de la memoria, por ejemplo, el 8052 con 8  KB de ROM, el 87C54 con 16  KB de EPROM y el 87C58 con 32  KB de EPROM, todos con 256 bytes de RAM.

Arquitectura de memoria

Imagen del chip 8751 con 4  KB de EPROM y 128 bytes de RAM.

El MCS-51 tiene cuatro tipos distintos de memoria: RAM interna, registros de funciones especiales, memoria de programa y memoria de datos externa. Para acceder a ellas de manera eficiente, algunos compiladores [ 18 ] utilizan hasta 7 tipos de definiciones de memoria: RAM interna, acceso de un solo bit a la RAM interna, registros de funciones especiales, acceso de un solo bit a registros de funciones especiales seleccionados (divisibles por 8), RAM de programa, RAM externa a la que se accede mediante un acceso indirecto a registros, utilizando uno de los registros estándar de 8 bits, y acceso indirecto a la RAM externa mediante el registro de acceso indirecto de 16 bits.

El conjunto de instrucciones del 8051 está diseñado con una arquitectura Harvard y memoria segregada (datos e instrucciones); solo puede ejecutar código obtenido de la memoria de programa y no dispone de instrucciones para escribir en ella. Sin embargo, el bus que sale del circuito integrado tiene una única ruta de direcciones y datos, y se asemeja mucho a un bus con arquitectura von Neumann .

La mayoría de los sistemas 8051 respetan el conjunto de instrucciones y requieren funciones personalizadas para descargar nuevos programas ejecutables, por ejemplo, en la memoria flash.

Memoria RAM interna

La memoria RAM interna (IRAM) tiene un espacio de direcciones de 8 bits, que utiliza las direcciones 0 a 0xFF. La IRAM de 0x00 a 0x7F contiene 128 registros de 1 byte directamente direccionables, a los que se puede acceder mediante una dirección absoluta de 8 bits que forma parte de la instrucción. Alternativamente, se puede acceder a la IRAM indirectamente: la dirección se carga en R0 o R1, y se accede a la memoria mediante la sintaxis @R0OR @R1, o como memoria de pila a través del puntero de pila SP, con las operaciones PUSH/ POPy *CALL/ .RET

El 8051 original solo tiene 128 bytes de IRAM. El 8052 añadió IRAM desde 0x80 hasta 0xFF, a la que solo se puede acceder indirectamente (por ejemplo, para usarla como espacio de pila). La mayoría de los clones del 8051 también tienen 256 bytes completos de IRAM.

En cambio, los accesos directos a las direcciones IRAM 0x80–0xFF se asignan a los registros de funciones especiales (SFR), donde se encuentran los acumuladores A, B, el bit de acarreo C y otros registros especiales para control, estado, etc.

Registros de funciones especiales

Los registros de funciones especiales (SFR) se encuentran en el mismo espacio de direcciones que la IRAM, en las direcciones 0x80 a 0xFF, y se accede a ellos directamente mediante las mismas instrucciones que para la mitad inferior de la IRAM. No se puede acceder a ellos indirectamente a través @R0del @R1puntero de pila SP; el acceso indirecto a esas direcciones accederá a la segunda mitad de la IRAM.

Los registros de funciones especiales (SFR) incluyen los acumuladores A (o ACC, en E0) y B (en F0) y la palabra de estado del programa (o PSW, en D0), así como el puntero de datos de 16 bits DPTR (en 82, como DPL y 83 como DPH). Además de estos, un pequeño núcleo de otros registros de funciones especiales , incluidos el registro de habilitación de interrupciones IE en A8 y el registro de prioridad de interrupciones IP en B8; los puertos de E/S P0 (80), P1 (90), P2 (A0), P3 (B0); el control de E/S serie SCON (98) y el búfer SBUF (99); el registro de control de CPU/energía PCON (87); y los registros para el control de los temporizadores 0 y 1 (TCON en 88) y el modo de operación (TMOD en 89), el temporizador 0 de 16 bits (TL0 en 8A, TH0 en 8C) y el temporizador 1 (TL1 en 8B, TH1 en 8D) están presentes en todas las versiones del 8051. Otras direcciones dependen de la versión; en particular, los registros del temporizador 2 para el 8052, el registro de control T2CON (en C8), la captura/latch de 16 bits (RCAP2L en CA, RCAP2H en CB) y el temporizador 2 (TL2 en CC y TH2 en CD) no están incluidos en el 8051.    

Ventanas de registro

Los 32 bytes de la IRAM, desde 0x00 hasta 0x1F, contienen espacio para cuatro ventanas de registro de 8 bytes , a las que se asignan los ocho registros R0-R7. La ventana activa se determina mediante una dirección de dos bits contenida en la palabra de estado del programa.

registros de bits

Los 16 bytes (128 bits) en las ubicaciones IRAM 0x20–0x2F contienen espacio para 128 registros de 1 bit, que se pueden direccionar por separado como registros de bits 00–7F.

Los registros de bits restantes, identificados como 80–FF, se asignan a los 16 registros de funciones especiales 80, 88, 90, 98,  ..., F0 y F8 (cuyas direcciones son múltiplos de 8), e incluyen, por lo tanto, los bits que componen los acumuladores A, B y la palabra de estado del programa PSW. La dirección de la ventana de registro, que corresponde a los bits 3 y 4 de la PSW, se puede direccionar como los registros de bits D3 y D4, respectivamente; mientras que el bit de acarreo C (o CY), en el bit 7 de la PSW, se puede direccionar como el registro de bits D7.

Memoria del programa

La memoria de programa (PMEM, aunque menos común que la IRAM y la XRAM) es  una memoria de solo lectura de hasta 64 KB, que comienza en la dirección 0 en un espacio de direcciones independiente. Puede estar integrada o externa al chip, según el modelo específico. La memoria de programa es de solo lectura, aunque algunas variantes del 8051 utilizan memoria flash integrada y permiten reprogramarla dentro del sistema o en la aplicación.

Además del código, es posible almacenar datos de solo lectura, como tablas de búsqueda, en la memoria del programa, que se recuperan mediante las instrucciones `or` . La dirección se calcula como la suma del acumulador de 8 bits y un registro de 16 bits (PC o DPTR).MOVCA,@A+DPTRMOVCA,@A+PC

Las instrucciones especiales de salto y llamada ( AJMPy ACALL) reducen ligeramente el tamaño del código que accede a  la memoria de programa local (dentro de los mismos 2 KB). [ 19 ]

Cuando se requiere código de más de 64  KB, un sistema común utiliza conmutación de bancos de memoria, donde la E/S de propósito general selecciona los bits de dirección superiores. Algunos compiladores 8051 [ 18 ] permiten el acceso automático al código paginado. En estos sistemas, los vectores de interrupción y la tabla de paginación se ubican en los primeros 32  KB de código y permanecen siempre en la memoria.

Memoria de datos externa

La memoria de datos externa (XRAM) es un tercer espacio de direcciones, que también comienza en la dirección 0 y permite un espacio de direcciones de 16 bits. Puede estar integrada o externa al chip; lo que la hace "externa" es que se debe acceder a ella mediante la MOVXinstrucción (move external). Muchas variantes del 8051 incluyen los 256  bytes estándar de IRAM más algunos kilobytes de XRAM en el chip.

Se puede acceder a los primeros 256 bytes de XRAM mediante las instrucciones , , , y . Se puede acceder a los 64 KB completos mediante y . La dirección de 16 bits requiere que el programador cargue el registro de índice de 16 bits. Por esta razón, los accesos a la RAM con direcciones de 16 bits son considerablemente más lentos.MOVXA,@R0MOVXA,@R1MOVX@R0,AMOVX@R1,A MOVXA,@DPTRMOVX@DPTR,A

Algunas CPU [ 20 ] permiten que la dirección indirecta de 8 bits utilice cualquier registro de propósito general de 8 bits.

Para permitir el uso de esta función, algunos microcontroladores compatibles con 8051 con RAM interna mayor de 256 bytes, o que no pueden acceder a la RAM externa, [ 20 ] acceden a la RAM interna como si fuera externa y tienen un registro de función especial (por ejemplo, PDATA) que les permite establecer la dirección superior de la página de 256 bytes. Esto emula el modo MCS8051 que puede paginar el byte superior de una dirección de RAM configurando los pines de E/S de propósito general.

Cuando se requiere una RAM mayor de 64  KB, un sistema común utiliza conmutación de bancos de RAM, donde la E/S de propósito general selecciona los bits de dirección superiores. Algunos compiladores 8051 [ 18 ] incluyen disposiciones para acceder automáticamente a los datos paginados.

Registros

El único registro del microcontrolador 8051 que no está mapeado en memoria es el contador de programa (PC) de 16 bits. Este especifica la dirección de la siguiente instrucción a ejecutar. Las instrucciones de salto relativo proporcionan un desplazamiento con signo de 8 bits, que se suma al PC.

Se puede acceder a ocho registros de propósito general, R0–R7, mediante instrucciones que son un byte más cortas que otras. Estos registros están asignados a la memoria IRAM entre 0x00 y 0x1F. Solo se utilizan ocho bytes de ese rango en un momento dado, según lo determinan los dos bits de selección de banco en el PSW.

La siguiente es una lista parcial de los registros del 8051, que están mapeados en memoria en el espacio de registros de funciones especiales:

Puntero de pila, SP (0x81)
Este es un registro de 8 bits utilizado por las instrucciones de llamada y retorno de subrutinas. La pila crece hacia arriba; el SP se incrementa antes de insertar un valor y se decrementa después de extraerlo.
Puntero de datos, DP (0x82–83)
Se trata de un registro de 16 bits que se utiliza para acceder a la memoria PMEM y a la memoria XRAM.
Palabra de estado del programa, PSW (0xD0)
Esto contiene indicadores de estado importantes, por número de bit:
  1. Paridad, P. Indica la paridad ( XOR de los bits) del acumulador, A.
  2. Definido por el usuario (UD). Puede ser leído y escrito por software; no se ve afectado de ninguna otra manera por el hardware.
  3. Indicador de desbordamiento , OV. Se activa cuando la suma produce un desbordamiento con signo.
  4. Selección de registro 0, RS0. El bit de orden inferior del banco de registros. Se activa cuando se utilizan los bancos en 0x08 o 0x18.
  5. Selección de registro 1, RS1. El bit de orden superior del banco de registros. Se activa cuando se utilizan los bancos en 0x10 o 0x18.
  6. Bandera 0, F0. Puede ser leída y escrita por software; no se ve afectada de ninguna otra manera por el hardware.
  7. Acarreo auxiliar , AC. Se activa cuando la suma produce un acarreo del bit 3 al bit 4.
  8. Bit de acarreo , C. A menudo se utiliza como registro general para cálculos de bits, o como el "acumulador booleano".
Acumulador, A (0xE0)
Este registro es utilizado por la mayoría de las instrucciones.
Registro B (0xF0)
Esto se utiliza como una extensión del acumulador para las instrucciones de multiplicación y división.

Se pueden direccionar directamente 256 bits individuales. Estos corresponden a las 16 ubicaciones de la memoria IRAM, desde 0x20 hasta 0x2F, y a los 16 registros de funciones especiales 0x80, 0x88, 0x90, ..., 0xF8. Cualquier bit de estos bytes puede ser accedido directamente mediante diversas operaciones lógicas y bifurcaciones condicionales.

Cabe destacar que el PSW no contiene los indicadores comunes de negativo (N) ni de cero (Z) . Para el primero, se puede acceder directamente al bit más significativo del acumulador, ya que es un registro SFR direccionable por bits. Para el segundo, existen instrucciones explícitas para saltar según si el acumulador es cero o no. También hay una operación de comparación y salto de dos operandos.

El bit de paridad (P) se usa a menudo para implementar modos serie que incluyen paridad. Para ello, los UART estándar MCS51 podían enviar 9 bits.

Microarquitectura

La microarquitectura del Intel MCS8051 es propietaria, pero las características publicadas [ 21 ] sugieren su funcionamiento. Se trata de un procesador multiciclo . El MCS8051 utilizaba 12 ciclos de reloj [ 21 ] para la mayoría de las instrucciones. Muchas instrucciones utilizan un acumulador [ 21 ] . En contraste, la mayoría de los ordenadores compatibles ejecutan las instrucciones en uno a tres ciclos, excepto las de multiplicación y división. La mayor velocidad es una de las principales razones por las que estos procesadores han reemplazado al MCS8051 en la mayoría de las aplicaciones.

Cada interrupción tiene cuatro prioridades. [ 21 ] Dentro de cada prioridad, las interrupciones de los dispositivos tienen una prioridad fija. [ 21 ]

Conjunto de instrucciones

Las instrucciones tienen una longitud de entre 1 y 3 bytes, y constan de un byte de código de operación inicial, seguido de hasta 2 bytes de operandos.

1/4 de los bytes del código de operación, x 0– x 3 , se utilizan para códigos de operación irregulares.

3/4 de los bytes del código de operación, x4 xF , se asignan a 16 instrucciones ALU básicas con 12 operandos posibles. El nibble menos significativo del código de operación selecciona el operando primario de la siguiente manera :

  • x 8– x F : Registro directo, R0–R7.
  • x 6– x 7 : Registro indirecto,o.@R0@R1
  • x 5 : Memoria directaaddress, el siguiente byte especifica una ubicación IRAM o SFR.
  • x 4 : Inmediato#data, un byte siguiente especifica una constante de 8 bits. Cuando el operando es un destino (,) o la operación ya incluye una fuente inmediata (,), esto especifica que se utilice el acumulador.INCoperandDECoperandMOVoperand,#dataCJNEoperand,#data,offset

Las tres operaciones bit a bit ANL, ORL y XRL, que normalmente operan sobre el acumulador, también admiten dos modos de destino de memoria:

  • x 3 :opLaddress,#data
  • x 2 :opLaddress,A

El nibble más significativo especifica la operación de la siguiente manera. No todos admiten todos los modos de direccionamiento; el modo inmediato, en particular, no está disponible cuando se escribe en el operando primario, por lo que solo es aplicable a seis operaciones, y codifica un destino de acumulador en cuatro más. Los mnemónicos de instrucción usan el orden de destino y operando de origen .

0 años :INCoperand
Incrementa el operando especificado. El modo inmediato (código de operación 0x04) especifica el acumulador, .INCA
1 año :DECoperand
Decrementa el operando especificado. El modo inmediato (código de operación 0x14) especifica el acumulador, .DECA
2 años :ADDA,operand
Agregue el operando al acumulador, A. El código de operación 0x23 ( , "rotar a la izquierda" pero en realidad un desplazamiento a la izquierda ) puede considerarse como .RLAADDA,A
3 años :ADDCA,operand
Sume el operando, más el bit C, al acumulador. El código de operación 0x33 ( , rotación a la izquierda a través del acarreo) puede considerarse como .RLCAADDCA,A
4 años :ORLA,operand
Se aplica la operación OR lógica al operando en el acumulador. Dos formas de destino de memoria de esta operación, y , se especifican mediante los códigos de operación 0x43 y 0x42.ORLaddress,#dataORLaddress,A
5 años :ANLA,operand
La operación AND lógica asigna el operando al acumulador. Dos formas de destino de memoria de esta operación, y , se especifican mediante los códigos de operación 0x53 y 0x52.ANLaddress,#dataANLaddress,A
6 años :XRLA,operand
Se aplica la operación OR exclusiva lógica al operando en el acumulador. Dos formas de destino de memoria de esta operación, y , se especifican mediante los códigos de operación 0x63 y 0x62.XRLaddress,#dataXRLaddress,A
7 años :MOVoperand,#data
Mueve inmediatamente al operando. El modo inmediato (código de operación 0x74) especifica el acumulador, .MOVA,#data
8 años :MOVaddress,operand
Mueve un valor a un registro IRAM o SFR. El modo de acceso directo a memoria (código de operación 0x85) mueve directamente entre dos registros IRAM o SFR. El modo inmediato (código de operación 0x84) no se utiliza para esta operación, ya que duplica el código de operación 0x75.MOVaddress,address
9 años :SUBBA,operand
Resta el operando y el indicador de acarreo del acumulador. Esta operación implica un préstamo, y no existe resta sin préstamo.
Un y :MOVoperand,address
Transfiere un valor desde un registro IRAM o SFR. El modo de acceso directo a memoria (código de operación 0xA5) no se utiliza, ya que duplica 0x85. El modo inmediato/acumulador (código de operación 0xA4) no se utiliza, ya que duplica 0xE5.
Por :CJNEoperand,#data,offset
Compara el operando con el inmediato #datay salta al PC + desplazamiento si no son iguales. Debido a que esta instrucción ya tiene el máximo posible de dos bytes de operando, los modos inmediato y de memoria directa (códigos de operación 0xB4 y 0xB5) omiten el inmediato #datay en su lugar comparan el operando con el acumulador, amd . Tenga en cuenta que no hay ninguna instrucción de comparación y salto si son iguales, .CJNEA,#data,offsetCJNEA,address,offsetCJE
C y :XCHA,operand
Intercambia el acumulador y el operando. El modo inmediato/acumulador (código de operación 0xC4) no se utiliza para esta operación, ya que no tendría ningún efecto.XCHA,A
D y :DJNZoperand,offset
Decrementa el operando y salta al contador de programa (PC) + desplazamiento si el resultado no es cero. No se utilizan el modo inmediato (código de operación 0xD4) ni el modo indirecto por registro (0xD6, 0xD7).
E y :MOVA,operand
Mueve el operando al acumulador. El modo inmediato no se utiliza para esta operación (código de operación 0xE4), ya que duplica el código de operación 0x74.
F y :MOVoperand,A
Mueve el acumulador al operando. No se utiliza el modo inmediato/acumulador (código de operación 0xF4), ya que no tendría ningún efecto.MOVA,A

Solo las instrucciones ADD, ADDC, y SUBBestablecen los indicadores PSW. Las instrucciones lógicas INC, DEC, y no lo hacen. La CJNEinstrucción modifica solo el bit C, al préstamo que resulta de operando1operando2 .

Las instrucciones irregulares tienen modos de direccionamiento más limitados y están codificadas en el rango x 0– x 3 , además de algunos códigos de operación en el rango x 4– x 7 que no utilizan las instrucciones regulares.

Instrucciones adicionales no habituales:

A5
ESCNo utilizado por el 8051, pero utilizado para códigos de operación extendidos por sucesores como el §  MCS-251 .
D6–7
XCHDA,@R01Intercambio de un nibble de bajo orden de operandos.

El SJMPcódigo de operación (salto corto) toma un operando de byte de desplazamiento relativo con signo y transfiere el control allí con respecto a la dirección de la instrucción siguiente. Los códigos de operación AJMP/ ACALLcombinan los tres bits más significativos del byte del código de operación con el byte siguiente para especificar un destino de 11 bits que se usa para reemplazar los 11 bits menos significativos del registro PC (los 5 bits más significativos del registro PC permanecen intactos, por lo que esto solo puede saltar dentro de una página de 2048 bytes). Para distancias mayores, las instrucciones LJMPy LCALLpermiten un destino de 16 bits.

Una de las razones de la popularidad del 8051 es su amplia gama de operaciones con bits individuales. Los bits siempre se especifican mediante direcciones absolutas; no existe direccionamiento indirecto por registro ni indexado. Las instrucciones que operan con bits individuales son:

  • SETBbit, , : Establece, borra o complementa el bit especificado.CLRbitCPLbit
  • JBbit,offset: Saltar (a PC+ desplazamiento ) si el bit está activado
  • JNBbit,offset: Saltar si el bit está limpio
  • JBCbit,offset: Saltar si el bit está activado y borrar el bit.
  • MOVC,bit, : Mueve el bit especificado al bit de acarreo, o viceversa.MOVbit,C
  • ORLC,bit, : O el bit (o su complemento) en el bit de acarreoORLC,/bit
  • ANLC,bit, : Y el bit (o su complemento) en el bit de acarreoANLC,/bit

Un operando de bit se escribe en la forma address.number. Debido a que el indicador de acarreo es el bit 7 de la palabra de estado del programa direccionable por bits, las instrucciones , y son equivalentes más cortos de , y .SETBCCLRCCPLCSETBPSW.7CLRPSW.7CPLPSW.7

Programación

Hay varios compiladores de lenguajes de programación de alto nivel para el 8051. Hay varios compiladores de C disponibles para el 8051, la mayoría de los cuales permiten al programador especificar dónde debe almacenarse cada variable en sus seis tipos de memoria y proporcionan acceso a características de hardware específicas del 8051, como los bancos de registros múltiples y las instrucciones de manipulación de bits. Hay muchos compiladores de C comerciales. [ 22 ] Small Device C Compiler (SDCC) es un compilador de C de código abierto popular. [ 23 ] Otros lenguajes de alto nivel como C++ , Forth , [ 24 ] [ 25 ] [ 26 ] [ 27 ] BASIC , Object Pascal , Pascal , PL/M y Modula-2 están disponibles para el 8051, pero son menos utilizados [ 28 ] que C y el lenguaje ensamblador .

Dado que IRAM, XRAM y PMEM (solo lectura) comparten la dirección 0, los compiladores de C para la arquitectura 8051 proporcionan directivas pragma específicas u otras extensiones para indicar dónde se debe almacenar un dato en particular (por ejemplo, constantes en PMEM o variables que requieren acceso rápido en IRAM). Como los datos pueden estar en uno de los tres espacios de memoria, generalmente se proporciona un mecanismo para determinar a qué memoria apunta un puntero, ya sea restringiendo el tipo de puntero para que incluya el espacio de memoria o almacenando metadatos junto con el puntero.

Microcontroladores Intel 8031
Microcontrolador Intel D87C51

Intel descontinuó su línea de productos MCS-51 en marzo de 2007; [ 29 ] [ 30 ] sin embargo, hay muchos productos 8051 mejorados o propiedad intelectual de silicio que otros proveedores agregan regularmente.

El predecesor del 8051, el 8048 , se utilizó en el teclado del primer IBM PC , donde convertía las pulsaciones de teclas en un flujo de datos serie que se enviaba a la unidad principal del ordenador. Un Intel 8049 desempeñó una función similar en el Sinclair QL . El 8048 y sus derivados todavía se utilizan hoy en día.para teclados de modelo básico.

El 8031 ​​era una versión reducida del 8051 original que carecía de memoria ROM interna. Para utilizar este chip, era necesario añadir una memoria ROM externa que contuviera el programa que el 8031 ​​debía leer y ejecutar. Un chip 8051 podía venderse como un 8031 ​​sin ROM, ya que la ROM interna del 8051 se desactiva por el estado normal del pin EA en un diseño basado en el 8031. Un fabricante podía vender un 8051 como un 8031 ​​por diversas razones, como un código defectuoso en la ROM del 8051 o simplemente un exceso de oferta de 8051 y una escasez de 8031.

Microcontrolador Intel P8044AH

El 8044 (así como el 8344 sin ROM y el 8744 con EPROM) añadió un controlador SDLC al núcleo 8051 (especialmente para aplicaciones Bitbus ). [ 31 ]

El 8052 era una versión mejorada del 8051 original que contaba con 256  bytes de RAM interna en lugar de 128  bytes, 8  KB de ROM en lugar de 4  KB y un tercer temporizador de 16 bits. La mayoría de los microcontroladores modernos compatibles con el 8051 incluyen estas características.

El 8032 tenía las mismas características que el 8052, excepto que carecía de memoria ROM interna para programas.

El 8751 era un 8051 con  una EPROM de 4 KB en lugar de una ROM de 4  KB. Eran idénticos, excepto por el tipo de memoria no volátil. Este componente estaba disponible en un encapsulado cerámico con una ventana de cuarzo transparente sobre el chip para poder borrar la EPROM con luz ultravioleta . Los componentes relacionados son: el 8752 con una EPROM de 8 KB, el 8754 con una EPROM de 16 KB y el 8758 con una EPROM de 32 KB.   

Los microcontroladores 80C537 (sin ROM) y 80C517 (con ROM de 8 KB) son versiones CMOS diseñadas para la industria automotriz . Las mejoras incluyen principalmente periféricos nuevos y optimizados. El 80C5x7 cuenta con mecanismos de seguridad contra fallos, procesamiento de señales analógicas, capacidades de temporizador mejoradas y un periférico aritmético de 32 bits. Otras características incluyen:

  • Memoria RAM integrada de 256 bytes
  • 256 bits directamente direccionables
  • Memoria externa para programas y datos ampliable hasta 64  KB.
  • Convertidor analógico-digital de 8 bits con 12 entradas multiplexadas.
  • El periférico aritmético puede realizar multiplicaciones de 16×16 a 32 bits, divisiones de 32/16 a 16 bits, desplazamientos de 32 bits y operaciones de normalización de 32 bits.
  • Ocho punteros de datos en lugar de uno para el direccionamiento indirecto de la memoria de programa y de datos externos.
  • Instalaciones de vigilancia ampliadas
  • Nueve puertos de E/S
  • Dos interfaces seriales dúplex completo con generadores de velocidad de transmisión individuales.
  • Cuatro sistemas de interrupción de nivel de prioridad, 14 vectores de interrupción
  • Tres modos de ahorro de energía

Proveedores de derivados

Más de 20 fabricantes independientes producen procesadores compatibles con MCS-51.

Otros circuitos integrados o IP compatibles con el MCS-51 han sido desarrollados por Analog Devices , [ 32 ] Integral Minsk , [ 33 ] Kristall Kyiv , [ 34 ] y NIIET Voronezh . [ 13 ]

Utilizar como propiedad intelectual

Actualmente, los 8051 siguen estando disponibles como componentes discretos, pero se utilizan principalmente como núcleos de propiedad intelectual de silicio . [ 35 ] Disponibles en código fuente de lenguaje de descripción de hardware (como VHDL o Verilog ) o en forma de lista de conexiones FPGA , estos núcleos se integran normalmente en sistemas embebidos, en productos que van desde unidades flash USB hasta lavadoras y complejos sistemas de comunicación inalámbrica en un chip . Los diseñadores utilizan núcleos IP de silicio 8051 debido a su menor tamaño y menor consumo de energía, en comparación con procesadores de 32 bits como la serie ARM Cortex-M , MIPS y BA22.

Los diseños posteriores del núcleo 8051 han aumentado el rendimiento manteniendo la compatibilidad con el conjunto de instrucciones MCS-51 original. El Intel 8051 original era un motor de microcódigo que utilizaba 12 ciclos de microcódigo síncronos por ciclo de máquina para minimizar el número de puertas lógicas NMOS que consumían energía en resistencias pull-up pasivas. La mayoría de las instrucciones se ejecutaban en uno o dos ciclos de máquina. A la frecuencia de reloj máxima típica de 12  MHz, los tipos 8051 originales ejecutaban un millón de instrucciones de un ciclo, o 500 000 instrucciones de dos ciclos, por segundo. El cambio a CMOS con resistencias pull-up FET de canal P activas permite implementar el núcleo sin microcódigo. Los núcleos IP 8051 mejorados funcionan a un ciclo de reloj por ciclo de máquina. Con frecuencias de reloj de hasta 450  MHz, un procesador compatible con 8051 puede ejecutar hasta 450 millones de instrucciones por segundo.

Microcontroladores basados ​​en 8051

Tecnología de almacenamiento de silicio 89V54RD2
  • ABOV: Series MC94F, MC95F, MC96F
  • Analog Devices (anteriormente Maxim Integrated, originalmente Dallas): serie DS80, etc. [ 36 ]
  • Serie Cypress PSoC CY8C3xxxx , que tiene una interfaz USB 2.0 dedicada [ 37 ].
  • Jin Rui (marca CACHIP): Microcontroladores de 8 bits de la familia CA51Fx . [ 38 ]
  • Infineon: XC800
  • Mentor Graphics: M8051EW, etc., diseñado para Mentor por SYNTILL8 [ 39 ]
  • Megawin: series 74, 82, 84, 86, 87 y 89
  • Microchip (anteriormente Atmel ): AT89C51, AT89S51 , AT83C5134, etc. [ 9 ]
  • NXP: Series NXP700 y NXP900
  • Siemens de 8 bits: SAB 8035/8048, SAB 80512/80532, SAB 80513, SAB 8352-2/8352-5, SAB 80(C)515/80(C)535, SAB 83515, SAB 80(C)517/80(C)537, SAB 8051A/8031A, SAB 8052A/8032A, SAB 8052B/8032B, SAB80C52/80C32, SDA 30C164-2 (sin ROM) [ 40 ]
  • SoC de medición de electricidad Silergy : 71M6511, 71M6513, 71M6531, 71M6533, 71M6534, 71M6542, 71M6543 [ 41 ] SoC de medición de energía : 78M6631, 78M6618, 78M6613, 78M6612 [ 42 ]
  • Silicon Labs : serie C8051 y serie EFM8 [ 7 ]
  • Tecnología de almacenamiento de silicio : MCU FlashFlex51 (SST89E52RD2, SST89E54RD2, SST89E58RD2, SST89E516RD2, SST89V52RD2, SST89V54RD2, SST89V58RD2, SST89V516RD2) [ 43 ]
  • STC Micro: series STC89C51RC, STC90C51RC, STC90C58AD, STC10F08XE, STC11F60XE, STC12C5410AD, STC12C5202AD, STC12C5A60S2, STC12C5628AD, STC15F100, STC15F204EA, STC15F2K60S2, STC15F4K60S2, STC15F101W, STC15F408AD, STC15W104, STC15W408S, STC15W201S, STC15W408AS, STC15W1K16S y STC15W4K56S4 [ 44 ]
  • Taifatech TF470, backend RISC de ciclo único [ 45 ]
  • Familias de SoC de RF CC111x, CC24xx y CC25xx de Texas Instruments
  • WCH ( Nanjing Qinheng Microelectronics ): CH551, CH552, CH554, CH546, CH547, CH548, CH558, CH559 [ 46 ]

Variantes de procesadores de señales digitales (DSP)

Existen varias variantes con un procesador de señal digital (DSP) adicional de 16 bits (por ejemplo, para codificación/decodificación MP3 o Vorbis ) con hasta 675 millones de instrucciones por segundo (MIPS) [ 47 ] e interfaz USB 2.0 integrada [ 48 ] o como propiedad intelectual [ 49 ] .

Microcontrolador compatible con binario de 8 bits mejorado: familia MCS-151

En 1996, Intel anunció la familia MCS-151, una variante hasta 6 veces más rápida, [ 1 ] totalmente compatible a nivel binario y de conjunto de instrucciones con el 8051. A diferencia del 8051, el MCS-151 es una CPU segmentada, con un bus de código interno de 16 bits y una velocidad 6 veces superior. Intel también descontinuó la familia MCS-151, pero aún se encuentra ampliamente disponible en variantes compatibles a nivel binario y parcialmente mejoradas.

Microcontrolador compatible con binario de 8/16/32 bits: familia MCS-251

El microcontrolador 80251 de 8/16/32 bits con un espacio de direcciones de 16  MB ( 24 bits ) y un ciclo de instrucciones seis veces más rápido fue presentado por Intel en 1996. [ 1 ] [ 50 ] Puede funcionar como un 8051 de 8 bits, tiene direccionamiento lineal de 24 bits , una ALU de 8 bits, instrucciones de 8 bits, instrucciones de 16 bits, un conjunto limitado de instrucciones de 32 bits, 16 registros de 8 bits, 16 registros de 16 bits (8 de los cuales se superponen con pares de registros de 8 bits) y 10 registros de 32 bits (8 de los cuales se superponen con pares de registros de 16 bits). [ 51 ]

Incluye instrucciones extendidas [ 52 ] [ 53 ] y variantes posteriores con mayor rendimiento. [ 54 ] También está disponible como propiedad intelectual (PI). [ 55 ] Tiene una arquitectura segmentada de 3 etapas. La familia MCS-251 también fue descontinuada por Intel, pero está ampliamente disponible en variantes compatibles binarias y parcialmente mejoradas de muchos fabricantes.

Las nuevas instrucciones 80251 se asignan a códigos de operación en el rango x 8– x F , y se seleccionan utilizando el código de operación A5, anteriormente no utilizado, como prefijo de código de operación de una de dos maneras: [ 56 ] : 4–13

  • En el "modo binario", el funcionamiento es totalmente compatible con el 8051, y todas las instrucciones nuevas deben ir precedidas de A5 .
  • En el modo de código fuente, se debe agregar un byte de prefijo A5 a todas las instrucciones 8051 en el rango x6xF del código 8051 existente . (Esto generalmente lo realiza el ensamblador ). Los bytes de código de operación sin prefijo en este rango codifican las nuevas instrucciones 80251. (Los bytes de código de operación x6 x7 no están asignados, pero están disponibles para futuras expansiones).

En general , las nuevas instrucciones del 80251 tienen una longitud de dos bytes (sin incluir el prefijo A5 ), donde el primer byte especifica la operación y el segundo codifica dos operandos de registro de 4 bits, o un operando de registro y cuatro bits de código de operación adicionales.

Véase también

Referencias

  1. 1 2 3 "Microcontroladores Intel MCS 151 y MCS 251" . datasheets.chipdb.org .
  2. John Wharton (mayo de 1980). "Introducción a la familia de microcomputadoras de un solo chip Intel MCS-51" . Intel Corporation. Nota de aplicación AP-69.
  3. Panel de historia oral del microprocesador Intel 8051 (PDF) , Museo de Historia de la Computación , 16 de septiembre de 2008, archivado del original (PDF) el 25 de febrero de 2012 , consultado el 17 de noviembre de 2018..
  4. John Wharton (mayo de 1980). "Uso de las capacidades de procesamiento booleano del Intel MCS-51" (PDF) . Intel Corporation. Nota de aplicación AP-70. Archivado del original (PDF) el 3 de marzo de 2016.
  5. "Tutorial 8051: Interrupciones" . Archivado del original el 28/12/2012 . Consultado el 21/12/2012 .
  6. "8051 Software Development Toolset - Overview" . TASKING . Consultado el 13 de febrero de 2025 .
  7. 1 2 "Microcontroladores de 8 bits – MCU de 8 bits – EFM8" . Silicon Labs . Consultado el 21 de junio de 2021 .
  8. "Búsqueda en el sitio" . Maxim Integrated . Archivado del original el 24/06/2021 . Consultado el 21/06/2021 .
  9. 1 2 "MCU 8051" . Microchip Technology . Consultado el 21 de junio de 2021 .
  10. "TK80H51 Microcontrolador de 250 °C" . Tekmos Inc. Archivado del original el 20 de agosto de 2017. Consultado el 23 de agosto de 2017 . 
  11. "MICROCONTROLADOR DE ALTA TEMPERATURA 83C51" (PDF) . Honeywell . Consultado el 23 de agosto de 2017 .
  12. "Microcontroladores y microprocesadores" . Cobham Semiconductor Solutions. Archivado del original el 23 de agosto de 2017. Consultado el 23 de agosto de 2017 .
  13. ^ "Микроконтроллеры" [ Microcontroladores ] ( en ruso). Vorónezh: OAO "NIIET". Archivado desde el original el 22 de agosto de 2017 . Consultado el 22 de agosto de 2017 .
  14. "Enlace de descarga de YouTube: ELEC2700 – Radar ultrasónico 8051" . Archivado del original el 22/08/2017 . Consultado el 22/08/2017 .
  15. Archivado en Ghostarchivey la Wayback Machine: "ELEC2700 Tarea 1 2014: 1D Pong" . YouTube . 10 de abril de 2014.
  16. "ELEC2700 – Ingeniería Informática 2 (Libros de texto de la Universidad de Newcastle)" . Zookal . Archivado del original el 27 de julio de 2017. Consultado el 22 de agosto de 2017 .
  17. "ELEC2700 Tarea 3: Radar Ultrasónico" (PDF) . JustAnswer . 29 de junio de 2012. Archivado del original (PDF) el 17 de abril de 2023. Consultado el 30 de abril de 2023 .
  18. 1 2 3 Manual de usuario de Keil C51 . Keil, una división de ARM Inc. 2021. Consultado el 17 de mayo de 2021 .
  19. ACALL es una instrucción de llamada a subrutina de 2 bytes que puede acceder a ubicaciones dentro del mismo segmento de memoria de 2 kB. La dirección de memoria absoluta se forma con los 5 bits superiores del contador de programa (PC) y los 11 bits definidos por la instrucción.
  20. 1 2 "Hoja de datos Silergy 71M6513" . Circuitos integrados de medición de electricidad Silergy . Silergy Corp. Consultado el 17 de mayo de 2021 .
  21. 1 2 3 4 5 Manual del usuario de la familia de microcontroladores MCS-51 (PDF) . Número de publicación 121517: Intel. 1994. Recuperado el 17 de mayo de 2021 .{{cite book}}: CS1 mantenimiento: ubicación ( enlace )
  22. Han-Way Huang. "Diseño de sistemas embebidos con C8051" . pág. 238.
  23. Lewin ARW Edwards (2006). Así que quieres ser ingeniero de sistemas embebidos: La guía para la ingeniería de sistemas embebidos, desde la consultoría hasta la carrera corporativa . pág. 51. ISBN  978-0-7506-7953-4.
  24. Bradford J. Rodriguez. "CamelForth/8051" .
  25. Brad Rodriguez. "Avanzando Parte 7: CamelForth para el 8051" .
  26. "Desarrollo de SwiftX Forth para 8051" . Archivado del original el 24 de septiembre de 2015.
  27. "Compiladores cruzados MPE VFX Forth 7" . Archivado del original el 23/10/2014.
  28. Agarwal, Tarun (16 de septiembre de 2014). "Explicación detallada sobre la programación del 8051 en lenguaje ensamblador" . ElProCus - Proyectos electrónicos para estudiantes de ingeniería . Recuperado el 21 de octubre de 2024 .
  29. Ganssle, Jack (29 de mayo de 2006). "Intel se retira y descontinúa MCS-51" . Archivado del original el 13 de agosto de 2017.
  30. "Líneas de productos de microcontroladores MCS 51, MCS 251 y MCS 96, líneas de productos de procesadores Intel 186, Intel 386 e Intel 486, y el procesador RISC de 32 bits i960, PCN 106013-01, descontinuación del producto, motivo de la revisión: agregar información sobre hitos clave y revisar la descripción del cambio" (PDF) . Intel. 2 de mayo de 2006.
  31. "Microcontrolador de 8 bits de alto rendimiento 8044AH/8344AH/8744AH con controlador de comunicación serie integrado" (PDF) . Intel. Octubre de 1994.
  32. "Microconvertidor, ADC y DAC de 12 bits con MCU Flash de 62 kB integrado" (PDF) . analog.com . Archivado del original (PDF) el 28 de mayo de 2014. Consultado el 30 de abril de 2023 .
  33. ^ "Микроконтроллеры и супервизоры питания Серии 1880; 1881; 1842; 588; 1345; 5518АП1ТБМ" [ Microcontroladores y supervisores de energía Serie 1880; 1881; 1842; 588; 1345; 5518AP1TBM ] (en ruso). Minsk: OAO "Integral". Archivado desde el original el 1 de enero de 2017 . Consultado el 6 de enero de 2017 .
  34. ^ "Одконристальные микро-эвм" [ Microcomputadoras de un solo chip ] (en ruso). Kiev: Kristall. Archivado desde el original el 30 de mayo de 2012 . Consultado el 5 de enero de 2017 .
  35. Hussaini (20 de agosto de 2019). "¿Por qué tenemos que usar el 8051? ¿No es demasiado antiguo?" . Technobyte . Consultado el 5 de julio de 2023 .
  36. "Hoja de datos e información del producto DS80C320" . Analog Devices . Archivado del original el 14 de febrero de 2025. Consultado el 12 de febrero de 2025 .
  37. "PSoC 3 - Infineon Technologies" . Infineon . Archivado del original el 21/09/2022 . Consultado el 20/05/2023 .
  38. "Documentación" (en chino).
  39. "Syntill8 - Productos" . www.syntill8.com . Consultado el 21 de junio de 2021 .
  40. "Hoja de datos SDA30C164" (PDF) . www.semiee.com . Archivado del original (PDF) el 17 de junio de 2022. Consultado el 15 de mayo de 2022 .
  41. "Circuitos integrados de medición de Silergy" . Silergy Corp. Consultado el 12 de mayo de 2021 .
  42. "Circuitos integrados de medición de energía Silergy" . Silergy Corp. Consultado el 12 de mayo de 2021 .
  43. datasheetq.com. "Descarga de la hoja de datos en PDF del 89V54RD2 - Tecnología de almacenamiento de silicio" . www.datasheetq.com . Consultado el 18 de enero de 2020 .
  44. "Microcontrolador STC---STCmicro Technology Co,.Ltd" . www.stcmicro.com . Consultado el 19 de febrero de 2017 .
  45. https://www.ipmedia.cz/img.asp?attid=67387
  46. "Índice del sitio - Nanjing Qinheng Microelectronics Co., Ltd" . wch-ic.com . Consultado el 21 de junio de 2021 .
  47. "TI ofrece un nuevo DSP de audio de bajo costo y alto rendimiento para el hogar y el automóvil con el 8051" . Archivado del original el 13 de noviembre de 2016. Consultado el 6 de mayo de 2013 .
  48. "Hoja de datos del DSP de audio Atmel AT85C51SND3 con USB 2.0" (PDF) . Consultado el 30 de abril de 2023 .
  49. Salim, AJ; Othman, M.; Ali, MA Mohd (5 de octubre de 2006). "Integración del 8051 con DSP en FPGA de Xilinx". 2006 IEEE International Conference on Semiconductor Electronics . pp. 562–566 . doi : 10.1109/SMELEC.2006.380694 . ISBN  0-7803-9730-4. S2CID 21616742 vía IEEE Xplore. 
  50. Kenneth J Ayala (2005). El microcontrolador 8051. Thomson Delmar Learning. ISBN 978-1-4018-6158-2.
  51. "Descripción general de la arquitectura MCSÉ 251" (PDF) . chipdb.org . Consultado el 30 de abril de 2023 .
  52. "Arquitectura de Temic TSC80251" (PDF) .
  53. "Guía del programador Atmel TSC80251" (PDF) . Archivado del original (PDF) el 4 de marzo de 2016. Consultado el 6 de mayo de 2013 .
  54. "Microcontrolador DQ80251 de 32 bits" (PDF) . DCD . Archivado del original (PDF) el 4 de enero de 2014. Consultado el 6 de mayo de 2013 .
  55. "Microcontrolador R80251XC de 32 bits" (PDF) . Evatronix .
  56. Manual del usuario del microcontrolador integrado 8XC251SA, 8XC251SB, 8XC251SP, 8XC251SQ (PDF) . Mayo de 1996.

Lecturas adicionales

Libros
  • Mazidi; McKinlay; Mazidi (2012). El microcontrolador 8051: Un enfoque de sistemas . Pearson. 648 págs. ISBN 978-0-13-508044-3.
  • Schultz, Thomas (2008). C y el 8051 (4.ª  ed.). Thomas W. Schultz. 464 págs. ISBN 978-0-9783995-0-4.
  • Steiner, Craig (2005). El microcontrolador 8051/8052: arquitectura, lenguaje ensamblador e interfaz de hardware . Universal-Publishers. 348 págs. ISBN 978-1-58112-459-0.
  • Calcutt; Cowan; Parchizadeh (2000). Microcontroladores 8051: Hardware, Software y Aplicaciones . Elsevier. 329 págs. ISBN 978-0-340-67707-0.
  • Axelson, Jan (1994). El libro de ideas sobre microcontroladores: circuitos, programas y aplicaciones con el microcontrolador 8052-BASIC . Lakeview Research LLC. 277 págs. ISBN 978-0-9650819-0-0.
  • Payne, William (19 de diciembre de 1990) [1990]. Controlador integrado FORTH para la familia 8051 (tapa dura). Boston: Academic Press. 528 págs. ISBN 978-0-12-547570-9.
Intel
  • Manual del usuario de la familia de microcontroladores MCS-51 ; Intel; 1994; número de publicación 121517.
  • Guía del usuario del ensamblador de macros MCS-51 ; Intel; número de publicación 9800937.
  • Controladores integrados de 8 bits ; Intel; 1991; número de publicación 270645-003 .
  • Manual de microcontroladores ; Intel; 1984; número de publicación 210918-002 .
  • Especificación arquitectónica preliminar y descripción funcional del microcontrolador 8051 ; Intel; 44 páginas; 1980.
Varios
  • Hennig-Roleff, Werner (1993-02-01) [1988]. "HEX.DOC: EASM51 - HEX Format (elektor Assembler)" . SIM51 . 1.04 (en alemán). Archivado del original el 11 de agosto de 2017. Recuperado el 8 de diciembre de 2021 .(Además del formato EASM , el archivo HEX.DOC analiza varios formatos de archivos hexadecimales de Intel , Motorola , Tektronix , MOS Technology y elektor ).

Logotipo de Wikimedia CommonsContenido multimedia relacionado con MCS-51 en Wikimedia Commons

  • Tutorial completo para microcontroladores 8051
  • El sitio web de origen para tutoriales y simulador para 8051
  • Circuitos de interfaz básicos del 8051
  • Implementación de código abierto en VHDL 8051 (Oregano Systems)