524
Microcontroladores. El 8051 de la INTEL. 1 Índice. Tema 1 Microprocesadores, Microcomputadoras y Microcontroladores. 1.1 Introduciéndonos en el Tema. 1.2 Haciendo un poco de historia. 1.3 Principales fabricantes de Microcontroladores. 1.4 Los Microcontroladores por dentro. Tema 2 El microcontrolador 8051. 2.1 Los microcontroladores de la INTEL. 2.2 Los parientes cercanos, la Familia CMS - 52. 2.3 La Memoria Interna del microcontrolador 8051. 2.4 Las Instrucciones para trabajar con la Memoria Interna. Tema 3 El Repertorio de Instrucciones del 8051. 3.1 Moviendo un bloque de datos. 3.2 Repertorio de Instrucciones. Tema 4 Elementos imprescindibles en un sistema con el 8051. 4.1 Conociendo al microcontrolador 8051. 4.2 Dándole alimentación al microcontrolador. 4.3 Sincronizando la operación del microcontrolador. 4.4 Iniciando la operación del microcontrolador. 4.5 Haciendo programas para el microcontrolador. Tema 5 Conectando dispositivos externos al microcontrolador. 5.1 Los Puertos del 8051. 5.2 El Puerto 1. 5.3 El Puerto 3. 5.4 El Puerto 2. 5.5 El Puerto 0. Tema 6 Desarrollando aplicaciones simples con el Microcontrolador 8051. 6.1 Tomando Decisiones. 6.2 Secuencia de Eventos. 6.3 Trabajando con Tablas. 6.4 Trabajando con Display a Cristal Liquido. 6.5 Trabajando con Teclas del tipo ´Push Botom´. 6.6 Eliminando el efecto indeseable del Rebote. 6.7 Ejercicios Propuesto. Tema 7 La Interrupción en el 8051.

Microcontroladores. El 8051 de Intel

Embed Size (px)

Citation preview

  • Microcontroladores. El 8051 de la INTEL. 11

    ndice. Tema 1 Microprocesadores, Microcomputadoras y Microcontroladores. 1.1 Introducindonos en el Tema. 1.2 Haciendo un poco de historia. 1.3 Principales fabricantes de Microcontroladores. 1.4 Los Microcontroladores por dentro. Tema 2 El microcontrolador 8051. 2.1 Los microcontroladores de la INTEL. 2.2 Los parientes cercanos, la Familia CMS - 52. 2.3 La Memoria Interna del microcontrolador 8051. 2.4 Las Instrucciones para trabajar con la Memoria Interna. Tema 3 El Repertorio de Instrucciones del 8051. 3.1 Moviendo un bloque de datos. 3.2 Repertorio de Instrucciones. Tema 4 Elementos imprescindibles en un sistema con el 8051. 4.1 Conociendo al microcontrolador 8051. 4.2 Dndole alimentacin al microcontrolador. 4.3 Sincronizando la operacin del microcontrolador. 4.4 Iniciando la operacin del microcontrolador. 4.5 Haciendo programas para el microcontrolador. Tema 5 Conectando dispositivos externos al microcontrolador. 5.1 Los Puertos del 8051. 5.2 El Puerto 1. 5.3 El Puerto 3. 5.4 El Puerto 2. 5.5 El Puerto 0. Tema 6 Desarrollando aplicaciones simples con el Microcontrolador 8051. 6.1 Tomando Decisiones. 6.2 Secuencia de Eventos. 6.3 Trabajando con Tablas. 6.4 Trabajando con Display a Cristal Liquido. 6.5 Trabajando con Teclas del tipo Push Botom. 6.6 Eliminando el efecto indeseable del Rebote. 6.7 Ejercicios Propuesto. Tema 7 La Interrupcin en el 8051.

  • Microcontroladores. El 8051 de la INTEL. 22

    7.1 Encuesta o Interrupcin. 7.2 El Controlador Interno de Interrupciones del 8051. 7.3 Atendiendo a los dispositivos que solicitan Interrupcin. 7.4 El proceso de interrupcin en el Microcontrolador. Tema 8 Sincronizando eventos impredecibles en el tiempo. 8.1 Atendiendo una Tecla del tipo Push Botom por Interrupcin. 8.2 Termmetro Digital. 8.3 Sincronizando la llegada de datos desde un Teclado ASCII-Paralelo. 8.4 Generador de avisos Tema 9 Los Temporizadores del 8051. 9.1 Los Temporizadores por dentro. 9.2 Los Registros TMOD y TCON. 9.3 Contando tiempo o eventos. 9.4. Los Modos de Trabajo de los Temporizadores. 9.5 Los Temporizadores y la Interrupcin. Tema 10 El Puerto Serie Asincrnico empotrado en el Microcontrolador 8051. 10.1 El Puerto Serie Asincrnico del 8051. 10.2 Los Modos de Operacin del Puerto Serie del 8051. Tema11 Aplicaciones de mediana complejidad con el Microcontrolador 8051. 11.1 Frecuencimetro Digital. 11.2 Controlador de Semforo. 11.3 Medidor de la Velocidad y de la Direccin del Viento. 11.4 Mural Dinamico. Tema 12 El Microcontrolador 8051 trabaja como Microprocesador. 12.1 Los Buses Externos del Microcontrolador 8051. 12.2 Modo Especial de Trabajo del Microcontrolador 8051. 12.3 Instrucciones para el trabajo con Memoria de Datos Externa. 12.4 Ejemplo de sistema expandido. 12.5 Diseo de un Data Logger. 12.6 Diseando con el Microcontrolador 8031.

  • Microcontroladores. El 8051 de la INTEL. 33

    Tema 1. Microprocesadores, Microcomputadoras y Microcontroladores. 1.1 Introducindonos en el Tema. Cuando en al ao 1971 la Compaa norteamericana INTEL irrumpa en el mercado con un circuito

    integrado digital cualitativamente nuevo a los existentes hasta ese momento, al que se le llamo

    Microprocesador, comenzaba una nueva era en el diseo de los sistemas digitales. Ahora el

    diseador contaba para sus diseos con un circuito que las tareas que realizaba venan dadas por

    un programa desarrollado a partir de un conjunto de instrucciones que le brindaba el fabricante

    para trabajar con dicho circuito.

    Esto permiti traer al campo del diseo de los sistemas digitales tcnicas hasta ese momento

    exclusivas para el diseo de las granes computadoras y las minicomputadoras. Se poda decir que

    el diseador contaba con una computadora para resolver su aplicacin.

    Por su puesto en los primeros aos los recursos que adornaban a un microprocesador dado

    estaban limitados, fundamentalmente en cuanto a capacidad de memoria para almacenar los

    programas y los datos y con la velocidad de procesamiento, quizs de ah viene el nombre de

    Microprocesador. Esta situacin no duro mucho y con relativa rapidez salan nuevas versiones de

    microprocesadores, cada uno de ellos aventajando a su antecesor en cuanto a estos dos aspectos

    tan importantes. Esto fue propiciando la idea de emplear fundamentalmente a los

    microprocesadores en el desarrollo de Computadoras de Propsito General cada vez ms potentes

    y con precios muy competitivos. A estos nuevos sistemas se le dio el nombre de

    Microcomputadora.

    No obstante, quedaba un gran campo de aplicaciones, fundamentalmente en la instrumentacin y

    el control automtico, que dada la envergadura de los mismo no se ajustaba el empleo de las

    nuevos sistemas en su solucin. Nuevamente INTEL se percata de este segmento del mercado al

    que no se ajustaba el desarrollo vertiginoso que iban tomando los microprocesadores y saca a

    mediados de la dcada de los aos 70 un circuito integrado con caractersticas muy similares a

    estos a los que les dio el nombre de Microcomputadora en una Pastilla. As surge al mercado la

    familia CMS-48 de la que constituye su principal representante el 8748. Estos circuitos

    constituyeron la gnesis de los circuitos que hoy se conocen con el nombre de Microcontroladores.

    A partir de este momento, el nmero de productos en el mercado que funcionan en base a uno o

    varios microcontroladores aumenta de forma exponencial y prcticamente no quedan campos de la

    vida actual en los que no encontremos equipos gobernados por el programa que se ejecuta en uno

    de estos dispositivos.

  • Microcontroladores. El 8051 de la INTEL. 44

    Dentro del propio campo de las Microcomputadoras, aparente territorio dominado por los

    Microprocesadores, encontramos cada da ms la presencia de estos circuitos donde casi todos

    sus perifricos basan su funcionamiento en el programa ejecutado por un Microcontrolador.

    Ejemplo de algunos de estos dispositivos que podemos mencionar. lo constituyen el mouse, el

    teclado, la impresora, etc.

    Los Microcontroladores han irrumpido tambin con fuerza en nuestras casas, fundamentalmente

    en los equipos llamados electrodomsticos que basan su funcionamiento en estos circuito. Ejemplo

    de ello son, las lavadoras, los hornos, los televisores, los videos, los equipos de msica, los

    sistemas de alarmas, etc. Segn publicaciones especializadas en esta temtica en los Estados

    Unidos se prev que para el ao 2010 en una casa tpica de este pas se encuentren aplicados

    aproximadamente entre 100 y 150 microcontroladores controlando la operacin de diferentes

    elementos de la misma.

    Dentro del propio campo de las construcciones, cuando hablamos de edificios INTELigentes

    encontramos en los sistemas de supervisin y vigilancia la presencia de estos circuitos para

    optimizar el rendimiento de ascensores, calefaccin, alarmas de incendio, robo, etc.

    Otros campos de aplicacin lo constituyen:

    Los aparatos porttiles y de bolsillo. Las Mquinas expendedoras y juguetera. La Instrumentacin. La Industria de automocin. El Control industrial. La Robtica. La Electromedicina. Los Sistema de navegacin espacial. La Domtica.

    Por lo que se puede decir sin temor a equivocarnos que, hoy en da ningn especialista que se

    dedique al diseo de sistemas digitales puede estar ajeno al desarrollo de los Microcontroladores y a como se esta moviendo el mercado cada vez ms amplio y competitivo de estos circuitos.

    En este momento darle respuestas a las siguientes preguntas podra constituir un elemento

    imprescindible para poder seguir adelante en el estudio de los Microcontroladores.

  • Microcontroladores. El 8051 de la INTEL. 55

    Que es un Microcontrolador?, Que lo diferencia de un Microprocesador? Qu diferencia existe entre un Microcontrolador y los tan conocidos y populares Microprocesadores? Definamos primeramente al Microprocesador. Definiremos como microprocesador a un Circuito

    Integrado de Muy Alta Escala de Integracin, VLSI, que contiene una Unidad Central de Procesos,

    una Unidad Aritmtico y Lgica y un conjunto de Registros, al que se le pueden conectar

    externamente Mdulos de Memoria y de Puertos de Entrada/Salida, lo que permite la configuracin

    de un Computador mediante la interconexin de varios circuitos integrados. Un Repertorio de

    Instrucciones propio y definido por el fabricante le permitir al diseador configurar el programa,

    que almacenado en uno de los Mdulos de Memoria ser ejecutado por el microprocesador y

    gobernar las operaciones de este y del Computador. Es comn llamar a este Computador, como

    ya se defini anteriormente, Microcomputadora.

    Por su parte, podramos decir que un Microcontrolador es la versin industrial de un

    Microprocesador, donde la preocupacin de los fabricantes no esta tanto en el aumento de la

    capacidad de almacenamiento y de procesamiento, sino en brindar un conjunto de recursos

    integrados en el circuito que constituyan elementos significativos a la hora de enfrentar la solucin

    de una aplicacin dada. Algunos de estos circuitos lo constituyen:

    Memoria no voltil para contener el programa para la aplicacin dada. Memoria de lectura y escritura para guardar datos. Lneas de Entrada/Salida digitales que agrupadas en forma de Puertos permiten la

    conexin de los diferentes elementos que conforman la aplicacin.

    Circuito de reloj interno. Temporizadores. Modulos de Captura. Puertos Series Sincronicos y Asincronicos. Perro guardin. Convertidores A/D y D/A.

    Un Microprocesador es un sistema abierto con el que el diseador puede construir su

    Microcomputadora con las caractersticas que el desee, mediante el acople de los circuitos necesarios, ver Figura 1.1.1 a, mientras que un Microcontrolador es un sistema cerrado, que

    contiene un computador completo, de prestaciones limitadas, el que no puede ser modificado por

    el diseador, ver Figura 1.1.1 b.

  • Microcontroladores. El 8051 de la INTEL. 66

    Esta diferencia marca las posibilidades que brindan cada uno de estos dispositivos al diseador

    para la solucin de sus aplicaciones. Mientras que un Microcontrolador puede resolver

    determinadas aplicaciones por si solo sin la necesidad de ayuda de otros componentes en el

    sistema, los Microprocesadores siempre necesitan de otros dispositivos que lo apoyen en la solucin de una aplicacin dada por muy pequea que esta sea.

    FFigura 1.1.1 (a) Microcomputadora basada en un Microprocesador.

    (b) Microcontrolador. Esto que aparenta favorecer a los microcontroladores sobre los microprocesadores a la hora de

    escoger con cual resolver una aplicacin dada no resulta de esta manera en todos los casos.

    Debemos tomar en consideracin tambin para podernos hacer un juicio justo que permita

    establecer una comparacin correcta los recursos limitados con que cuentan, que por lo general,

    los Microcontroladores y la facilidad de expansin y modificacin con que cuentan los Microprocesadores. Por lo que una buena pregunta a la que deberamos intentar dar respuesta en

    este momento lo podra constituir.

    Cundo utilizar un Microcontrolador y cuando utilizar un Microprocesador para solucionar una aplicacin dada? Como pasa siempre en la ingeniera no existe una receta que al usted aplicarla le de la respuesta

    deseada para cualquier tipo de aplicacin. No obstante, nos atreveremos a brindarle los dos

    consejos siguientes:

  • Microcontroladores. El 8051 de la INTEL. 77

    Si la aplicacin a resolver es lo suficientemente pequea que permita ser resuelta solo con los recursos internos del microcontrolador y no se prev su expansin futura, no vacile,

    resuelva la aplicacin con un sistema basado en el Microcontrolador en cuestin.

    Si la aplicacin a resolver no es lo suficientemente pequea como para ser resuelta solo con los recursos internos del Microcontrolador y por lo tanto este necesita de dispositivos

    que lo apoyen y que le deben ser conectados externamente o su ampliacin futura en un

    corto plazo esta prevista, tome papel y lpiz y saque cuenta de que le resulta mas

    econmico.

    Por su puesto nunca usted debe olvidar los campos de aplicacin para los que son concebidos los

    Microcontroladores por parte de los fabricantes, ya que estos brindan todo un conjunto de facilidades al diseador y al programador en la solucin de dichas aplicaciones.

    El estado del arte actual en la fabricacin de Microcontroladores y Microprocesadores no es ms que el reflejo del desarrollo tecnolgico alcanzado por las compaas que se dedican a la

    fabricacin de estos dispositivos. Este desarrollo ha permitido el aumento de forma creciente de la

    cantidad de transistores por unidad de rea en los circuitos integrados permitiendo que estos

    dispositivos realicen tareas ms complicadas. Este proceso fue predicho por Moore en fecha tan

    temprana como a mediados de la dcada de los aos 60 cuando defini lo que ms tarde se

    conoci como la Ley que lleva su nombre en la que predeca, del punto de vista cuantitativo, a que

    velocidad iba a ocurrir este desarrollo. Moore planteo que, ...el nmero de transistores por mm 2 en un circuito integrado se duplicara cada 2 aos. Esta ley se ha venido cumpliendo con una buena precisin tal y como lo muestra la grafica de la figura 1.1.2.

    Figura 1.1.2 Progresin de la integracin de transistores por mm 2 en un circuito integrado. Ley de Moore.

  • Microcontroladores. El 8051 de la INTEL. 88

    Les proponemos con el objetivo de lograr un mejor entendimiento del tema que estamos

    estudiando conocer algunos elementos de inters en el desarrollo de los microprocesadores y de

    los microcontroladores a partir del estudio de la evolucin que han ido teniendo estos dispositivos

    desde su surgimiento hasta hoy.

    1.2 Haciendo un poco de historia. Como ya mencionamos hacia el ao 1971 una Compaa de los Estados Unidos, llamada INTEL,

    especializada en aquel entonces en la construccin de circuitos integrados de mediana escala de

    integracin anuncio la salida al mercado de un circuito integrado de nuevo tipo, el 4004, al que

    dieron el nombre genrico de microprocesador.

    Qu tenia de nuevo y diferente este circuito integrado comparado con los ya existentes hasta ese momento? El mercado digital hasta ese momento estaba dominado por los circuitos integrados de baja y

    mediana escala de integracin con tecnologa de fabricacin Bipolar TTL y MOS. Los diseos de

    sistemas digitales consistan en la conjuncin de compuertas lgicas, multivibradores, contadores,

    registros desplazamiento, almacenadotes, etc., alambrados dentro de una placa de circuito

    impreso. Estos circuitos integrados, dada sus caractersticas constructivas, respondan a un modo

    de operacin nico e imposible de cambiar por el diseador una vez construidos, lo que converta a

    los diseos en sistemas rgidos, imposibilitando su utilizacin en la solucin de otras aplicaciones

    ligeramente diferentes. Se podra decir que, cada aplicacin tena un circuito para su solucin y

    cada circuito solucionaba una aplicacin dada.

    El microprocesador tena la caracterstica de que la funcin que realizaba dependa no solo de sus

    caractersticas constructivas sino que dependa fundamentalmente de un programa almacenado

    fuera de dicho circuito desarrollado por el diseador, donde este moldeaba las funciones que

    quera que este realizara, lo que brindaba gran flexibilidad a los nuevos diseos. Ahora con un

    mismo hardware se podan realizar muchas funciones con solo cambiar el programa que

    gobernaba dicho hardware.

    Para el ao, 1974, INTEL saca al mercado el microprocesador 8080, microprocesador de 8 bits,

    con 78 instrucciones en su repertorio de instrucciones y capacidad de memoria para almacenar

    programas y datos de 65 536 localizaciones, el que a la postre constituy el primer

    microprocesador utilizado de forma masiva en el diseo de sistemas para la solucin de

    aplicaciones en los ms dismiles campos, lo que marco el comienzo de una nueva era,

    cualitativamente superior, en el diseo digital.

  • Microcontroladores. El 8051 de la INTEL. 99

    A partir de este momento comienza una carrera vertiginosa en el desarrollo de nuevos

    microprocesadores en la cual no se encontraba ya solo INTEL sino que se le fueron incorporando

    nuevas Compaas en la lucha por el gran mercado que se comenzaba a perfilar. De esta forma

    aparece ZILOG con su microprocesador Z80, para muchos el microprocesador de 8 bits ms

    potente y muy utilizado en el diseo de equipos, asi como Motorola con su microprocesador de 8

    bits 6800 por solo mencionar a dos.

    El ao 1976 marca la salida al mercado del primer microprocesador de 16 bits, el 8086, siendo

    nuevamente INTEL la compaa productora. Con mayor velocidad de operacin, repertorio de

    instrucciones ms completo y capacidad de almacenamiento de programas muy superior al de sus

    antecesores, anunciando la temprana entrada de los microprocesadores en el diseo de

    Computadoras Digitales de Propsito General.

    El ao 1980 con la irrupcin en el mercado de la Microcomputadora IBM-XT de la Compaa IBM,

    basado en un microprocesador de 16 bits interno y de 8 bits externo, el 8088 de INTEL, diseado

    por encargo especficamente para este objetivo comenz lo que se ha dado en llamar la era de las

    Microcomputadoras dentro del desarrollo de los microprocesadores la que se extiende hasta el da

    de hoy.

    A partir de este momento los nuevos microprocesadores van saliendo al mercado y van siendo

    conocidos a partir de la microcomputadora basada en el mismo. As la dcada de los 80 estuvo

    marcada por las microcomputadoras 80286 y 80386, basadas en los microprocesadores del mismo

    nombre, comenzando con este ultimo la era de los microprocesadores de 32 bits y la dcada de los

    90 por las microcomputadoras 80486 y Pentium, comenzando con este ultimo la era de los

    microprocesadores de 64 bits.

    En la actualidad las diferentes versiones de microcomputadoras basadas en un nmero igual de

    versiones de microprocesadores Pentium caracterizan el mercado del diseo de las

    Microcomputadoras Digitales.

    Dnde encajan en esta historia los Microcontroladores? Con el surgimiento de los primeros microprocesadores se convirti en un sueo para muchos

    diseadores de Circuitos Integrados, entre ellos INTEL, el poder integrar en un solo circuito todos

    los elementos que conforman una Computadora Digital. Este sueo tuvo su primera materializacin

    hacia el ao 1976 en el que esta compaa saca al mercado un circuito integrado al que dio el

  • Microcontroladores. El 8051 de la INTEL. 1100

    nombre de Microcomputadora en una Pastilla 8048 el que constituye el antecedente primario de los

    microcontroladores.

    Esta Microcomputadora en una Pastilla se encontraba muy limitada en cuanto a la capacidad de

    almacenamiento interno tanto de los programas como de los datos por lo que la idea original de

    construir una microcomputadora basada en el mismo fue dndole paso a la de utilizarlo como

    controlador de los perifricos que se le conectaban a la misma. As encontr aplicacin como

    controlador de la operacin de los Teclados, en el control de la operacin de las impresoras, de los

    ploteadores, etc.

    A esta Microcomputadora en una Pastilla se le fueron agregando funciones muy tiles para

    desarrollar aplicaciones de instrumentacin y control en la industria, surgiendo de esta forma la

    versin industrial de las Microcomputadoras en una Pastilla, los Microcontroladores. As salen al

    mercado en la dcada de los 80 la familia de microcontroladores de 8 bits de la INTEL, el 8051, y

    mas tarde la familia de microcontroladores de 16 bits de la misma compaa el 8096/80196. Estos

    dispositivos produjeron un obvio beneficio en aplicaciones pequeas siendo su caracterstica mas

    sobresaliente la de constituir sistemas integrados.

    Es incuestionable el aumento casi exponencial de nuevos productos en el mercado basados en

    nuevos Microcontroladores. Mientras que los diseadores de Microprocesadores se han dedicado

    a aumentar las posibilidades y velocidad de los mismos pensando en mejores y ms potentes

    Microcomputadoras y poniendo la vista en el desarrollo de grandes redes de comunicacin

    mediante este dispositivo, un segmento del mercado, nada despreciable, ha sido ocupado de

    forma creciente por los Microcontroladores.

    Es como si el mercado se hubiera dividido en dos partes muy bien definidas:

    Produccin de Microcomputadoras en todas sus variantes, basadas en Microprocesadores cada vez ms potentes.

    Produccin de equipos para aplicaciones a la medida, basados en Microcontroladores cada vez ms verstiles.

    Esto ha incorporado a un gran nmero de las compaas tradicionales productoras de

    Microprocesadores a acompaar a la INTEL en la produccin de Microcontroladores como son los

    casos de la Motorola, la Zilog, etc., y en otros casos a que surjan nuevas compaas a competir por

    el mercado como es el caso de la Microchip y de la Atmel.

    Todo esto a trado una nueva disyuntiva a los diseadores de equipos para solucionar aplicaciones

    a la medida,

  • Microcontroladores. El 8051 de la INTEL. 1111

    Cul Microcontrolador escoger a la hora de implementar mi aplicacin? Dmosle una vista a algunos de los principales fabricantes de Microcontroladores y a sus

    productos para irnos aclarando la respuesta a esta pregunta.

    1.3 Principales fabricantes de Microcontroladores. Se considera a INTEL como una de las Compaas lideres a nivel mundial en la fabricacin de

    Microcontroladores, constituyendo su familia de microcontroladores de 8 bits CMS-51, del cual el

    8051 es su ms conocido representante, uno de las mas utilizados en la solucin de aplicaciones

    en la industria. Con una arquitectura interna del tipo Von Newman con la memoria de datos

    segregada, los microcontroladores de esta compaa brindan un repertorio de instrucciones muy

    completo en el que se incluyen instrucciones de multiplicacin, divisin, ajuste decimal, etc. Sus

    posibilidades de expansin externa son amplias permitindole llegar a conformar sistemas donde

    la capacidad de memoria de programas y de datos que puede manejar es superior a las que le

    estaban permitidas manejar a la mayora de los microprocesadores de 8 bits.

    Quizs debido a que la lnea de fabricacin de Microcontroladores en la INTEL constituye

    realmente una produccin de fondo de esta compaa las herramientas que esta brinda para la

    puesta a punto de los sistemas fabricados con este microcontrolador no son de las mejores en el

    mercado. No obstante, dada su amplia utilizacin otras compaas proveen herramientas muy

    tiles en este sentido.

    Otra caracterstica de esta familia de microcontroladores de la INTEL es la de contar con

    numerosas segundas fuentes de compaas que brindan microcontroladores con caractersticas

    similares a los de esta familia. Ejemplos de ello lo constituyen la Philips y la Atmel.

    La Philips cuenta con una gran variedad de microcontroladores, con la caracterstica fundamental

    de constituir versiones de la familia CMS-51, ofertando relaciones de potencia/costo muy

    ventajosas para sus aplicaciones. La Philips a incorporado a estos microcontroladores la

    posibilidad de utilizar su bus serie sincrnico I2C para la expansin de las posibilidades del

    microcontrolador de poder trabajar conjuntamente con otros dispositivos en la solucin de una

    aplicacin dada.

    Por su parte la Atmel se ha hecho eco de la incorporacin a sus microcontroladores de las tan

    cmodas memorias de almacenamiento permanente del tipo Flash, con lo que se aumenta

    significativamente la flexibilidad de los diseos basados en los microcontroladores de esta

    compaa. Esta compaa tambin brinda una gran variedad de microcontroladores que

    constituyen versiones de los microcontroladores de 8 bits de la INTEL, encontrndonoslo con

  • Microcontroladores. El 8051 de la INTEL. 1122

    empaquetados con diferente nmero de terminales y con diferentes combinaciones de circuitos

    empotrados en el microcontrolador.

    Otra de las principales empresas del mundo de dispositivos programables, Motorola, que dispone

    del potente microcontrolador 68HC11, muestra una gran variedad de aplicaciones resueltas

    basadas en este Microcontrolador.

    Los microcontroladores PIC de la compaa Microchip se emplean en la actualidad cada vez ms

    debido a su reducido consumo, bajo costo, pequeo tamao, facilidad de uso y la abundancia de

    informacin y herramientas de apoyo, as como la gran variedad de dispositivos que fabrican de

    forma tal que se puede decir, sin temor a equivocarnos, que para cada aplicacin que usted

    necesite resolver, usted encontrar entre los microcontroladores de la Microchip el que se ajusta a

    sus necesidades con una relacin beneficio / costo de las ms ventajosas entre todos los

    microcontroladores.

    Empleando una arquitectura interna del tipo Hardvar, lo que le permite contar con ancho de bus

    diferentes para cdigos y datos, subdivide sus microcontroladores en tres grandes gamas, la baja,

    la media y la alta, con prestaciones muy interesante para los diseadores. Basado en un repertorio

    de instrucciones reducido, entre 32 y 35 instrucciones en dependencia de la gama a la que

    pertenezca el microcontrolador, le permite incorporar todas las ventajas que representa para el

    programador el poder trabajar con un microprocesador del tipo RISCH. No obstante, la subdivisin

    de la memoria de datos en bancos, y la necesidad de conmutar entre bancos para trabajar con los

    registros y la memoria de datos puede resultar un tanto complicada y poco estimulante para los

    principiantes en el diseo con estos microcontroladores.

    Tambin Zilog ha irrumpido con fuerza en el mercado de los microcontroladores. Recientemente ha

    lanzado algunos modelos con memoria OTP de la familia Z86XX, muy completos y fciles de

    manejar.

    Otras empresas como SGS - Thomson, Hitachi, Texas, Toshiba, Nacional Semiconductor, etc.,

    abarcan pequeas partes del mercado con sus microcontroladores los que relacionamos en la

    siguiente lista:

    HITACHI HD64180

    SGS-THOMSON (ST) ST-62XX

    NATIONAL SEMICONDUCTOR COP8

    TEXAS INSTRUMENTS TMS370

    TOSHIBA TLCS-870

  • Microcontroladores. El 8051 de la INTEL. 1133

    INFINEON C500

    DALLAS DS5000

    NEC 78K

    Como se puede observar, cada fabricante de Microcontroladores oferta un elevado nmero de

    modelos diferentes, desde los ms sencillos hasta los ms complejos. Esto que podra representar

    un dolor de cabeza para los diseadores al tener que escoger entre tantas posibilidades cual es el

    microcontrolador que ms se ajusta a su aplicacin, realmente constituye una gran ventaja ya que

    al diseador le es posible seleccionar, tomando en cuenta la capacidad de la memoria de

    programa y de datos, el nmero de lneas de Entrada/Salida digitales y analgicas, el tipo y la

    cantidad de elementos auxiliares y la velocidad de funcionamiento necesarios para resolver su

    aplicacin, prcticamente el microcontrolador a la medida logrando precios muy ventajosos.

    Por su puesto para poder hacer una seleccin adecuada se hace necesario conocer las

    caractersticas fundamentales de todos los microcontroladores que se producen en la actualidad,

    cosa esta prcticamente imposible por la gran cantidad de fabricantes, versiones y por la velocidad

    en que van apareciendo nuevos productos en el mercado. En la prctica los diseadores basan

    sus diseos en uno o dos fabricantes, tomando en cuenta no solo las posibilidades de los

    Microcontroladores que estos fabrican y sus precios, sino tomando en cuenta tambin el contar con

    las herramientas que le permitan la puesta a punto de sus productos lo ms rpido posible.

    Por lo tanto cuando usted va a emprender el diseo de un circuito para la solucin de una

    aplicacin dada y se ha decidido por basar este diseo en un microcontrolador, ante de escoger

    con cual de ellos lo va a llevar a cabo tome en cuenta los siguientes aspectos:

    Con que herramientas de puesta a punto del hardware y del software cuento para llevar a cabo mi tarea. Tenga siempre presente que comprar herramientas para la puesta a punto

    de sistemas basado en un microcontrolador cualquiera cuesta por lo general mucho ms

    que el gasto incurrido en la materializacin del circuito que nos proponemos construir.

    Cantidad y fiabilidad de la informacin con que cuento. Existencia de suministrador y de segundas fuentes. Relacin beneficio / costo.

    Ya tenemos una visin de las diferencias que existen entre un Microprocesador y un

    Microcontrolador, as como la importancia cada vez creciente de estos ltimos en el diseo de

    sistemas para la solucin de una aplicacin dada. Hemos visto tambin la gran variedad de

    microcontroladores que se fabrican en la actualidad por un nmero muy grande de compaas en

    el mundo, cada uno de ellos con sus propias caractersticas y ventajas. Por su puesto solo

  • Microcontroladores. El 8051 de la INTEL. 1144

    estamos comenzando a adentrarnos en este tema y una buena pregunta a darle respuesta para

    poder continuar podra ser la siguiente,

    Cuando tengo un Circuito Integrado delante, Cmo saber que me encuentro en presencia de un Microcontrolador?

    1.4 Los Microcontroladores por dentro. Generalmente cuando tenemos un circuito integrado delante y queremos saber que funcin realiza

    buscamos en el manual que entrega el fabricante y hay conocemos las caractersticas tanto

    funcionales como elctricas del circuito al que nos estamos enfrentando, de igual forma

    procederamos en el caso que el circuito integrado en cuestin resulte ser un microcontrolador. Si

    el manual no esta a tu alcance los fabricantes de microcontroladores entregan los data sheet de

    sus circuitos en ficheros nombre.pdf que por lo general son accesibles a travs de la pagina web

    de dichas compaas, por lo que con la sola lectura de la primera pagina de dicho data sheet

    sabremos si nos encontramos en presencia de un microcontrolador o no. Por lo que esto no

    constituir el aspecto fundamental en este tema sino, en que conozcamos cuales son las

    caractersticas y circuitos que nos podemos encontrar cuando estamos en presencia de un

    microcontrolador.

    La Arquitectura interna. Como ya se explico anteriormente, un Microcontrolador es un computador completo, limitado en

    cuanto a las prestaciones que brinda, contenido en un chip de circuito integrado y que se designa

    para gobernar una sola tarea, lo que lo hace un controlador dedicado. En su memoria de programa

    interna solo reside un programa destinado a gobernar una aplicacin determinada. Sus lneas de

    Entrada/Salida soportan el conexionado de los sensores y actuadotes del dispositivo a controlar.

    Una vez configurado y programado el microcontrolador solamente sirve para gobernar la tarea

    asignada.

    Por regla general un microcontrolador posee todos los componentes de un computador, pero con

    caractersticas fijas que no se pueden alterar. Estos elementos constituyen partes imprescindibles

    en cualquier microcontrolador al que nos enfrentemos. Estas partes comunes son:

    Procesador o Unidad Central de Proceso (CPU). Unidad Aritmtico y Lgica (ULA) Memoria no voltil para contener el programa. Memoria de lectura y escritura para guardar los datos.

  • Microcontroladores. El 8051 de la INTEL. 1155

    Lneas de Entrada/Salida para los perifricos.

    Un conjunto de circuitos adicionales adornan a los diferentes microcontroladores en dependencia

    de sus particularidades y constituyen circuitos que lo caracterizan. Estas funciones pueden estar

    presentes o no en dependencia del microcontrolador que nos estemos enfrentando. Estos circuitos

    auxiliares son:

    Oscilador interno. Temporizadores. watch doog o perro guardin. Convertidores A/D y D/A. Mdulos de captura.

    El Procesador o Unidad Central de Procesos es el elemento ms importante del microcontrolador

    tanto a nivel hardware como software. Se encarga de direccionar la memoria de programa, recibir

    el cdigo de la instruccin en curso, efectuar su decodificacin y efectuar la ejecucin de la

    operacin aritmtica o lgica con ayuda de la Unidad Aritmtico y Lgica que implica dicha

    instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado.

    La comunicacin entre las diferentes secciones internas del microcontrolador con la unidad Central

    de Procesos se efecta a travs de un conjunto de lneas internas denominadas buses que

    posibilitan el movimiento de direcciones, datos y seales de control. Estas lneas tomando en

    cuenta la funcin que realizan se dividen en tres grupos o buses tal y como ocurre en los sistemas

    a microprocesadores:

    Bus de datos. Se emplea para transferir los datos y los cdigos de las instrucciones entre la memoria y la Unidad Central de Procesos. El nmero de lneas de este bus es igual a la

    longitud de palabra del dispositivo y es lo que define si el microcontrolador es de 8 o 16

    bits.

    Bus de direcciones. Permite transferir informacin de direcciones, a travs de estas lneas la Unidad Central de Procesos enva la direccin que caracteriza al dispositivo con

    que quiere efectuar una operacin, ya sea memoria de programa, memoria de datos o

    dispositivo de entrada / salida. El nmero de lneas en el bus de direcciones determina el

    nmero de posiciones de memoria, tanto de programa como de dato, que el

    microcontrolador puede especificar. Un bus de direcciones de 8 lneas sera capaz de

    especificar 256 direcciones diferentes.

  • Microcontroladores. El 8051 de la INTEL. 1166

    Bus de control. El procesador utiliza las lneas del bus de control para sincronizar las operaciones entre los diferentes componentes as como conocer el estado en que se

    encuentran algunos dispositivos.

    No todos los fabricantes de microcontroladores conectan internamente sus circuitos internos a

    travs de los buses de la misma forma y por lo general cada uno define su propia Arquitectura

    Interna. En el caso de los microcontroladores de INTEL esta compaa adopto como Arquitectura

    Interna la misma que haba definido para sus microprocesadores, la arquitectura conocida como de

    Von Newman, la que recibe su nombre del especialista que la propuso en los albores del diseo de

    las Grandes Computadoras.. Esta arquitectura se caracteriza porque la Unidad Central de

    Procesos es conectaba a una memoria nica donde coexistan tanto los datos como las

    instrucciones a travs de un sistema de buses comn, ver Figura 1.4.1.

    Figura 1.4.1. Estructura interna de un Microcontrolador con arquitectura Von Newman.

    Los sistemas con arquitectura Von Newman al dedicar un mismo bus de datos para mover la

    informacin entre la unidad central de procesos y la memoria de programa y de datos provocan

    que el ancho de banda de ambas memoria tenga que ser igual, por lo que el numero de bits

    dedicado a representar el cdigo de una instruccin tenga que coincidir con el nmero de bits con

    que dicha unidad esta habilitada para manejar los datos. Esto trae como consecuencias la

    necesidad de que los cdigos de algunas de las instrucciones tengan la necesidad de ser

    almacenados en ms de una localizacin en la memoria de programas, provocando los siguientes

    inconvenientes:

    No coincide el nmero de instrucciones de un programa con el nmero de localizaciones de memoria que este necesita para su almacenamiento.

    No todas las instrucciones consumen el mismo tiempo para su ejecucin.

  • Microcontroladores. El 8051 de la INTEL. 1177

    La necesidad de conseguir rendimientos elevados en el procesamiento de las instrucciones y en

    aprovechar al mximo la capacidad de almacenamiento interno de dichas instrucciones ha

    desembocado en el empleo generalizado de procesadores de arquitectura Harvard, nombre que

    recibe dicha arquitectura al ser desarrollada en dicha universidad de los Estados Unidos. En esta

    arquitectura la memoria de programas y la memoria de datos son independientes y cada una

    dispone de su propio sistema de buses para el acceso, ver Figura 1.4.2.

    Figura 1.4.2. Estructura interna de un Microcontrolador con Arquitectura Harvard.

    Esta caracterstica permite que el ancho de banda de ambas memorias pueda ser diferente

    permitiendo la representacin de los cdigos con un nmero de bits diferentes, por lo general

    superior, que los empleados para representar los datos, con lo que se ahorra espacio para

    almacenar los programas.

    Ahora los inconvenientes vistos en la arquitectura Von Newman parecen estar solucionados al

    tener los fabricantes la posibilidad de aumentar el nmero de bits posibles a almacenar en cada

    localizacin de memoria de programas de forma tal que para almacenar el cdigo de una

    instruccin solo se necesite de una localizacin de memoria, logrando con ello:

    Coincide el nmero de instrucciones de n programa con el nmero de localizaciones de memoria de programa necesarias para almacenarlos.

    Salvo excepciones, todas las instrucciones consumen el mismo tiempo en su ejecucin.

  • Microcontroladores. El 8051 de la INTEL. 1188

    Otra consecuencia del empleo de una u otra arquitectura a la hora de disear el microcontrolador

    lo constituye:

    Los Microcontroladores con arquitectura Von Newman no estn capacitados para que el procesador efectu dos operaciones de forma simultnea, como puede ser, traer el cdigo

    de la prxima instruccin a ejecutar de la memoria de programa y escribir el resultado de la

    instruccin en curso en la memoria de datos al utilizar el mismo bus para ambas

    operaciones.

    Por su parte los microcontroladores con arquitectura Harvard, al tener buses de datos para la memoria de datos y de programas separados, estn capacitados para efectuar estas dos

    operaciones de forma simultnea con lo que se logra reducir el tiempo de ejecucin de los

    programas.

    En la figura 1.4.3 se muestra la Arquitectura Interna del Microcontrolador de la INTEL 8051, la que

    se corresponde con la Arquitectura Von Newman, mientras que en la Figura 1.4.4 se muestra la

    Arquitectura Interna del Microcontrolador 16F873 de la Microchip, la que se corresponde con la

    Arquitectura Harvard.

    Figura 1.4.3. Arquitectura Interna del Microcontrolador 8051.

  • Microcontroladores. El 8051 de la INTEL. 1199

    Figura 1.4.4. Arquitectura Interna del Microcontrolador de la Microchip de la Gama Media PIC16F873. Al observar la arquitectura interna del Microcontrolador de la 8051 puede llamar a confusin que

    aparecen separadas la memoria de datos de la memoria de programa, ver Figura 1.4.3, lo que

    podra ser contradictorio con lo que se haba definido como la arquitectura de Von Newman. No

    obstante, aunque ambas memorias se encuentran separadas ambas se conectan con la Unidad

    Central de Procesamiento a travs del mismo bus de datos, lo que resulta lo caracterstico en este

    tipo de arquitectura. En este caso se define la 8051 como un microcontrolador con arquitectura

    interna del tipo Von Newman, pero con la memoria de datos segregada. Ms adelante veremos las

    consecuencias de esto.

    Por su parte al observar la arquitectura interna del microcontrolador de la Microchip 16F873

    podemos notar la existencia de un bus de datos de 14 bits que conecta a la memoria de programas

    con la Unidad Central de Procesos a travs del cual se mueven los cdigos de las instrucciones a

    ejecutar por el microcontrolador, mientras que otro bus de datos de 8 bits es el encargado de

    mover los datos a todos los otros elementos que conforman al microcontrolador, lo que constituye

    lo tpico de una arquitectura del tipo Harvard.

    Aunque el presente curso esta orientado al microcontrolador 8051, hemos credo oportuno

    comparar las arquitecturas internas de estos dos microcontroladores que caracterizan a dos de los

    fabricantes ms importantes de estos dispositivos en la actualidad, con el objetivo de que los

    estudiantes puedan comprender bien las limitantes y ventajas de la arquitectura Von Newman

    tpica del 8051 con la arquitectura Hardvar que va apareciendo en los modernos

    microcontroladores de la Microchip.

  • Microcontroladores. El 8051 de la INTEL. 2200

    Hasta aqu en muchas ocasiones hemos hecho hincapi en la existencia de un programa que el

    microcontrolador debe ejecutar, por lo que en este momento nos parece oportuno dar respuesta a

    las dos preguntas siguientes,

    Qu es un Programa?, Cmo se ejecuta este Programa? Un Programa es una lista de instrucciones al procesador que con un ordenamiento lgico busca

    resolver una determinada aplicacin. Todos los microcontroladores tienen un conjunto de

    instrucciones que pueden ejecutar, definidas por el fabricante, y que constituyen su Repertorio de

    Instrucciones.

    Repertorio de Instrucciones. Cada tipo de microcontrolador tiene su propio conjunto de instrucciones, y por lo general los

    programas escritos para uno no funcionarn en otro. Un microcontrolador tpico tendr en su

    repertorio de instrucciones, instrucciones para: transferir informacin entre registros y memoria,

    realizar operaciones aritmticas y lgicas, efectuar comparaciones y pruebas sobre el contenido de

    sus registros de memoria, as como para controlar la secuencia de ejecucin de programas, etc.

    Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales,

    las que influyen decisivamente en las instrucciones que brinda el microcontrolador y la forma de

    programarlo. Estas tres orientaciones son: CISC, RISC y SISC.

    Un gran nmero de procesadores usados en los microcontroladores estn basados en la filosofa

    CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80 instrucciones

    mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo

    muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al

    programador instrucciones complejas que actan como macros, facilitndole el trabajo de

    programacin.

    Tanto la industria de los computadores comerciales como la de los microcontroladores estn

    inclinndose hacia la filosofa RISC (Computadores de Juego de Instrucciones Reducido). En estos

    procesadores el repertorio de instrucciones mquina es muy reducido y las instrucciones son

    simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones

    permiten optimizar el hardware y el software del procesador.

    En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones,

    adems de ser reducido, es "especfico", o sea, las instrucciones se adaptan a las necesidades de

  • Microcontroladores. El 8051 de la INTEL. 2211

    la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de SISC (Computadores de

    Juego de Instrucciones Especfico).

    Nuevamente los dos microcontroladores que hemos estado comparando en el material se

    caracterizan por pertenecer a dos grupos diferentes. El 8051 se caracteriza por ser un

    microcontrolador tipo CISC con ms de 80 instrucciones en su repertorio de instrucciones, algunas

    tan complejas como las instrucciones de Multiplicacin y de Divisin. Por su parte, el

    Microcontrolador 16F873 se caracteriza por ser un microcontrolador tipo RISC con solo 35

    instrucciones en su repertorio.

    Por lo general la operacin que una instruccin ha de ejecutar est definida por un cdigo de

    operacin, generalmente de un solo byte, conocido tambin como opcode. Algunas instrucciones requieren adems del cdigo de la instruccin, informacin extra para definir los operandos. Por ejemplo, una instruccin para almacenar el contenido de un registro en una posicin de memoria,

    necesitar incluir la direccin de memoria de destino.

    La Unidad de Control y Decodificacin de instrucciones incluida en la Unidad Central de Procesos

    del microcontrolador constituye el corazn del procesador. Esta es la encargada de extraer de

    forma secuencial las instrucciones de la memoria de programa y luego ejecutarlas. Unido a la

    Unidad de Control se encuentra el generador de reloj, que utiliza un oscilador para producir una

    seal de reloj muy precisa. El tiempo se divide en un cierto nmero de ciclos de la seal de reloj.

    El funcionamiento de la Unidad de Control y Decodificacin de Instrucciones se puede dividir en

    dos partes o ciclos, el Ciclo de Bsqueda y el Ciclo de Ejecucin.

    Ciclo de Bsqueda. En este ciclo el procesador transfiere la direccin de la siguiente instruccin a ejecutar por el microcontrolador al Bus de Direcciones interno, conjuntamente

    con la orden de lectura de la memoria de programa a travs de las seales del Bus de

    Control interno. Un tiempo despus, el procesador lee la informacin puesta en el Bus de

    Datos interno por parte de la memoria de programa como respuesta a la orden de lectura,

    transfiriendo esta informacin al Registro de Instrucciones.

    Ciclo de ejecucin. En este ciclo se ejecuta la instruccin. Para ello el Registro de Instrucciones est conectado al Decodificador de Instrucciones, que determina cuntos

    byte de informacin adicionales se requieren para poder ejecutar la instruccin, en caso de

    que sean necesarios. De ser necesarios, estos se cargan mediante Ciclos de Bsqueda

    adicionales, tantos como byte conformen la instruccin a ejecutar. Una vez que todos los

  • Microcontroladores. El 8051 de la INTEL. 2222

    operandos que intervienen en la operacin son conocidos, y el microcontrolador ejecuta la

    instruccin.

    Cuando la ejecucin de la instruccin es completada, el microcontrolador comienza, de forma

    automtica un nuevo Ciclo de Bsqueda de la siguiente instruccin del programa, con lo que se

    garantiza la operacin secuencial y cclica del programa por parte del microcontrolador. La

    ejecucin es por tanto, una secuencia continua de ciclos de bsqueda y ejecucin.

    De lo explicado hasta aqu las tareas a ejecutar por el microcontrolador el diseador se las entrega

    mediante un Programa diseado a partir de las instrucciones propias del microcontrolador y que el

    fabricante define en el Repertorio de Instrucciones del mismo. Estas instrucciones son

    representadas por cdigos binarios reservados trados de la memoria de programa interna del

    microcontrolador hacia su Unidad Central de Procesos durante los Ciclos de Bsqueda.

    Con el objetivo de continuar profundizando en este tema podramos intentar dar respuesta a la

    siguiente pregunta,

    Qu caractersticas presentan estas memorias de programa interna en los microcontroladores? Es el nico tipo de memoria con que cuentan los microcontroladores? La Memoria interna. Los microcontrolador estn diseados para que en su Memoria de Programa interna se almacenen

    los cdigos de todas las instrucciones que conforman el programa definitivo que solucionar una

    aplicacin dada. Una vez definido el programa este no debe ser cambiado mientras el

    microcontrolador se mantenga resolviendo la aplicacin para el cual fue creado. Esta caracterstica

    es la que hace que la Memoria de Programa de los microcontroladores sean del tipo de

    almacenamiento permanente, constituyendo esta su caracterstica comn en todos los casos.

    Son posibles encontrar cinco tipos de Memoria de Programa en los microcontroladores:

    ROM de mscara. Esta memoria se graba en el chip durante el proceso de fabricacin. Los altos costes de diseo slo aconsejan usarla cuando se precisan series grandes.

    EPROM. En la superficie de la cpsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip a rayos ultravioletas para producir el borrado de la

    memoria con el objetivo de programarla nuevamente. Su coste unitario es elevado y se

    justifica en la fase de Puesta a Punto de los sistemas.

  • Microcontroladores. El 8051 de la INTEL. 2233

    OTP (One Time Programmable). Este modelo de memoria slo puede ser grabada una vez por parte del usuario. Su bajo precio y la sencillez de la grabacin aconsejan este tipo de

    memoria para prototipos finales y series de produccin cortas.

    EEPROM. La grabacin es similar a la EPROM y OTP, pero el borrado y nueva programacin es mucho ms sencillo al poderse ejecutar elctricamente, en el propio

    circuito, las veces que se quiera. Muy utilizada para almacenar configuraciones de los

    sistemas que son de vital importancia para su correcto funcionamiento y que por ende no

    deben perderse por cualquier falla de la energa.

    FLASH. Se trata de una memoria no voltil de bajo consumo que se puede escribir y borrar en el propio circuito al igual que la EEPROM, pero suele disponer de mayor capacidad que

    estas ltimas. El borrado slo es posible en bloques completos. Por sus mejores

    prestaciones est sustituyendo a la memoria EEPROM en los microcontroladores

    modernos.

    Estos tipos de Memoria de Programa estn constituidos por un conjunto de localizaciones las que

    se encuentra organizada de forma secuencial de las direcciones. De la explicacin anterior

    queremos llamar la atencin en dos palabras especficas, localizacin y direccin.

    Definiremos como localizacin al lugar fsico en la memoria destinado para almacenar un contenido

    dado en un formato digital. Estas localizaciones estn constituidas por los bits que pueden tomar el

    valor de 0 o 1 en dependencia de la informacin que se desea almacenar. El nmero de bits

    que conforman una localizacin dada en la memoria de programa depende del microcontrolador.

    Por ejemplo en el caso del microcontrolador 8051 el nmero de bits es de 8 mientras que en el

    16F87 es de 14. Por su parte definiremos como direccin a la manera de referirnos a una

    localizacin dada a la hora de trabajar con ella. A una localizacin se le asigna una direccin que

    es nica y propia de ella. Por lo tanto cuando hablamos de una localizacin de memoria de

    programa nos estaremos refiriendo a ella o bien por su contenido o por su direccin. Por lo general

    tanto la direccin como el contenido de una localizacin dada se expresa en hexadecimal, por un

    problema de comodidad. El esquema de la Figura 1.4.5 nos ayudar a comprender mejor lo

    explicado sobre este aspecto.

  • Microcontroladores. El 8051 de la INTEL. 2244

    Figura 1.4.5 Concepto de localizacin, direccin y contenido en la memoria de programa. El nmero de localizaciones define la capacidad con que cuenta la memoria de programas para

    almacenar las instrucciones, tablas o cualquier otra cosa que defina el diseador del sistema. Esta

    capacidad se especifica en Kilo, lo que resulta equivalente a 1024 localizaciones. Por lo que

    cuando me definen que el microcontrolador cuenta con 2K localizaciones en su memoria de

    programas, me estn especificando de que el microcontrolador cuenta con 2048 localizaciones

    para almacenar cdigos u cualquier otra cosa en su memoria de programa.

    La cantidad de informacin posible almacenar en esta memoria de programa no solo depende del

    numero de localizaciones con que cuente, sino tambin depender del numero de bits con que

    este conformada dicha localizacin. Por ejemplo si en el caso de la memoria anterior las

    localizaciones estuvieran conformadas por 8 bits la capacidad de almacenamiento de la memoria

    en cuestin sera de 2048 bytes, se define como byte un nmero conformado por 8 bits, o 2

    kilobyte o lo que es lo mismo 2048 x 8 bits.

    Tomando como ejemplo los dos microcontroladores a los que nos hemos estado refiriendo durante

    el material el 8051 y el 16F873, en el primero su capacidad de memoria de programa es de 8

    Kilobyte, mientras que en el segundo su capacidad de memoria de programa es de 8 kx14 bits, ya

    que las localizaciones de memoria de programa en este microcontrolador estn conformadas de 14

    bits.

  • Microcontroladores. El 8051 de la INTEL. 2255

    Las localizaciones de memoria de programa internas del microcontrolador tienen direcciones fijas e

    impuestas por el fabricante, las que no pueden ser alteradas por el diseador del sistema,

    correspondindole a una localizacin ser la de la direccin ms baja y a otra la direccin mas alta.

    Entre estas dos se encuentran el resto de las localizaciones a las que le corresponden direcciones

    consecutivas. Una de estas localizaciones juega un papel trascendental a la hora de cargar nuestro

    programa de aplicacin en la memoria de programa y es a la que le debe corresponder almacenar

    el cdigo de la primera instruccin de nuestro programa. La direccin de esta localizacin no es la

    misma para todos los microcontroladores, pero si es nica para un microcontrolador dado. Por

    ejemplo en el caso del microcontrolador 8051 esta localizacin es a la que le corresponde la

    direccin ms baja, la 0000 H. En la Figura 1.4.6 se muestra de forma esquemtica la estructura de

    la memoria de programa del microcontrolador 8051.

    Figura 1.4.6 Memoria de Programa del microcontrolador 8051.

    Mientras que los programas deben permanecer inalterables durante el tiempo de vida del

    microcontrolador en una aplicacin dada, los datos que manejan estos programas por lo general

    varan continuamente y eso exige que la memoria que los contiene nos brinde la posibilidad de

    almacenar datos de forma temporal y poderlos alterar cada vez que sea necesaria por el programa.

    de ah que estas memoria se conozcan con el nombre de memoria de datos, aunque esto no

    excluya la posibilidad de que en algunos casos puedan almacenar cdigos o partes integrantes de

    los programas. Lo anterior impone la necesidad de que las memorias que conformen la memoria

    de datos de los microcontroladores deban ser del tipo de lectura y escritura o como se conoce

    normalmente Memorias RAM.

  • Microcontroladores. El 8051 de la INTEL. 2266

    Las memorias RAM pueden ser de diferentes tipos pero todas tienen en comn la caracterstica de

    que la informacin almacenada en ellas se pierde cuando se les retira la energa, de ah que se

    conozcan como memorias voltiles. Es por ello que en la mayora de los microcontroladores el

    contenido de las localizaciones de la memoria de datos cuando este es energizado es

    desconocido. Los conceptos definidos de localizacin, direccin y contenido para el caso de la

    memoria de programa son validos para la memoria de datos tambin. Las memorias RAM que se

    fabrican en la actualidad las podemos dividir en dos grandes grupos:

    Memoria RAM Dinmica. La informacin almacenada en ellas tiene que ser refrescada constantemente y en intervalos de tiempo bien definidos, de no hacerse la informacin

    almacenad en ellas se pierde. Esta incomodidad en el trabajo con este tipo de memoria es

    recompensado con la posibilidad de obtener mucha ms capacidad de memoria en una

    misma rea que en los otros tipos.

    Memoria RAM Esttica. No se hace necesario el refrescamiento de la informacin almacenada en la memoria y el contenido de una localizacin una vez definido no se

    pierde a no ser porque el programa escriba un nuevo dato en dicha localizacin o la

    memoria pierda la energa por alguna causa.

    Las memorias RAM Estticas (SRAM) resultan ser las ms apropiada para materializar la memoria

    de datos de los microcontroladores y es con la que estn construidas por lo general estos

    dispositivos.

    Hay microcontroladores que aprovechan la caracterstica de las memorias EEPROM de poder ser

    ledas y escrita de forma elctrica y poseen parte de su memoria de datos implementada por una

    memoria de este tipo, de forma tal que cierta informacin, que no constituye programa pero si

    informacin muy importante para el trabajo del sistema, no se pierda producto de la perdida de la

    energa, pudindose recuperar dicha informacin una vez que esta es establecida permitiendo al

    sistema continuar con su tarea.

    Como hemos visto en epgrafes anteriores otros circuitos comparten el espacio interno de los

    microcontroladores con la memoria. Estos circuitos se incorporan en dependencia del

    microcontrolador que sea, reforzando la potencia del dispositivo para resolver determinadas tareas.

    A estos circuitos los llamaremos circuitos empotrados y a ellos estar dedicado el prximo

    epgrafe.

  • Microcontroladores. El 8051 de la INTEL. 2277

    Circuitos empotrados ms comunes. Los circuitos empotrados constituyen aquellos dispositivos que el fabricante agrega a un

    microcontrolador dado con el objetivo de que contengan un conjunto de facilidades para realizar

    determinadas funciones que por lo general son las mas comunes encontrar en los sistemas para

    los que fue desarrollado dicho microcontrolador. Dado que la mayora de los microcontroladores

    fueron concebidos por sus fabricantes para resolver aplicaciones dedicadas a la instrumentacin y

    el control, estos han agregados a los mismos un conjunto de facilidades que se repiten mucho de

    un microcontrolador a otro.

    Entre las facilidades ms comunes que se encuentran en muchos microcontroladores o en alguna

    de sus versiones podemos mencionar:

    Los Temporizadores. El Perro guardin. Los Mdulos de Captura, Comparacin y PWM. Los Puertos Serie ya sean sincrnicos o asincrnicos. Los Conversores A/D.

    Como mencionamos anteriormente no todas estas facilidades tienen que estar presentes en un

    mismo microcontrolador. Por ejemplo el 8051 en su versin clsica cuenta con 2 Temporizadores y

    1 Puerto Serie, no contando ni con Perro Guardin, ni con Modulo de Captura, Comparacin y

    PWM, ni con Conversores A/D, sin embargo el 16F873 cuenta con 3 Temporizadores, Perro

    Guardin, 2 Mdulos de Captura, Comparacin y PWM, 2 Puertos Serie y un Conversor anlogo

    Digital con 5 entradas analgicas.

    Poder conocer las facilidades que brinda al diseador el contar con alguno de estos elementos en

    su microcontrolador somos del criterio de que nos permitira tener una visin completa de que es lo

    que podemos hacer con un microcontrolador dado. Por lo que le proponemos que en a

    continuacin le demos respuesta a las preguntas siguientes,

    Qu funcin realiza cada uno de estos circuitos empotrados? Para que tipo de operaciones me pudrieran ser tiles en una aplicacin dada?

  • Microcontroladores. El 8051 de la INTEL. 2288

    Los Temporizadores.

    Son muchas las aplicaciones en las cuales los Temporizadores constituyen una ayuda valiosa e

    imprescindible para el diseo, ejemplos de ello son los siguientes casos:

    Determinar de forma automtica el tiempo en 1 de un pulso generado por un circuito. Determinar el valor que toma una determinada variable fsica con una periodicidad de 1

    segundo.

    Determinar la frecuencia de un tren de pulsos generado por un circuito. Determinar la cantidad de productos terminados que se mueven por una cinta

    transportadora.

    En los dos primeros casos se impone la necesidad de contar tiempo, mientras que en los dos

    ltimos lo necesario es contar un determinado evento. En los cuatro casos los Temporizadores

    podran ser utilizados como parte de la solucin o como elemento fundamental de la misma.

    De los ejemplos anteriores podemos concluir las funciones fundamentales para las que estn

    destinados los Temporizadores en un microcontrolador, las que las podemos resumir en los

    siguientes tres aspectos:

    Como reloj interno en la sincronizacin de eventos. En la generacin de intervalos de tiempo. Como contador de eventos externos.

    La pregunta aqu sera, En qu consisten los Temporizadores?, que pueden realizar tareas tan

    dismiles.

    En esencia los Temporizadores consisten en un circuito contador, de 8 o de 16 bits, al que se le

    puede escoger mediante su programacin, la fuente de conteo, la habilitacin del conteo, la

    cantidad de bits y la base de conteo, lo que permite al diseador moldear al temporizador en

    dependencia de las necesidades de su aplicacin. Una vez programados, su operacin es

    completamente por hardware, liberando al microcontrolador de la labor de supervisin por software

    de los mismos.

    Por ejemplo, si la fuente de conteo es la salida del circuito oscilador interno del microcontrolador,

    entonces el contador estara contando tiempo y el Temporizador podra ser utilizado como reloj

  • Microcontroladores. El 8051 de la INTEL. 2299

    interno en la sincronizacin de eventos o como generador de intervalos de tiempo muy preciso. Por

    otro lado, si la fuente de conteo lo constituye una seal externa al microcontrolador que responde a

    la ocurrencia de un determinado evento, entonces el contador contara eventos y el Temporizador

    estara contando las veces que dicho evento ocurre.

    Estos contadores adems, cuentan con una lgica que determina cuando el contador se desborda

    lo que genera la habilitacin de una bandera propia de cada Temporizador y el pedido de

    interrupcin al microcontrolador para ser atendidos.

    El Perro Guardin.

    En esencia es un temporizador, pero con la caracterstica de que no se le puede cambiar ni la

    fuente de conteo ni la base de conteo. Todo lo que se puede decidir es cuando esta habilitado y

    cuando no, adems, mediante instruccin se puede reiniciar su conteo cada vez que el

    programador lo entienda conveniente dentro del programa. De esta manera el Perro Guardin una

    vez habilitado se desborda, ladra de hay su nombre, siempre que transcurra el mismo intervalo de

    tiempo para un microcontrolador dado para una frecuencia de reloj dada, si no fue interrumpido su

    conteo mediante una instruccin de reinicio.

    La interrogante en este momento podra ser,

    Cul puede ser la funcin del Perro Guardin en una aplicacin dada? En esencia su funcin es la de avisarnos que una determinada tarea se encuentra fuera de tiempo y por ende existe algn fallo en el sistema. Existen programas que una vez iniciadas una tarea

    dada, el microcontrolador espera por alguna respuesta antes de continuar con el resto del

    programa. Esto se implementa mediante un lazo de espera que pregunta constantemente por la

    ocurrencia de una condicin dada y del cual no se saldr hasta que dicha condicin ocurra. Por

    ejemplo, se le da inicio de conversin a un Conversor Anlogo Digital y el programa se queda

    esperando porque el Conversor le indique que termino con la conversin para efectuar su lectura,

    pero esta condicin nunca se da, digamos que porque el Conversor esta roto o por cualquier otra

    causa. En este caso el programa quedara en un lazo infinito del que no saldra, ya que la

    condicin por la que espera nunca ocurre, no existiendo otra causa que lo haga salir.

    Ahora bien, si antes de iniciar la tarea se habilita el Perro Guardin, el programa se quedara en el

    lazo infinito hasta que este se desborde y con ello sacara al programa de esta condicin. Si por el

    contrario todo ocurre bien, una vez ledo el Conversor se reinicializa la operacin del Perro

    Guardin, comenzando nuevamente con el conteo y por consiguiente no ocurriendo su

  • Microcontroladores. El 8051 de la INTEL. 3300

    desbordamiento y por tanto no interrumpiendo la operacin normal del microcontrolador. De este

    forma el programa continuar con su secuencia de trabajo tal y como estaba establecido por el

    programador. Todo lo que debe tener en cuenta el programador es que el tiempo de respuesta de

    la condicin por la que se pregunta sea menor que el tiempo en que se desborda el Perro

    Guardin.

    El Mdulo de Captura, Comparacin y PWM. Estas tres funciones por lo general vienen implementadas en un mismo dispositivo, a pesar de que

    realizan funciones diferentes, ya que utilizan los mismos recursos para efectuar su operacin. Por

    lo general este recurso compartido es uno de los Temporizadores. Cada una de las funciones

    viene implementada mediante un Modo de operacin especfico. Estos Modos de Operacin son:

    Modo de Captura. Modo de Comparacin. Modo de Modulacin de Ancho de Pulsos.

    En el Modo de Captura la funcin fundamental es la de capturar la informacin que existe en uno

    de los Temporizadores al ocurrir una condicin externa al microcontrolador. Para ello, en un

    registro interno del microcontrolador, por lo general de 16 bits, se almacena el valor en curso en el

    Temporizador siempre que ocurra dicha condicin externa, introducida al microcontrolador a travs

    de uno de sus terminales. Lo que puede constituir una condicin, esta muy en dependencia del

    microcontrolador que sea, pero alguna de las ms comunes resultan ser:

    Un flanco ascendente. Un flanco descendente. Cada 4 flancos ascendentes. Cada 16 flancos ascendentes.

    Al verificar el microcontrolador la ocurrencia de una de las posibles condiciones externas, este lleva

    a cabo una captura del valor en el Temporizador en cuestin y se activa una bandera interna

    indicando que es el momento de leer el valor en el registro de captura correspondiente. Esta

    bandera puede generar un pedido de interrupcin, si esta habilitada, librando al programa de

    chequear mediante muestreo cuando dicha bandera se hace verdadera.

    Una aplicacin del Modo de Captura puede ser la medicin de los intervalos de tiempo que

    transcurre entre dos pulsos que ocurren externamente. Para ello el acontecimiento que se vigila es

  • Microcontroladores. El 8051 de la INTEL. 3311

    la ocurrencia del flanco de subida de la seal en cuestin y con ambos valores tomados del

    registro de captura se puede determinar el tiempo transcurrido entre uno y otro pulso.

    En el Modo de Comparacin la funcin fundamental es la de comparar el valor de un registro interno con el contenido de uno de los Temporizadores. Para ello, cuando el Modulo trabaja de

    esta manera el contenido de dicho registro interno, previamente definido por el fabricante, se

    compara continuamente con el contenido de uno de los Temporizadores, cuando coinciden ambos

    valores, el microcontrolador lo puede indicar mediante el cambio del valor en un terminal de salida

    previamente configurado para esta tarea o mediante la activacin de un pedido de interrupcin.

    En el Modo de Modulacin por Ancho de Pulsos la funcin fundamental es la de modular el

    intervalo de tiempo en el que cambia de 1 a 0 un determinado terminal de salida del

    microcontrolador. Para ello el contenido de un registro interno de este, por lo general de 8 bits, se

    compara con el valor almacenado en uno de los Temporizadores, enmarcando el tiempo de 1 y

    de 0 de una determinada seal que se genera externamente a travs de uno de los terminales del

    microcontrolador. Este modo de operacin puede ser de gran utilidad para el control de la

    velocidad de los motores de corriente directa.

    El Puerto Serie.

    La solucin de la comunicacin entre dispositivos separados entre si distancias relativamente

    largas, pasa hoy en da de forma insoslayable por la transmisin y la recepcin de los datos de

    forma serie. Un ejemplo de lo anterior lo podra constituir la necesaria comunicacin de un equipo

    construido en base a un microcontrolador y diseado para la adquisicin de datos de forma remota

    en un determinado proceso industrial con una microcomputadora donde se encuentra instalado el

    Programa Supervisorio de todo el sistema. La mejor solucin en este caso, para la comunicacin,

    lo constituira la creacin de un canal serie entre ambos dispositivos.

    Para ello se hace necesaria la existencia de un dispositivo interno en el microcontrolador que

    convierta los datos paralelos que se mueven dentro del microcontrolador a un formato serie que

    permita su transmisin hacia el dispositivo externo y lo inverso, la conversin de los datos que le

    llegan al microcontrolador serie del dispositivo externo en paralelo para que pueda ser utilizado

    internamente por el microcontrolador. Para el diseador en este caso sera de gran utilidad el

    poder contar con un Puerto Serie que se encargue de estas dos tareas.

    Existen dos formas bsicas de efectuar esta transmisin serie, conocidas como Sincrnicas y

    Asincrnicas. En la Comunicacin Serie Sincrnica conjuntamente con los datos, el

    microcontrolador amo transmite una seal de reloj que es utilizada por el microcontrolador esclavo

  • Microcontroladores. El 8051 de la INTEL. 3322

    para la recepcin de los mismos, los datos son transmitidos a la frecuencia de la seal de reloj. En

    el caso de la Asincrnica no existe esta seal de reloj independiente de los datos para sincronizar

    la recepcin de los mismos, sino que la seal de sincronizacin viaja conjuntamente con el dato y

    constituye el primer bit de la transmisin. Los bits de datos que le siguen se transmiten a una

    determinada frecuencia de bits reconocida por el receptor, que le permiten a este sincronizar la

    recepcin de los datos.

    De la explicacin anterior podemos concluir que independientemente de la forma empleada para la

    transmisin serie de los datos, contamos con una cadena serie de bits que constituyen los datos y

    una determinada frecuencia a la que se transmiten dichos bits. Esto es lo que provoca que el

    circuito bsico Puertos Serie lo constituyan los Registros Desplazamiento.

    Estos circuitos son capaces de desplazar de forma serie un dato a una frecuencia dada. Para ello

    cuentan con un conjunto de biestables internos concatenados de forma serie, la salida del

    biestable anterior constituye la entrada del biestable siguiente, con entrada de reloj comn. Estos,

    adems permiten cargar sus biestables con un dato que le llega de forma paralela y leer la

    informacin almacenada en estos de forma paralela. La seal de reloj a los biestables en muchos

    microcontroladores es entregada por uno de los Temporizador.

    El Conversor A/D.

    Son muchas las aplicaciones donde se emplea el microcontrolador para conocer el valor en

    unidades de ingeniera que tiene una determinada variable fsica, como puede ser la Temperatura,

    la Humedad Relativa, la Presin en una Tubera, etc. Para ello se hace necesario poder contar en

    el sistema con algn elemento transductor que convierta el valor de esta variable fsica en el valor

    de una determinada variable elctrica, como puede ser un valor de Resistencia, un valor de

    Capacidad, etc. Por lo general estos dispositivos son conocidos con el nombre de Sensores.

    Generalmente los sensores vienen acompaados de otro circuito, que se conocen con el nombre

    de Transmisor, que convierte esta variable elctrica en una seal elctrica lista para ser

    transmitida. Esta seal elctrica puede ser un voltaje o una corriente enmarcada en un intervalo de

    valores continuos. Esta seal es la que llega en la mayora de las aplicaciones al microcontrolador

    para su procesamiento.

    La caracterstica fundamental de esta seal es que la misma es analgica, no digital, por lo que

    seria muy til poder contar en el microcontrolador con algunas entradas que aceptaran seales

    analgicas y con un circuito interno que convierta esta seal analgica en un nmero digital listo

    para ser procesado por el este. Muchos microcontroladores cuentan con estas entradas

  • Microcontroladores. El 8051 de la INTEL. 3333

    analgicas, por lo general ms de una, y con estos circuitos conversores analgicos digitales,

    ejemplo de ello son el 16F873 y algunas versiones del 8051.

    De esta manera todo lo que tiene que hacer el programador es dar inicio al proceso de conversin

    al conversor, esperar por que este concluya, para leer un nmero digital que estar relacionado

    con el valor de voltaje o de corriente impuesto por el transmisor del sensor en la entrada analgica

    correspondiente.

    La caracterstica fundamental de estos Conversores Anlogo - Digitales lo constituye el nmero de

    bits con que entregan el valor digital obtenido producto de la conversin de la seal analgica. Este

    nmero de bits esta relacionado con la precisin del conversor y con la posibilidad del

    microcontrolador de trabajar con valores ms cercanos al valor real de la seal analgica. Por lo

    general estos conversores son de 8 o de 10 bits.

    Ya conocemos los elementos ms comnmente encontrados en los microcontroladores, su funcin,

    modo de operacin y posibles aplicaciones a resolver con los mismos, pero,

    Nos encontraremos todos estos circuitos empotrdos en el microcontrolador 8051? Cmo trabajar con los que existen? Qu posibilidades y qu limitaciones me brindan? Esperemos dar respuestas a estas interrogantes mediante el estudio del microcontrolador 8051

    objetivo fundamental de los temas que aparecen a continuacin en este material.

  • Microcontroladores. El 8051 de la INTEL. 3344

    Tema 2. El microcontrolador 8051. Se considera a INTEL como el "padre" de los microcontroladores. Este fabricante siempre ha ido

    por delante de los dems presentando los nuevos productos. El primer microcontrolador de 8 bits

    se considera al 8048 y lo fabric esta compaa en la dcada de los 70. La siguiente generacin,

    ms evolucionada, fue la del 8051 / 8052 a la que ha seguido la de 16 bits, 80C196, que alcanza

    frecuencias de funcionamiento de hasta 50 Mhz. Con buen olfato comercial, INTEL ha lanzado

    versiones de microcontroladores basados en los microprocesadores 8088 y 8086. Se trata de los

    modelos 80188 y 80186. La misma poltica ha seguido con el 80386 creando el 80386EX. Estos ltimos productos permiten trabajar con las herramientas clsicas desarrolladas para el entorno de

    la PC.

    2.1 La Familia MCS-51. En el titulo de este epgrafe ha aparecido una palabra nueva, familia. Por su puesto que es nueva

    cuando estamos hablando de microcontroladores pero de la cual tenemos una definicin en la vida

    social muy clara. La pregunta a contestar en este momento podra ser,

    Qu constituye una familia de microcontroladores? Por regla los fabricantes cuando sacan al mercado un microcontrolador lo acompaan de un

    conjunto de versiones del mismo que son los que constituyen su familia. Estas versiones se

    caracterizan por tener un alto porciento de compatibilidad del punto de vista del hardware y del

    software entre si, pero presentan algunas diferencias como pueden ser: el tipo de memoria de

    programa que utilizan, la capacidad de la memoria de programa y de datos, el tipo y nmero de

    dispositivos complementarios que traen integrado, las posibles fuentes de interrupcin, etc. Todos

    estos aspectos hacen que los microcontroladores que integran una familia sean similares pero no

    iguales.

    Con el nombre de MCS-51 se define a una familia de microcontroladores de 8 bits desarrollados

    originalmente por la INTEL, de la cual el microcontrolador 8051 es su principal representante.. Este

    microcontrolador de 8 bits, presenta un software orientado a facilitar el desarrollo de aplicaciones

    para la instrumentacin y el control. Con una gran flexibilidad del punto de vista del hardware

    constituye un dispositivo ideal, del punto de vista econmico y de tiempo de desarrollo para la

    solucin de aplicaciones que demanden la necesidad de pocos recursos en su solucin.

    Los primeros microcontroladores de esta familia que INTEL coloca en el mercado respondan a la

    tecnologa de fabricacin HMOS y llevaban el nombre de 8051AH, 8031AH y 8751H.

  • Microcontroladores. El 8051 de la INTEL. 3355

    Qu es lo que tenan de comn estos dispositivos que posibilitaba su inclusin dentro de una misma familia de microcontroladores? Qu es lo que los diferencia y les daba particularidades propias? Como caractersticas comunes estos tres dispositivos tenan las siguientes:

    Necesidad de una sola fuente de alimentacin de 5 volts. Unidad Central de Procesos de 8 bits. Oscilador interno. 128 byte de Memoria de Datos interna. Cuatro Bancos de Registros internos. 128 banderas posibles a definir por software por el programador. Ciclo de Instruccin de un microsegundo a 12 Mhz. Dos Temporizadores de 16 bits. Una Unidad Asincrnica Serie Full Duplex. Seis fuentes de interrupcin vectorizada con cinco vectores, estructurada en dos niveles de

    prioridad.

    Modos de Direccionado Directo, Indirecto, Inmediato, Extendido y de Bit en sus Instrucciones.

    Instrucciones para la aritmtica binaria y decimal, incluyendo instrucciones para la Multiplicacin y la Divisin.

    Procesador Booleano integrado para las aplicaciones de control. Modo Especial de Trabajo en el que se le pueden conectar al sistema de forma externa

    hasta 64 Kilobyte de Memoria de Programas y 64 Kilobyte de Memoria de Datos.

    Un aspecto estableca la diferencia entre estos tres dispositivos. Este aspecto estaba relacionado

    con la existencia o no y el tipo de la Memoria de Programa interna para aquellos que la tuvieran.

    En el caso del 8031AH no tiene Memoria de Programa interna lo que impona al diseador siempre

    utilizarlo en el Modo Especial de Trabajo, conectndole la Memoria de Programa de forma externa.

    Esto a su vez condicionaba a que este microcontrolador tuviera que generar su propio Bus de

    Direcciones y de Datos externo lo que lo limitaba en cuanto al numero de terminales disponibles

    para lneas de entrada / salida, quedando limitado a solo 16 agrupadas en dos Puertos de 8 bits.

    Son estas las razones por la que muchos se cuestionan si esta versin de la familia constituye realmente un microcontrolador o es en realidad un microprocesador con dispositivos empotrados

    para realizar determinadas funciones.

  • Microcontroladores. El 8051 de la INTEL. 3366

    Por su parte las versiones 8051AH y 8751H cuenta con una capacidad de Memoria de Programas

    interna de 4 Kilobyte, lo que posibilitaba al usuario grabar sus programas de aplicacin en el propio

    microcontrolador y no tener que utilizar las posibilidades que brinda el Modo Especial de Trabajo.

    Esto adems permiti a los diseadores contar con un nmero mayor de terminales disponibles

    para sus aplicaciones al contar con otros dos Puertos de entrada / salida de 8 bits con lo que

    elevaban a 32 el nmero de lneas con este fin.

    Qu marcaba la diferencia entre estos dos ltimos dispositivos? La diferencia venia dada por el tipo de memoria empleada para la materializacin de la Memoria de

    Programa interna. Mientras que el 8051AH utilizaba un tipo de Memoria OTP, el 8751H utilizaba un

    tipo de Memoria EPROM.

    Estos elementos condicionaban la eleccin de uno u otro dispositivo en dependencia de la

    aplicacin que se desear resolver. Si su aplicacin una vez puesta a punto no se previa un

    posible cambio en el software, escoger el 8051AH, si por el contrario era factible la ocurrencia de cambios en el software desarrollado inicialmente, entonces escoger el 8751H.

    De lo anterior nos queda una posible interrogante a responder,

    Cundo utilizar el 8031AH? La utilizacin del 8031AH es muy til durante la fase de puesta a punto de los sistemas en que se

    hace necesaria la programacin de diferentes versiones de programas ante de encontrar el

    definitivo. Esto permite que las versiones de prueba se programen en Memorias EPROM

    conectadas externamente y solo se lleve al microcontrolador escogido, la versin definitivamente

    probada con resultados satisfactorios.

    Despus de este comienzo dado por la INTEL y ante el xito del nuevo dispositivo en la solucin

    de mltiples aplicaciones, muchas otras compaas productoras de circuitos integrados se dieron a

    la tarea de introducir al mercado sus propias versiones de los microcontroladores de esta familia,

    destacndose entre ellas a la compaa Analog Devices con su lnea de microcontroladores

    ADUC8xx, las compaas Atmel y Philips con una variedad de microcontroladores de esta familia

    superior hoy en da a la que produce la propia INTEL, la compaa Dallas Semiconductor con su

    lnea de Microcontroladores DS muy poderosos en cuanto a la ampliacin de sus capacidades y la

    Texas Instruments con su lnea de dispositivos TS entre otras.

  • Microcontroladores. El 8051 de la INTEL. 3377

    Las nuevas versiones se caracterizaban por agregar nuevas posibilidades al microcontrolador. As

    aparecieron versiones que aumentaban la capacidad de Memoria de Programa hasta 8 Kilobyte,

    aumentaban la Memoria de Datos hasta 1 Kilobyte, agregaban otros dispositivos de interfaz como:

    otro Temporizador, Perro Guardin, entradas Analgicas, etc., que ya hacen verdaderamente difcil

    enmarcar a este microcontrolador en un conjunto de posibilidades fijas como ocurri en las

    primeras versiones de INTEL.

    Otro aspecto que fue variando con el desarrollo de nuevas versiones lo constituye la tecnologa de

    fabricacin del microcontrolador. Despus de las primeras versiones con tecnologa HMOS

    aparecieron otros dispositivos con tecnologa de fabricacin CHMOS, lo que brindaba un

    microcontrolador de ms bajo consumo que los anteriores y por lo tanto permita el integrar en el

    circuito un nmero mayor de posibilidades o circuitos complementarios. As surgieron los

    dispositivos 8XC51FA y 8XC51FB que incorporan un bloque PLA (Arreglo Lgico Programable)

    interno con lo que aparecieron en estos microcontroladores funciones tales como:

    Salida de Alta Velocidad. Circuito de Comparacin, Captura y PWM.

    En su bsqueda por aumentar de forma cuantitativa las posibilidades de su microcontrolador de 8

    bits, el 8051, la INTEL saca al mercado una nueva familia de microcontroladores a la que nombro

    MCs 52 de la cual el microcontrolador 8052 es su principal representante.

    Cules son las cosas comunes y cuales las diferencias entre estas dos familias de microcontroladores de la INTEL?

    2.2 Los parientes cercanos, la Familia MCs - 52.

    Son pocas las diferencias que existen entre estas dos familias de microcontroladores, tan pocas

    que generalmente cuando se habla de una se menciona siempre a la otra. Entre las cosas

    comunes podemos mencionar:

    La existencia de las tres versiones, con Memoria de Programa OTP o EPROM o sin Memoria de Programa presente entre los miembros de la familia MCs - 51 estn presentes

    tambin en la familia MCs - 52, por lo que nos encontramos:

    8032. Sin Memoria de Programa interna.

    8052. Con Memoria de Programa del tipo OTP.

    8752. Con Memoria de Programa del tipo EPROM.

  • Microcontroladores. El 8051 de la INTEL. 3388

    Los terminales de los microcontroladores de la familia MCs - 52 presentan las mismas funciones que la de los microcontroladores de la familia MCs - 51, razn por la cual son

    compatibles pin a pin.

    Con respecto al Repertorio de Instrucciones, todas las instrucciones presentes en el repertorio de los microcontroladores de la familia MCs - 51 se encuentran presentes en el

    Repertorio de Instrucciones de los microcontroladores de la familia MCs- 52, razn por la

    cual los programas desarrollados para el primero pueden ser ejecutados por el segundo sin

    necesidad de efectuar ningn arreglo a los mismos.

    Los microcontroladores de la familia MCs - 52 cuentan tambin con: Necesidad de una sola fuente de alimentacin de 5 volts.

    Unidad Central de Procesos de 8 bits.

    Oscilador interno.

    Cuatro Bancos de Registros internos.

    128 banderas posibles a definir por software por el programador.

    Ciclo de Instruccin de un microsegundo a 12 Mhz.

    Dos Temporizadores de 16 bits.

    Una Unidad Asincrnica Serie Full Duplex.

    Modos de Direccionado Directo, Indirecto, Inmediato, Extendido y de Bit en sus

    Instrucciones.

    Instrucciones para la aritmtica binaria y decimal, incluyendo instrucciones para

    la Multiplicacin y la Divisin.

    Procesador Booleano integrado para las aplicaciones de control.

    Modo Especial de Trabajo en el que se le pueden conectar al sistema de

    forma externa hasta 64 Kilobyte de Memoria de Programas y 64 Kilobyte de

    Memoria de Datos.

    Qu elementos los diferencia? En la prctica a los microcontroladores de la familia MCs - 52 los debemos ver como una

    ampliacin cuantitativa de los microcontroladores de la familia MCs- 51 y en esto estriban sus

    diferencias, las que las podemos resumir en los siguientes tres aspectos:

    La capacidad de Memoria de Programas interna aumenta a 8 Kilobyte. La capacidad de Memoria de Datos interna aumenta a 256 byte. El nmero de Temporizadores de 16 bits aumenta a 3.

    Qu consecuencias traen estas ampliaciones?

  • Microcontroladores. El 8051 de la INTEL. 3399

    El aumento en cantidad de las capacidades de memoria interna solo trae como consecuencias

    ventajas para el diseador al contar con ms espacio para sus aplicaciones ya desde el momento

    que coloca el microcontrolador en su sistema sin la necesidad de efectuar ampliaciones. En el caso

    de la Memoria de Programa el aumento de la capacidad permite el poder contar con ms espacio

    de memoria para almacenar los cdigos de los programas almacenados internamente y por lo

    tanto poder resolver aplicaciones con un grado de complejidad que demanden programas ms

    extensos. En el aso de la memoria de datos aumenta de forma significativa, en el doble, el espacio

    para almacenar los datos temporales propios de cualquier aplicacin.

    Por su parte el agregar un tercer Temporizador, adems de la ventaja que nos da el contar con un

    circuito de estas caractersticas ms, integrado en el propio microcontrolador para la solucin de

    las aplicaciones, trae como consecuencia la necesidad de aumentar el repertorio de Instrucciones

    del microcontrolador con aquellas instrucciones destinadas para trabajar con este Temporizador,

    as como el aumento del nmero de fuentes