You are on page 1of 21

TALLER MICROCONTROLADORES

Nixon Rodríguez
Juan Carlos Pereira
Juan Carlos Leal.

TRABAJO PRESENTADO A
EDWIN ALEXIS PINEDA MUÑOZ

CENTRO AGROINDUSTRIAL Y FORTALECIMIENTO EMPRESARIAL DE CASANARE
SENA- YOPAL

TALLER INTRODUCCION A LOS SISTEMAS EMBEBIDOS

1. ¿Qué es un sistema embebido?
Son dispositivos usados para controlar equipos, operación de maquinarias o plantas industriales
completas. El término "embebido" (también se lo conoce como "incrustado" o "embutido") está
caracterizando que esos circuitos integrados son una parte integral del sistema en que se
encuentran. Lo interesante de que un sistema sea "embebido" es que puede estar de tal forma
incrustado, puede quedar tan oculto a nuestros ojos, que la presencia de tales "chips" no resulte
nada obvia a quien lo mira.
2. Como se clasifican los sistemas embebidos.
Se entiende que en nuestra definición de SE, éste siempre alberga una o más CPUs ya que son
el elemento encargado de aportar la ‘inteligencia’ al sistema. El formato en el que la CPU se
encuentra puede ser el de microprocesador, micro controlador (µC), DSP, etc. Según este
formato, la memoria necesaria puede ir integrada dentro del chip que contiene la CPU, de forma
externa a éste o un bajo ambas posibilidades. La oferta en el mercado de semiconductores tanto
de microprocesadores como microcontroladores y DSP es elevada y se requiere de una cuidada
fase de estudio inicial para seleccionar el mas adecuado a cada aplicación.
La norma IPC-2221B-1.6.2 clasifica a los sistemas
Embebidos en tres clases:
Clase 1 - Productos electrónicos de uso general.
Clase 2 – Productos electrónicos de servicio ininterrumpido.
Clase 3 – Productos electrónicos con alto grado de Confiabilidad.
Esta clasificación refleja el grado de sofisticación.
- Microprocesador.
- Micro controlador de 4, 8, 16 o 32 bits.
- DSP de punto fijo o punto flotante.
- Diseño a medida ‘custom’ tales como los dispositivos FPGA

Microprocesador:
Es un chip que incluye básicamente la CPU y circuitería Relacionadas con los buses de datos
y memoria. Para poder realizar su tarea se necesitan otro chips adicionales (Sistema mínimo)
tales como memoria, circuitos de entrada salida E/S (I/O) y reloj.

Microcontrolador
(MCU): Es un dispositivo que alberga el sistema mínimo dentro de un único chip, esto es,
incluye CPU, buses, reloj, memoria ROM, memoria RAM, E/S, otros periféricos tales como
conversores A/D, temporizadores (timers), etc.

termostatos. el mencionado registro se va Incrementando o decrementando al ritmo de dichos impulsos. equipos de negocios (caja registradora. TRISB. pagers. Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj. copiadoras. 4. ciclos de instrucción o algún múltiplo hasta que se desborde y llegue a 0. en forma de interrupción. inyección de combustible. quedando un circuito semejante al que aparece en la figura 2. Conversor A/D. etc. Mencione por lo menos 15 aplicaciones de los sistemas embebidos Los sistemas embebidos se encuentran en una variedad de dispositivos electrónicos comunes. ABS. Realice una descripción acerca de los periféricos de sistemas embebidos (Puertos I/O. …según el puerto seleccionado. Temporizadores o “Timers”. control de viaje. etc. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del micro controlador. tanto en arquitectura hardware como conjunto de instrucciones. Para calcular el número de periodos que habrá que contar para medir un determinado Intervalo temporal. lectores de tarjeta y cajeros automáticos). calculadoras. etc). momento en el que se produce un aviso. Podría decirse que prácticamente cualquier dispositivo que se ejecute con electricidad o ya tiene un sistema computacional embebido o próximamente lo tendrá. etc. Puertos de Entrada y Salida digitales La mayor parte de los pines que posee el encapsulado de un chip microcontrolador se dedican a soportar las numerosas líneas de E/S que lo comunican con el mundo exterior. En el caso de la familia PIC se pone un “1” ó un “0” en el bit correspondiente del registro TRISA. La tensión y la corriente de entrada/salida de cada pin dependerá también de cada chip por lo que siempre es necesario consultar el “data sheet” suministrado por el fabricante. de 16 bits o de un numero Determinado de pines.). será necesario intercalar un DRIVER de corriente adecuado. Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). DSC: Dispositivos mixtos microcontrolador/DSP que algunos fabricante ofrecen dentro de su catálogo de productos. salida y control necesarias en cada diseño. para realizar tareas típicas de procesamiento digital de señales en tiempo real. . Los pines de E/S se suelen asociar en puertos de 8 bits. cámaras digitales.3. equipos de oficina (fax. Las líneas digitales de cada uno de los puertos pueden configurarse como Entrada o como Salida. lavadoras. tales como consumibles electrónicos (teléfonos celulares. habrá que tener en cuenta:  La frecuencia de reloj principal. dependiendo de cada referencia de chip en concreto. scanners).). y automóviles (control de transmisión. PDAs. La máxima corriente que son capaces de entregar auna carga o son capaces de adquirir son parámetros de gran importancia. video juegos portátiles.Procesador Digital de Señal (DSP): Son microcontroladores o microprocesadores diseñados específicamente. 3. Para ello se necesitará configurar algún registro del microcontrolador. Esta líneas de E/S se destinan a proporcionar el soporte a las señales de entrada. temporizadores. sistemas de alarma. Cuando el dispositivo sea incapaz de suministrar la suficiente corriente a un determinado dispositivo. electrodomésticos (hornos microondas. generalmente.). impresoras. máquinas contestadoras.

un lenguaje de muy bajo nivel que es específico de cada microprocesador. 5. Al estar prácticamente diseñados a medida del hardware. Esta abstracción da como resultado el ensamblador. aprovechan al máximo las características del mismo. • Conversores Analógicos/Digitales (ADC) Los micro controladores que incorporan un Conversor A/D (Analógico/Digital) pueden Digitalizar señales analógicas procedentes de sensores u otras fuentes de información. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada.1. LENGUAJES DE BAJO NIVEL Vistos a muy bajo nivel. Para considerar el papel .  ENSAMBLADOR. número de ciclos de reloj que se necesitan para ejecutar una instrucción (4 En la familia PIC). El código representa normalmente datos y números e instrucciones para manipularlos. LENGUAJES DE MEDIO NIVEL Un lenguaje intermedio se puede definir como una manera de representar procedimientos y estructuras de datos que sirva como entrada para una MV (Maquina Virtual) en alguna parte de su jerarquía. entre el lenguaje de entrada (el nivel más alto) y el código ejecutado en la máquina (el nivel más bajo) tanto en el tiempo de compilación como en el de ejecución. pero que son a menudo difíciles de aprender. Dentro de este grupo se encuentran:  LENGUAJE MÁQUINA. Suelen disponer de un multiplexor analógico que permite aplicar a la entrada del A/D. Si empleamos algún prescaler para dividir la frecuencia de entrada al contador. De ejemplos de lenguajes de programación de alto. 4. Si se lleva el programa a otra máquina se debe reescribir el programa desde el principio. Los lenguajes de bajo nivel permiten crear programas muy rápidos. Esta secuencia de señales se denomina código máquina. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico. como por ejemplo STORE. medio y bajo nivel. diversas señales analógicas desde determinados pines del circuito integrado. Más importante es el hecho de que los programas escritos en un bajo nivel son totalmente dependientes de la máquina o de cada procesador. ADD o JUMP. los microprocesadores procesan exclusivamente señales electrónicas binarias.    Si empleamos PLL para multiplicar la frecuencia del resonador. En forma secuencial.

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales. transformación y conversión de un lenguaje a otro. como el inglés. En BASIC. conviene destacar la diferencia entre la traducción de un lenguaje de alto nivel a código máquina anteriormente a su ejecución (su compilación) y su interpretación. estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores. Los lenguajes de alto nivel tienen normalmente las características de “Transportabilidad”. la conversión de cada instrucción del lenguaje a código máquina y su ejecución. Aunque no son fundamentalmente declarativos. están implementadas sobre varias maquinas de forma que un programa puede ser fácilmente “Transportado” (Transferido) de una maquina a otra sin una revisión sustancial. Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos). Están dirigidos a solucionar problemas mediante el uso de EDD's (Estructuras Dinámicas de Datos: Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. C y ADA (para aplicaciones de programación de sistemas) y PL/I (para aplicaciones de propósitos generales) . Los lenguajes de “Alto Nivel” son los más utilizados como lenguaje de programación. . Este proceso se realiza a través de una MV de interpretación que simula un ordenador cuyo código máquina es el lenguaje de alto nivel que está siendo interpretado. esta MV se construye a través de un conjunto de programas de código máquina que representa los algoritmos y estructuras de datos necesarios para la ejecución de las instrucciones del lenguaje de alto nivel. SNOBOL (para aplicaciones de procesamiento de textos). En ese sentido se llama "Independientes de la maquina". Es decir. una por una. Hay ventajas y desventajas en cada manera de convertir los lenguajes de alto nivel a código máquina. COBOL (para aplicaciones de procesamiento de datos). Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa). Tan solo necesitan un traductor que entiendan el código fuente como las características de la maquina. los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. al ejecutar el programa. es decir. el lenguaje de alto nivel más conocido. LISP y PROLOG (para aplicaciones de inteligencia artificial). APL y FORTRAN (para aplicaciones científicas). Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Y típicamente. que se pueden resumir así: LENGUAJES DE ALTO NIVEL El avance en el desarrollo de "compiladores" e "intérpretes" (los dos tipos de programas traductores) ha sido por lo tanto fundamental en el desarrollo de los lenguajes de "3º generación" cuyas ventajas además de la facilidad de aprendizaje y lectura/escritura son las facilidades de corrección.de los lenguajes intermedios y sus ventajas y desventajas. Ejemplos de estos lenguajes de alto nivel son PASCAL.

¿Qué es lenguaje de máquina. se puede destacar su papel en la compilación estándar. el código máquina hace posible que el programador utilice la totalidad de los recursos que ofrece el ordenador. LENGUAJE EN C Además del papel de los lenguajes intermedios en la compilación parcial. Como ejemplo se puede considerar C como lenguaje intermedio para un lenguaje compilado nuevo. como su lenguaje intermedio. características de memoria o rendimiento se pueden añadir librerías C customizadas sin grandes problemas). obteniéndose programas muy eficientes (es decir. Esto hace que la programación en este lenguaje resulte tediosa y complicada. su estructura esta totalmente adaptada a los circuitos de la máquina y muy alejado de la forma de expresión y análisis de los problemas propia de los humanos. por ejemplo. .6. entre otras cosas. Si el autor de un nuevo lenguaje decide utilizar C. que aprovechan al máximo los recursos existentes) en tiempo de ejecución y en ocupación de memoria. Por esta razón. Y las desventajas son:  La depuración es muy difícil porque.  Las posibilidades disponibles para mapear estructuras intermedias del nuevo lenguaje a estructuras de datos de C. Frente a esto. El lenguaje máquina es el único lenguaje que entiende directamente la computadora. ahorrando mucho trabajo. requiriéndose un conocimiento profundo de la arquitectura física del ordenador. los errores que ocurren en el código C no son muy fáciles de localizar en lo que ha escrito el programador originalmente en el nuevo lenguaje.  La generación de código máquina es una tarea muy compleja que requiere un conocimiento profundo de la arquitectura de la máquina en cuestión y de cada máquina en que se quiere una versión del lenguaje. lenguaje assembler y lenguaje C? LENGUAJE MÁQUINA. Las ventajas de utilizar un lenguaje tan establecido como C como lenguaje intermedio son:  La facilidad de portar el lenguaje a una nueva máquina (sólo hay que tener un compilador C disponible allí). sólo tendrá que implementar una MV para convertir el código fuente de su lenguaje a C.  La facilidad de modificar algún rasgo del comportamiento del lenguaje en alguna máquina en concreto (por ejemplo.

por consiguiente. un distinto Lenguaje Ensamblador) para cada CPU. haciendo posible la redacción de programas más legibles. Mas bien usan este lenguaje para afinar partes importantes de programas escritos en lenguajes de más alto nivel. Esta transducción es llevada a cabo por un programa traductor denominado Ensamblador. Para solventar en cierta medida la limitación que supone poseer un repertorio de instrucciones.  Habrá ocasiones en las que no exista una buena traducción entre una estructura en el nuevo lenguaje y las estructuras de datos en C. El lenguaje ensamblador constituye el primer intento de sustitución del lenguaje máquina por uno más cercano al usado por los humanos. se han desarrollado unos ensambladores especiales denominados macroensambladores. Aparte de esto él LE presenta la mayoría de los inconvenientes del lenguaje máquina. ocurre en la mayoría de las ocasiones en que se compilan estructuras de Prolog a C – sólo se puede expresar iteración en Prolog utilizando recursión). como son su repertorio muy reducido de instrucciones. por lo que habrá una pérdida de eficiencia en el programa resultante (como. podemos mencionar tres lenguajes completamente diferentes. . Los lenguajes que traducen los macroensambladores disponen de macroinstrucciones cuya traducción da lugar a varias instrucciones máquina y no a una sola. el rígido formato de instrucciones. por ejemplo. usado en las IBM RS/6000. Hay un distinto Lenguaje de Máquina (y. Dado que el lenguaje ensamblador esta fuertemente condicionado por la arquitectura del ordenador que soporta. Las características de rendimiento y eficiencia del lenguaje están determinadas por el compilador C. LENGUAJE ENSAMBLADOR. tan reducido. Por otro lado mantiene la ventaja del uso óptimo de los recursos hardware. Ese tipo de lenguajes hacen corresponder a cada instrucción en ensamblador una instrucción en código máquina. permitiendo la obtención de un código muy eficiente. Por ejemplo. que sin embargo vienen de la aplicación de los conceptos anteriores:  Lenguaje Ensamblador de la familia Intel 80x86  Lenguaje Ensamblador de la familia Motorola 68000  Lenguaje Ensamblador del procesador POWER. Este acercamiento a las personas se plasma en las siguientes aportaciones:  Uso de una notación simbólica o nemotécnica para representar los códigos de operación  direccionamiento simbólico  Se permite el uso de comentarios entre las líneas de instrucciones. la baja potabilidad y la fuerte dependencia del hardware. los programadores no suelen escribir programas de tamaño considerable en ensamblador.

en cambio. un programa bien hecho en C puede ser muchas veces más rápido que un programa mal hecho en Ensamblador. que ahora veremos como las ventajas de usar el Lenguaje Ensamblador. y suponiendo que todos son buenos programadores. su arquitectura y programación. VENTAJAS DEL LENGUAJE ENSAMBLADOR Una vez que hemos visto la evolución de los lenguajes. y solamente usar Ensamblador cuando se requiere más optimización y no se puede lograr por estos medios . en el lenguaje que se desee. influyen en que el lenguaje de máquina y ensamblador cambie bastante. cuando es crítica la velocidad del programa. Para darnos una idea. cabe preguntarse: ¿En estos tiempos "modernos". pues hacen la traducción una vez y dejan el código objeto. se recomienda buscar optimizar primero estos aspectos. Ensamblador se vuelve un candidato lógico como lenguaje. cada vez que lo ejecutamos. que sirva tanto para un programa como para otro. contra las ventajas de codificar el programa más rápidamente. todos estos aspectos. Sin embargo. no hace ningún proceso que no sea necesario. para qué quiero el Lenguaje Ensamblador? El proceso de evolución trajo consigo algunas desventajas. La razón es que el compilador no tiene tanta inteligencia. y requiere ser capaz de crear código genérico. respecto a un lenguaje de alto nivel: Velocidad El proceso de traducción que realizan los intérpretes. implica un proceso de cómputo adicional al que el programador quiere realizar. un programador humano puede aprovechar las características específicas del problema. Por ello. el código generado por un compilador es menos eficiente que el código equivalente que un programador escribiría. normalmente podemos despreciarlo. esto no es un absoluto. la mayor parte de las veces. no desperdicia ninguna instrucción. y se puede ejecutar muy rápidamente. sigue siendo sumamente importante la elección apropiada de algoritmos y estructuras de datos. que son mucho más rápidos que los intérpretes. que el equivalente en Ensamblador. un programa para ordenar una lista tardará cerca de 20 veces más en Visual Basic (un intérprete). nos encontraremos con que un intérprete es siempre más lento que realizar la misma acción en Lenguaje Ensamblador. Aunque el proceso de traducción es más complejo y costoso que el de ensamblar un programa. en una PC. reduciendo la generalidad pero al mismo tiempo. De ahí nacieron los compiladores. Por ello. compitiendo entre sí y cada uno aplicando conceptos distintos en la manufactura de sus procesadores. y 2 veces más en C (un compilador). Por ello.Tenemos 3 fabricantes distintos. que ya es Lenguaje de Máquina. simplemente porque tiene el costo adicional de estar traduciendo el programa. Ahora bien.

1 Lenguaje C: .END .DATA . h. g = h + A[8]. A[100]. k.INT 21 . Escriba por lo menos 10 instrucciones en lenguaje de máquina. indica que la siguiente información ___ . f. if (i == j) f = g + h.int sub1(int g.4CH . . h.F1: subi $a0. indica el modelo de memoria (SMALL) . A[4] += 5.elsereturn n*fact(n .int fact(int n) {if (n == 1) return 1. ¿Qué es un compilador? Los compiladores son programas de computadora que traducen de un Lenguaje a otro. f = (g + h) . A[100].MOV AH.CODE . . g = h + A[i]. else f = g . y regresar al prompt C> . g.7. indica que la siguiente información ___ . h. es el programa ejecutable .Model SMALL .} Lenguaje de Máquina: 0011 0001 1010 0001 01 A1 1000 1001 1001 1010 FF 9A 0011 1010 1001 1100 3A 9C 0111 0100 0111 0011 74 F0 1110 1001 0010 1100 C8 30 8.int i. lenguaje assembler y lenguaje C Instrucciones Lenguaje assembler .int h.} .necesario para terminar el programa . Un compilador toma como su entrada un programa Escrito en lenguaje fuente y produce un programa equivalente escrito en Lenguaje objeto. f = (g + h) .h.int i. int i. A[100].STACK 200 . indica el tamaño del STACK (bytes) . $a0. . . f. deberá quedar en el segmento de datos . A[100]. A lo largo del Proceso de traducción el compilador debe informar la presencia de Errores en el lenguaje fuente.int i. int h. j. Generalmente al lenguaje fuente se le asocia como lenguaje de alto nivel. mientras al lenguaje objeto se le conoce como código objeto (código de Maquina) escrito específicamente para una maquina objeto. Indica el fin del programa .(i + j). int g. h. while (A[i] == k) i = i + j. j.(i + j). . return f.1). A[4] = h + A[8]. g. int j) { int f. j. .int i. g.

Describa las diferencias entre compilador e interpretador .9.

Realizar un esquema donde se muestre la estructura y pasadas de un compilador .10.

.

Un auto más costoso puede incluir hasta 80microcontroladores. mucha más potencia de cómputo que la que era posible en las primeras naves espaciales. Un micro-controlador es.11.  En cambio un Microcontrolador es un sistema cerrado. estéreos. En donde todas las partes del procesador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. de varios centímetros cuadrados en el peor de los casos . pero dentro de sus circuitos. probablemente su campo de aplicación más importante. cuenta generalmente con ROM. incluyendo la tele. es en definitiva un circuito integrado que incluye todos los componentes de un computador. 12. Un auto común usa entre 30 y40 micro controladores que sirven para manejar el sistema de suspensión. equipos de audio y video. Muchas veces nos a caido la duda de cual es la diferencia entre un microprocesador y un microcontrolador cual es la diferencia entre estos y cual sera el mas idoneo para ocupar en algun proyecto. la mezcla de aire-gasolina. teclado y mouse. En éste caso el controlador recibe el nombre de controlador empotrado. Bueno si se ha tenido la oportunidad de realizar un diseño con un     Microprocesador. Una aplicación que vale la pena mencionar es el que tienen los micro controladores en la industria automotriz. los frenos ABS y desplegar información al usuario a través del tablero entre otras cosas. RAM. Explique la diferencia entre micro controlador y microprocesador. Aplicaciones Hoy en día podemos encontrarlos en juguetes. una computadora llevada a una escala liliputiense. aparatos electrodomésticos. Describa que es un micro controlador y por lo menos mencione 10 aplicaciones. esencialmente. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En conclucion las estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con losMicroprocesadores y después pasaron a trabajar con los Microcontroladores. se puede observar que dependiendo del circuito se requerían algunos circuitos integrados adicionales además del Microprocesador como por ejemplo: RAM (para almacenar datos temporalmente y memorias) ROM (para guardar el programa encargado del proceso del equipo) Circuito integrado (para los puertos de entrada y salida) Descodificador de direcciones. puertos de comunicaciones seriales y convertidores Analógico / Digitales.Por supuesto que carece de monitor. equipos periféricos de cómputo como impresoras y aviones y cualquier otra máquina que requiera de algún control concierto grado de inteligencia. Estas . la sincronización y frecuencia de la ignición en los cilindros.

Hitachi  . Cuáles son las principales marcas de micro controladores. Los fabricantes de micro controladores son más de 50.Toshiba  . .Philips  .Mitsibishi  .NEC  . ¿Qué es arquitectura RISC (Harvard) y arquitectura CISC (Von Newman)? Arquitecturas Harvard y Von Neumann La arquitectura de Von Neumann es caracterizada por los procesadores que poseen el mismo dispositivo de almacenamiento en donde coexisten tanto datos como instrucciones.Siemens  -National Semiconductor 13. Una memoria RAM de 28 Pines.Motorola  . Unidad de control.son las diferencias más importantes: Por ejemplo la configuración mínima básica de un Microprocesador estaba constituida por un Micro de 40 Pines. lo que quiere decir que las instrucciones son datos y comparten el mismo bus de datos en su transmisión. el tiempo de desarrollo de su proyecto electrónico se disminuye considerablemente. una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines.AT&T  .Zilog  . Las instrucciones y los datos son almacenados en el mismo formato dentro de la misma memoria. lo mejor de todo.microchip  . Unidad de entrada y salida. La arquitectura se compone de las siguientes unidades o bloques: Unidad de memoria principal Unidad aritmético-lógica. podemos mencionar a:  . En principio un programa en ejecución se puede modificar a sí mismo y en práctica usualmente esto significa que un error ocurrió. el costo para un sistema basado en Microcontrolador es mucho menor y. La ventaja de este tipo de arquitectura es que es eficiente en la utilización de la memoria pero su desventaja es que los tipos de datos no pueden ser reconocidos sin ambigüedad.Microchip  . Describa las ventajas y desventajas de cada una.Matsushita  . pero un Microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificación de componentes.

 Mejora la compactación de código. Write y Fetch). la cual es que los procesadores utilizan dispositivos de almacenamiento físicamente separados para el manejo de instrucciones y datos. Eso significa que a diferencia de CISC.  Facilita la depuración de errores . VENTAJAS DEL RISC:  La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones. en cuyo caso debe existir alguna señal de control que permita diferenciar a que espacio de memoria hace referencia (señales de Read. Enumere una ventaja de la arquitectura RISC sobre la CISC y una de la CISC sobre la RISC.La arquitectura Harvard esencialmente posee una diferencia muy marcada con respecto a la arquitectura Von Neumann.  Cada instrucción puede ser ejecutada en un solo ciclo del CPU VENTAJAS CISC:  Reduce la dificultad de crear compiladores.  Utiliza un sistema de direcciones no destructivas en RAM. El acceso a cada espacio de memoria puede llegar a ser mediante buses distintos. 14. es decir. RISC conserva después de realizar sus operaciones en memoria los dos operando y su resultado. reduciendo la ejecución de nuevas operaciones.  Reduce los costos de creación de software. existe un bus de datos y un bus de instrucciones.  Permite reducir el costo total del sistema. pero lo más habitual es que exista un único bus de direcciones.

16KB de memoria flash para programación RAM de 1KB 33 puertos de entrada/salida 8 canales de ADC de 12 bits 2 Timers Velocidad: 48MHz Voltaje de alimentación: 2. Hasta 6v)  Frecuencia de operación (Hasta 20 MHz) 16. Realice una descripción de las características del micro controlador PIC16F877 de Microchip.15.7 ~ 5.5 v. Microcontrolador Freescale MC9S08JM16CLD MC9S08JM16CLD Microcontrolador Freescale de 8 bits de la familia HCS08 de bajo costo y alto rendimiento. Realice una descripción de las características del micro controlador MCS08JM60 de Freescale. Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones: Los microcontroladores que produce Microchip cubren una amplio rango de dispositivos cuyas características pueden variar como sigue:  Empaquetado (desde 8 patitas hasta 68 patitas)  Tecnología de la memoria incluida (EPROM.5V dc Interfaz SCI / SPI / I2C / USB / LIN Encapsulado: LQFP-44 . ROM. El microcontrolador PIC16F877 de Microchip pertenece a una gran familia de micro controladores de 8 bits (bus de datos) que tienen las siguientes características generales que los distinguen de otras familias:  Arquitectura Harvard  Tecnología RISC  Tecnología CMOS Estas características se conjugan para lograr un dispositivo altamente eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de ejecución. Flash)  Voltajes de operación (desde 2.

registros de control. memoria de datos. memoria de programa. diagrama de conexiones y repertorio de instrucciones del microcontrolador PIC16F877.17. . Haga una descripción acerca de la arquitectura.

Pila (Stack) Estos registros no forman parte de ningún banco de memoria y no permiten el acceso por parte del usuario.PIC16F877 ARQUITECTURA Arquitectura interna del microcontrolador Este término se refiere a los bloques funcionales internos que conforman el microcontrolador y la forma en que están conectados. Para seleccionar que página o banco de memoria se trabaja en un momento determinado se utilizan los bits RP0 y RP1 del registro STATUS. De estos 128 los primeros 32 (hasta el 1Fh) son registros que cumplen un propósito especial en el control del microcontrolador y en su configuración. allí se debe escribir toda la programación necesaria para atender dicha interrupción. El primero va de la posición de memoria 0000h a la 07FFh.8 se muestra el mapa de la memoria de programa. el segundo va de la 0800h a la 0FFFh. el contador de programa recupera su valor leyéndolo nuevamente desde la pila. por eso. Cuando ocurre un reset al microcontrolador. El PIC16F877 tiene una pila de 8 niveles. la lógica de control que permite que todo el conjunto funcione. Memoria de datos (RAM) El PIC16F877 posee cuatro bancos de memoria RAM. por ejemplo la memoria FLASH (de programa). cada banco posee 128 bytes. Cuando el microcontrolador recibe una señal de interrupción. el contador de programa apunta a la dirección 04H de la memoria de programa. lo que facilita el desarrollo de los programas y la experimentación. Como es del tipo FLASH se puede programar y borrar eléctricamente. Vector de interrupción. la memoria RAM (de datos). el contador de programa se pone en ceros (0000H). Memoria de programa PiC16F877 Memoria de programa (FLASH) Es una memoria de 8K de longitud con datos de 14 bits en cada posición. luego. los puertos. en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo. etc. . Vector de reset. En la figura 3. Todas las posiciones o registros de memoria se pueden acceder directa o indirectamente (esta última forma a través del registro selector FSR). cuando el micro regresa a seguir ejecutando su tarea normal. Los 96 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de la tarea que se está ejecutando. el tercero de la 1000h a la 17FFh y el cuarto de la 1800h a la 1FFFh. esto significa que se pueden anidar 8 llamados a subrutina sin tener problemas. La memoria de programa está dividida en cuatro bancos o páginas de 2K cada uno.9. figura 3. Por esta razón. Se usan para guardar el valor del contador de programa cuando se hace un llamado a una subrutina o cuando se atiende una interrupción. En ella se graba o almacena el programa o códigos que el microcontrolador debe ejecutar.

RESGISTROS DE CONTROL .

memoria de programa. diagrama de conexiones y repertorio de instrucciones del microcontrolador MCS08JM60.18. Haga una descripción acerca de la arquitectura. REGISTRO DE CONTROL . registros de control. memoria de datos.

. En la actualidad el número de microprocesadores embebidos en un producto determinado excede la cantidad de los que se pueden encontrar en computador personal. Los desarrollos en software y hardware serán empleados cada vez en sistema más pequeños en muchos casos invisibles al usuario en el orden de facilitar al máximo el empleo de los diferentes productos. surge un término conocido como la era post-PC. éste denota el hecho de que en el futuro los computadores personales estándares se convertirán en los sistemas hardware menos dominantes.MAPAS DE MEMORIA 19. ¿Por qué son importantes los sistemas embebidos en la automatización industrial? Los sistemas embebidos son considerados como el área de aplicación de mayor importancia de la tecnología de la información en el transcurso de los años venideros gracias a esta expectativa que ha venido creciendo alrededor de estos sistemas.