El
Intel 8051
es un
microcontrolador
(μC) desarrollado por
Intel
en 1980 para uso en productos
embebidos
. Es un microcontrolador muy popular.
Los nucleos 8051 se usan en mas de 100 microcontroladores de mas de 20 fabricantes independientes como
Atmel
,
Dallas Semiconductor
,
Philips
,
Winbond
, entre otros.
La denominacion oficial de Intel para familia de μCs 8051 es
MCS 51
.
Especificaciones
[
editar
]
Hardware
[
editar
]
Este microcontrolador esta basado en la
Arquitectura de von Neumann
con memoria segregada (es decir, existen espacios de direcciones separados para codigo y datos, pero las memorias comparten los buses internos de datos y direcciones). Aunque originariamente fue disenado para aplicaciones simples, se permite direccionar 64
KB
de
ROM
externa y 64 KB de
RAM
por medio de lineas separadas
chip select
para programa y datos.
Adicionalmente, el microcontrolador contiene una memoria interna, dividida en dos partes: los SFR y memoria de proposito general. Los SFR (Special Function Registers), son los registros proporcionados por el microcontrolador, y tienen asignadas direcciones en esta memoria interna. El acceso a esta memoria interna es mas rapido que el acceso a la memoria externa, pero es de tamano limitado. Parte de esta memoria interna ademas se usa como pila durante las llamadas a funcion y el proceso de interrupciones.
Una caracteristica particular del 8051 es la inclusion de una unidad de proceso booleano que permite que operaciones de nivel de
bit
logica booleana
se ejecuten directa y eficientemente en registros internos. Esto ha hecho que el 8051 sea muy popular en aplicaciones de control industrial.
Otra caracteristica muy valorada es que tiene cuatro conjuntos separados de registros. A menudo se usa esta caracteristica para reducir la latencia de interrupcion. (La rutina que maneja la interrupcion declara usar otro conjunto de registros, evitandose de esta manera tener que salvar en la pila los registros originales).
La mayoria de los 8051 incluyen una o dos
UARTs
, dos o tres temporizadores, 128 o 256 bytes de RAM interna (16 bytes de los cuales son direccionables a nivel de bit), cuatro o cinco registros de entrada/salida y entre 0k-54K de memoria interna de programa. El nucleo 8051 original ejecuta un ciclo maquina cada 12 ciclos de reloj, requiriendo la mayoria de instrucciones uno o dos ciclos maquina. Pero actualmente la mayoria de fabricantes ofrecen versiones mejoradas que solo requieren de 2 a 4 ciclos de reloj por cada instruccion maquina.
Los microcontroladores 8051 modernos ofrecen muchas mejoras sobre el original. Mejoras comunes incluyen
watchdog timers
(un temporizador programable que "resetea" el microcontrolador si no se refresca en cierto tiempo), osciladores internos, memoria de programa
Flash ROM
interna, codigo de inicializacion en ROM, almacenamiento en EEPROM interna,
I²C
,
SPI
,
USB
, generadores
PWM
, conversores analogicos
A/D
y
D/A
, relojes de tiempo real
RTC
, temporizadores y contadores extra, facilidades de
depuracion
internas, mas fuentes de interrupcion, modos de bajo consumo, interfaz
CAN
, etc.
Software
[
editar
]
Existen varios compiladores de
lenguaje C
disponibles para el 8051, asi como en
lenguaje ensamblador
. La mayoria anaden extensiones al lenguaje que permiten al programador especificar por ejemplo el tipo de memoria donde se ubicara la variable, especificar manejadores de interrupcion, especificar el banco de registros, acceder a instrucciones especiales de manipulacion de bits...
El predecesor del 8051, el
8048
, se uso en el teclado del primer
IBM PC
, donde convertia pulsaciones de tecla en un stream serie que se envia a la unidad central del ordenador. El 8048 y sus derivados aun se usan actualmente en
teclados
basicos.
Versiones
[
editar
]
El
8031
fue una version reducida del Intel 8051 original que no contiene memoria interna.
El
8052
fue una version mejorada del Intel 8051 original con:
- 256 bytes de RAM interna, en vez de 128 bytes
- 8 kB de ROM, en vez de 4 kB
- un tercer temporizador de 16-bit
Ademas de todas las facilidades de Timers que poseen estos controladores, estos cuentan con diferentes sistemas de comunicacion serial y paralela.
Vease tambien
[
editar
]