En 1980 aproximadamente, los fabricantes de circuitos integrados iniciaron la
difusin de un nuevo circuito para control, medicin e instrumentacin al que
llamaron microcomputador en un slo chip o de manera ms exacta MICROCONTROLADOR. Un microcontrolador es un circuito integrado que contiene toda la estructura (arquitectura) de un microcomputador, o sea CPU, RAM, ROM y circuitos de entrada y salida. Los resultados de tipo prctico, que pueden lograrse a partir de stos elementos, son sorprendentes. Algunos microcontroladores ms especializados poseen adems convertidores anlogo digital, temporizadores, contadores y un sistema para permitir la comunicacin en serie y en paralelo. Se pueden crear muchas aplicaciones con los microcontroladores. Estas aplicaciones de los microcontroladores son ilimitadas (el lmite es la imaginacin) entre ellas podemos mensionar: sistemas de alarmas, juego de luces, paneles publicitarios, etc. Controles automticos para la Industria en general. Entre ellos control de motores DC/AC y motores de paso a paso, control de mquinas, control de temperatura, control de tiempo, adquisicin de datos mediante sensores, etc. ALGUNOS TIPOS DE MICROCONTROLADORES... ALTAIR ALTAIR es el nombre genrico de una familia de microcontroladores de propsito general compatibles con la familia 51. Todos ellos son programables directamente desde un equipo PC mediante nuestro lenguaje macroensamblador, o bien mediante otros lenguajes disponibles para la familia 51 (BASIC, C, ...). Los microcontroladores ALTAIR disponen de un microprocesador de 8 bits 100% compatible a nivel de cdigo, 256 bytes de memoria interna, 128 registros especiales de funcin, puertos de entrada/salida de propsito general, 111 instrucciones y posibilidad de direccionar 128 Kbytes. Unos microcontroladores ALTAIR se diferencian de otros por el nmero de entradas salidas, perifricos (DAC, ADC, WATCHDOG, PWM, velocidad de ejecucin, etc.). Por lo que la eleccin de un modelo u otro depender de las necesidades. Como entrenador o sistema de iniciacin recomendamos la utilizacin de un ALTAIR 32 BASICO o bien un ALTAIR 535A completo. En proyectos avanzados o desarrollos profesionales puede ser preferible un ALTAIR 537 A. Tanto al 535 como al 537 se pueden complementar con nuestra EMULADOR EPROM PARA 535/537, que actuar como un emulador de EPROMs. Con ello facilitar notablemente la puesta a punto de las aplicaciones. INTEL (La familia 8051) El 8051 es el primer microcontrolador de la familia introducida por Intel Corporation. La familia 8051 de microcontroladores son controladores de 8 bits capaces de direccionar hasta 64 kbytes de memoria de programa y una separada memoria de datos de 64 kbytes. El 8031(la versin sin ROM interna del 8051, siendo esta la nica diferencia) tiene 128 bytes de RAM interna (el 8032 tiene RAM interna de 256 bytes y un temporizador adicional). El 8031 tiene dos temporizadores/contadores, un puerto serie, cuatro puertos de entrada/salida paralelas de propsito general (P0, P1, P2 y P3) y una lgica de control de interrupcin con cinco fuentes de interrupciones. Al lado de la RAM interna, el 8031 tiene varios Registros de Funciones especiales(SFR)(Special Function Registers) que son para control y registros de datos. Los SFRs tambin incluyen el registro acumulador, el registro B, y el registro de estado de programa(Program Status Word)(PSW), que contienen los Flags del CPU. Bloques separados de memoria de cdigo y de datos se denomina como la Arquitectura Harvard. El 8051 tiene dos seales de lectura separadas, los pines RD(P3.7, pin 17) y PSEN(pin 29). El primero es activado cuando un byte va ser ledo desde memoria de datos externo; el otro, cuando un byte va ser ledo desde memoria de programa externo. Ambas de estas seales son seales activas en nivel bajo. Esto es, ellos son aclarados a nivel lgico 0 cuando estn activados. Todo cdigo externo es buscado desde memoria de programa externo. En adicin, bytes de memoria de programa externo pueden ser ledos por instrucciones de lectura especiales, tal como la instruccin MOVC. Hay tambin instrucciones separadas para leer desde memoria de datos externo, tal como la instruccin MOVX. Esto significa que las instrucciones determinan que bloque de memoria es direccionado, y la seal de control correspondiente, o RD o PSEN, es activado durante el ciclo de lectura de memoria. Un nico bloque de memoria puede ser mapeado para actuar como memoria de datos y de programa. Esto es lo que se llama la arquitectura Von Neuman. Para leer desde el mismo bloque usando o la seal RD o la seal PSEN, las dos seales son combinadas con una operacin AND lgico. La arquitectura Harvard es algo extrao en sistemas de evaluacin, donde cdigo de programa necesita ser cargado en memoria de programa. Adoptando la arquitectura Von Neuman, el cdigo puede ser escrito a la memoria como bytes de datos y luego ejecutado como instrucciones de programa. La ROM interna del 8051 y el 8052 no pueden ser programados por el usuario. El usuario debe suministrar el programa al fabricante, y el fabricante programa los microcontroladores durante la produccin. Debido a costos, la opcin de la ROM programado por el fabricante no es econmica para produccin de pequeas cantidades. El 8751 y el 8752 son las versiones Erasable Programmable Read Only Memory(EPROM) del 8051 y el 8052. Estos pueden ser programados por los usuarios. Durante la decada pasada muchos fabricantes introducieron miembros mejorados del microcontrolador 8051. Las mejoras incluyen ms memoria, ms puertos, convertidores anlogo-digital; ms temporizadores, ms fuentes de interrupcin, watchdog timers, y subsistemas de comunicacin en red. Todos los microcontroladores de la familia usan el mismo conjunto de instrucciones, el MCS- 51. Las caracteristicas mejoradas son programadas y controladas por SFRs adicionales.
Descripcion del 8051 Los microcontroladores de la familia At89... estan basados en el microprocesador 8051 de 8 bits, poseen 4 puertos paralelos de entrada y salida, uno de los puertos a su vez hace de control contiene; un puerto serie, dos entradas para Timer/Contador de 16 bits, dos entradas para interrupciones externas, las seales de RD y WR para la toma o almacenamiento de datos externos en RAM, la seal de PSEN para la lectura de instrucciones almacenadas en EPROM externa. Gracias a estas tres seales el 8051 puede direccionar 64K de memoria de programa y 64K de memoria de datos separadamente, es decir un total de 128Kb. Adems cuenta con 128 bytes de memoria RAM interna (o 256 en el caso del At89c52 y el At89c55).
Descripcion del Microcontrolador de Atmel At89c51 a continuacion la descripcion de pines del At89c51:
El pin 20 Vss para coneccion a Tierra 0V referencia. El pin 40 Vcc para alimentacion de 5 voltios. Pines 39-32. El Port 0, es un puerto bidireccional con salidas en colector abierto. Requiere de resistencias externas para su funcionnamiento rango recomendable 1k a 10k ohmios, recomendable utilizar red de resistencias de 10 pines. Pines 1-8. El Port 1. Pines 21-28. El Port 2. Pines 10-17. El Port 3, tambien funciona como puerto de control. Pin 10. RxD(P3.0): Puerto serie de entrada. Pin 11. TxD(P3.1): Puerto serie de salida. Pin 12. INT0(P3.2): Interrupcin externa cero. Pin 13. INT1(P3.3): Interrupcin externa uno. Pin 14. T0(P3.4): Entrada externa timer0. Pin 15. T1(P3.5): Entrada externa timer1. Pin 16. WR(P3.6): Habilitador de escritura para memoria externa de datos. Pin 17. RD (P3.7): habilitador de lectura para la memoria externa de datos. Pin 9. RST Reset. Una entrada alta en esta lnea durante dos ciclos de maquina mientras el oscilador est corriendo detiene el dispositivo. Un resistor interno conectado a Vss permite un alto en la fuente usando solamente un capacitor externo a VCC. Pin 30. ALE Address Latch Enable. Un pulso positivo de salida permite fijar el byte bajo de la direccin durante el acceso a una memoria externa. En operacin normal, ALE es emitido en un rango constante de 1/6 de la frecuencia del oscilador, y puede ser usada para cronometrar. Note que un pulso de ALE es emitido durante cada acceso a la memoria de datos externos. Pin 29. PSEN Program Store Enable. Habilitador de lectura para memoria de programas externos. Cuando el 8031B/8051 est ejecutando un cdigo de una memoria de programas externos, PSEN es activada dos veces cada ciclo de mquina, excepto cuando se accesa la memoria de datos externos que omiten las dos activaciones del PSEN externos. PSEN tampoco es activada cuando se usa la memoria de programas internos. Pin 31. EA External Access Enable. EA debe mantenerse externamente en posicin baja para habilitar el mecanismo que elige el cdigo de las localizaciones de la memoria de programas externos, 0000H y 0FFFH. Si EA se mantiene en posicin alta, el dispositivo ejecuta los programas que se encuentran en la memoria interna ROM, a menos que el contador del programa contenga una direccin mayor a 0FFFH. Pin 19. XTAL1 Crystal 1. Es la entrada del cristal para el circuito oscilador (generador del reloj interno) que amplifica e invierte la entrada. Pin 18. XTAL2 Crystal 2. Es la salida del amplificador oscilador inversor.
Memoria del At89c51 La memoria del sistema del At89c51 se clasifica en tres partes fundamentales: La primera, llamada memoria de programa, en donde se encuentran todas las instrucciones que van a ser ejecutadas por el At89c51, es decir, el programa de trabajo. Algunas versiones de la familia At89cxxx cuentan con memoria de programa interna de distintos valores revisar hoja de datos. Cuando se requiere trabajar con una localidad arriba de sta, la memoria del programa (externa) es seleccionada mediante la activacin de la seal PSEN (estado bajo). El mximo espacio de memoria de programa que se puede accesar es de 64KB. El segundo espacio de memoria denominado, memoria de datos es accesado mediante la activacin de las seales RD y WR, durante la lectura o escritura de datos respectivamente. En este espacio del 8051 toma todos valores que se encuentran en memoria como DATOS, es decir, el At89c51 no puede ejecutar ninguna instruccin que se encuentre aqu almacenada. El At89c51 puede direccionar tambin 64KB de memoria de datos. El tercer espacio de memoria es denominado como memoria RAM interna, el cual se subdivide en 128 bytes de memoria bajos y en 128 bytes de memoria altos. En los primeros 128, se encuentran 4 bancos de 7 registros cada uno. Estos registros son de gran ayuda para la simplificacin de los programas, debido a que cada uno de ellos nos permiten almacenar datos momentneamente y realizar un basto nmero de instrucciones del At89c51. Tambin dentro de este espacio, se encuentran 16 bytes (del 20H al 2FH) que pueden ser direccionados directamente por bit. En la parte alta de la memoria RAM interna, se encuentran el contenido de los Registros de Funciones Especiales, formado por Puertos, Registros de Control, Acumuladores, Registros de interrupcin, etc. Todos estos registros los veremos detalladamente posteriormente.