P. 1
Unidad_4_Microcontroladores_

Unidad_4_Microcontroladores_

|Views: 343|Likes:
Publicado porOchoa Joshua

More info:

Published by: Ochoa Joshua on Nov 30, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/13/2014

pdf

text

original

Sections

  • 4.1 ARQUITECTURA
  • 4.1.1 TERMINALES
  • 4.1.2 CPU
  • 4.1.3 ESPACIO DE MEMORIA
  • 4.1.4 ENTRADA/ SALIDA
  • 4.1.5 CARACTERÍSTICAS ESPECIALES
  • 4.2 PROGRAMACIÓN
  • 4.2.1 Modelo de programación
  • 4.2.2 Conjunto de instrucciones
  • 4.2.3 Modos de direccionamiento
  • 4.2.4 Lenguaje ensamblador
  • 4.3.1 COMO SISTEMA INDEPENDIENTE
  • 4.3.2 COMO SUBSISTEMA DE UNA COMPUTADORA
  • CONCLUSIÓN
  • BIBLIOGRAFÍA

INSTITUTO TECNOLÓGICO SUPERIOR DE JESÚS CARRANZA

ARQUITECTURA DE COMPUTADORAS
UNIDAD IV MICROCONTROLADORES
HERNÁNDEZ BRUNO FABIOLA

11

INSTITUTO TECNOLÓGICO SUPERIOR DE JESÚS CARRANZA

Unidad 4 MICROCONTROLADORES

Ing. Omartín Pérez Juárez Fabiola Hernández Bruno
JESÚS CARRANZA, VER. A 20 DE OCTUBRE DEL 2011

Arquitectura de computadoras

Página 1

ÍNDICE
Contenido INTRODUCCIÓN ............................................................................................................................. 2 4.1 ARQUITECTURA ....................................................................................................................... 5 4.1.1 TERMINALES. ........................................................................................................................ 7 4.1.2 CPU. ...................................................................................................................................... 9 4.1.3 ESPACIO DE MEMORIA ....................................................................................................... 16 4.1.4 ENTRADA/ SALIDA. ............................................................................................................. 19 4.1.5 CARACTERÍSTICAS ESPECIALES. .......................................................................................... 21 4.2 PROGRAMACIÓN. .................................................................................................................. 25 4.2.1 Modelo de programación............................................................................................... 31 4.2.2 Conjunto de instrucciones ............................................................................................. 34 4.2.3 Modos de direccionamiento. ......................................................................................... 36 4.2.4 Lenguaje ensamblador. ................................................................................................. 39 4.3.1 COMO SISTEMA INDEPENDIENTE. ..................................................................................... 42 4.3.2 COMO SUBSISTEMA DE UNA COMPUTADORA. .................................................. 42 CONCLUSIÓN ............................................................................................................................... 43 BIBLIOGRAFÍA .............................................................................................................................. 44

Arquitectura de computadoras

Página 2

INTRODUCCIÓN
Hablaremos de Los microcontroladores sabemos que un microcontrolador es un circuito integrado capaz de programarse la cual incluye en su interior las tres unidades funcionales de una computadora: unidad central de

procesamiento, memoria y periféricos de entrada y salida. Estas cuentan con dos tipos de arquitecturas la de Von Neumann y la Harvard, aunque sabemos que la más tradicional o la más usada es la arquitectura de von Neumann en la cual la unidad central de proceso está conectada a una memoria única donde se guardan las instrucciones del programa y los datos. Esta es una de sus características La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. Y la arquitectura Harvard tiene la unidad central de proceso conectada a dos memorias la cual sería: una con las instrucciones y otra con los datos, por medio de dos buses diferentes, estas es una de las ventajas de la arquitectura Harvard que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad en cada operación. Los terminales es un dispositivo electromecánico de hardware, usado para introducir o mostrar datos de una computadora o de un sistema de computación. La función principal de este es la exhibición y entrada de datos, Las puertas de Entrada y Salida permiten comunicar al procesador con el mundo exterior, a través de interfaces, o con otros dispositivos. Estas puertas, también llamadas puertos, son la principal utilidad de los pines de un microprocesador. Este se puede programar en diferentes aplicaciones como el MPLAB y elegir el modelo de PIC para el que se haga la simulación y así compilarlo. Este cuenta con instrucciones y modos de direccionamiento, la aplicación de este puede ser en aparatos

electrodomésticos y computo, como también en automóviles sistema de alarma entre muchas otras más.

Arquitectura de computadoras

Página 3

Microcontroladores Arquitectura de computadoras Página 4 .OBJETIVO EL OBJETIVO ES QUE EL ALUMNOS APRENDERÁ LA IMPORTANCIA DEL MICROCONTROLADOR ASÍ COMO DE SUS ARQUITECTURAS. SUS TERMINALES Y SOBRE TODO SUS APLICACIONES.

que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas. Y el tener un único bus hace que el microprocesador sea más lento en su respuesta. en la cual la unidad central de proceso (CPU). Si tiene que acceder a una instrucción o dato de más de un byte de longitud. El tamaño de la unidad de datos o instrucciones está dado por el ancho del bus que comunica la memoria con la CPU. Arquitectura de computadoras Página 5 . Resumiendo todo lo anterior.Un microcontrolador es un circuito integrado que incluye en su interior las tres unidades funcionales de una computadora: unidad central de procesamiento. La limitación de la velocidad de operación a causa del bus único para datos e instrucciones que no deja acceder simultáneamente a unos y otras. 2.1 ARQUITECTURA Arquitectura Von Neumann La arquitectura tradicional de computadoras y microprocesadores está basada en la arquitectura Von Neumann. tendrá que manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Las principales limitaciones que nos encontramos con la arquitectura Von Neumann son: 1. ya que no puede buscar en memoria una nueva instrucción mientras no analicen las transferencias de datos de la instrucción anterior. lo cual impide superponer ambos tiempos de acceso. tendrá que realizar más de un acceso a la memoria. está conectada a una memoria única donde se guardan las instrucciones del programa y los datos. 4. memoria y periféricos de entrada y salida. La limitación de la longitud de las instrucciones por el bus de datos. Así un microprocesador de 8 bits con un bus de 8 bits.

al ser los buses independientes. o RISC (Reduced Instrucción Set Computer). logrando una mayor velocidad en cada operación. Arquitectura de computadoras Página 6 . Ventajas de esta arquitectura: 1. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa). y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa. y al mismo tiempo leer la siguiente instrucción a ejecutar. 2. el set de instrucciones y el bus de memoria de programa pueden diseñarse de tal manera que todas las instrucciones tengan una sola posición de memoria de programa de longitud.Arquitectura Harvard La arquitectura Harvard tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas. Además. y los otros sólo almacenos datos (Memoria de Datos). El tiempo de acceso a las instrucciones puede superponerse con el de los datos. logrando así mayor velocidad y menor longitud de programa. Una pequeña desventaja de los procesadores con arquitectura Harvard. Ambos buses son totalmente independientes y pueden ser de distintos anchos. ya que estas tablas se encontraran físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). la CPU puede acceder a los datos para completar la ejecución de una instrucción. Para un procesador de Set de Instrucciones Reducido. El tamaño de las instrucciones no esta relacionado con el de los datos.

Arquitectura de computadoras Página 7 . conocido también como consola es un dispositivo electrónico o electromecánico de hardware. en donde se incluye la memoria RAM. son la principal utilidad de las patas o pines de un microprocesador. o con otros dispositivos. La función de un terminal está confinada a la exhibición y entrada de datos. Según los controladores de periféricos que posea cada modelo de microcontrolador. Un terminal. Estas puertas. las líneas de E/S se destinan a proporcionar el soporte a las señales de entrada. los puertos de entrada y salida (I/O). y una memoria de programa de 14 bits. etc. un dispositivo con una significativa capacidad local programable de procesamiento de datos puede ser llamado un "terminal inteligente" o cliente pesado.1 TERMINALES. Un terminal que depende del computador huésped para su capacidad de procesamiento es llamado cliente ligero. usado para introducir o mostrar datos de una computadora o de un sistema de computación. con una memoria de datos de 8 bits. Un computador personal puede correr un software que emule la función de un terminal. En la Figura 5 vemos la arquitectura interna organizada en bloques interconectados. 4. también llamadas puertos. permitiendo a veces el uso concurrente de programas locales y el acceso a un distante sistema huésped de terminal.El microcontrolador PIC 16F84 posee arquitectura Harvard. a través de interfaces.1. la memoria EEPROM. Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior. salida y control.

QFP y QFN. SOIC. En los encapsulados de 28 patitas no está implementado el Puerto Paralelo Esclavo (PSP). PLCC. fabrica estos microcontroladores en encapsulados PDIP y SPDIP. y en encapsulados de 44 patitas para formatos PLCC. o cualquier otra cosa que se le ocurra al programador. mientras que los dispositivos PIC16F871. dependiendo de cómo se configuren internamente por software. Los dispositivos PIC16F870. pero como los microcontroladores no pueden tener infinitos pines.Microchip Technology Inc. QFP y QFN. SSOP. Los terminales VDD (tensión) y VSS (masa) sirven únicamente para alimentar al dispositivo. LED. SOIC. las E/S de propósito general comparten los pines con otros periféricos. ni siquiera todos los pines que queramos. Algunos puertos de E/S tienen características especiales que le permiten manejar salidas con determinados requerimientos de corriente. Para usar un pin con cualquiera de las características a él asignadas debemos configurarlo mediante los registros destinados a ellos. o incorporan mecanismos especiales de interrupción para el procesador. También conocidos como puertos de E/S. permiten leer datos del exterior o escribir en ellos desde el interior del microcontrolador. PIC16F873A y PIC16F876A se fabrican en encapsulados de 28 patitas en formatos PDIP. PIC16F872. como suele ocurrir en la mayoría de microcontroladores. PIC16F874A y PIC16F877A se fabrican en encapsulados de 40 patitas para formato PDIP. el destino habitual es el trabajo con dispositivos simples como relés. Arquitectura de computadoras Página 8 . generalmente agrupadas en puertos de 8 bits de longitud. tienen más de una función (multiplexación). SSOP y QFN. Típicamente cualquier pin de E/S puede ser considerada E/S de propósito general. Muchas de las patitas o terminales de estos dispositivos.

Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados.1. o simplemente el procesador o microprocesador. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía y de calor generado 4. Generalmente. UCP o CPU (por el acrónimo en inglés de central processing unit). Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. junto con el almacenamiento primario y los dispositivos de entrada/salida. el término "CPU" es aplicado usualmente a todos los microprocesadores. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C. La unidad central de procesamiento. que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Arquitectura de computadoras Página 9 .2 CPU. el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. que interpreta las instrucciones contenidas en los programas y procesa los datos. Desde mediados de los años 1970. Los CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo. los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU.Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia. es el componente del computador y otros dispositivos programables. y hoy en día.

desde automóviles. Por otro lado. neveras. mientras que los tubos de vacío no sufren del Arquitectura de computadoras Página 10 . y por lo tanto requieren una cierta clase de elementos de conmutación para diferenciar y cambiar estos estados. este costoso método de diseñar los CPU a la medida. para una aplicación particular. calculadoras. Por ejemplo. ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos. pero su operación fundamental ha permanecido bastante similar. La forma. Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande. Aunque éstos tenían distintas ventajas de velocidad sobre los anteriores diseños puramente mecánicos. Tanto la miniaturización como la estandarización de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. no eran fiables por varias razones. Antes de la aceptación comercial del transistor. el término en sí mismo y su acrónimo han estado en uso en la industria de la informática por lo menos desde el principio de los años 1960. entre otros Casi todos los CPU tratan con estados discretos. juguetes. en términos generales. una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. generalmente una computadora única en su especie. hasta teléfonos móviles o celulares. Los microprocesadores modernos aparecen en todo. hacer circuitos de lógica secuencial de corriente directa requería hardware adicional para hacer frente al problema del rebote de contacto. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros computadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo. los relés eléctricos y los tubos de vacío (válvulas termoiónicas) eran usados comúnmente como elementos de conmutación.La expresión "unidad central de proceso" es. el diseño y la implementación de los CPU ha cambiado drásticamente desde los primeros ejemplos. Sin embargo. aviones. televisores.

La mayor parte de estos tempranos CPU síncronos corrían en frecuencias de reloj bajas comparadas con los modernos diseños microelectrónicos. Desde la introducción del primer microprocesador..1 Generalmente. limitado en gran parte por la velocidad de los dispositivos de conmutación con los que fueron construidos. (basados en tubos de vacío). los CPU basados en tubo llegaron a ser dominantes porque las significativas ventajas de velocidad producidas generalmente pesaban más que los problemas de confiabilidad. Por lo tanto. en 1974. Eran muy comunes en este tiempo las frecuencias de la señal del reloj con un rango desde 100 kHz hasta 4 MHz.. el Intel 8080. y eventualmente produjeron microprocesadores con conjuntos de instrucciones que eran compatibles hacia atrás con sus más viejos hardwares y softwares. en 1971. cuando un tubo ha fallado. los microprocesadores son CPUs fabricados con un número muy pequeño de IC. El Arquitectura de computadoras Página 11 . los primeros computadores electrónicos. como el Harvard Mark I. (basadas en relés). tendieron en tener un promedio de ocho horas entre fallas. fallaban muy raramente. el Intel 4004. la CPU tendría que ser diagnosticada para localizar el componente que falla para que pueda ser reemplazado. y del primer microprocesador ampliamente usado. como el EDVAC. usualmente solo uno.rebote de contacto. Al final. Las computadoras de tubo. éstos deben calentarse antes de llegar a estar completamente operacionales y eventualmente fallan y dejan de funcionar por completo. esta clase de CPUs ha desplazado casi totalmente el resto de los métodos de implementación de la Unidad Central de Proceso. mientras que las computadoras de relés. Las generaciones previas de CPUs fueron implementadas como componentes discretos y numerosos circuitos integrados de pequeña escala de integración en una o más tarjetas de circuitos. (anteriores y más lentas). (ver más abajo para una exposición sobre la frecuencia de reloj). generalmente eran más rápidos pero menos confiables que las computadoras electromecánicas. Los fabricantes de mainframes y minicomputadores de ese tiempo lanzaron programas de desarrollo de IC propietarios para actualizar sus más viejas arquitecturas de computador. Por otro lado.

y la forma general del CPU. como ha aumentado la capacidad de construir transistores excesivamente pequeños en un IC. Arquitectura de computadoras Página 12 . Casi todos los CPU comunes de hoy se pueden describir con precisión como máquinas de programa almacenado de von Neumann. la complejidad y el número de transistores en un simple CPU también se han incrementado dramáticamente. así como ampliar el uso de paralelismo. ser una predicción bastante exacta del crecimiento de la complejidad de los CPUs y otros IC. la complejidad. significa tiempos de conmutación más rápidos debido a factores físicos como el decrecimiento de la capacitancia parásita de las puertas. se han presentado preocupaciones sobre los límites de la tecnología de transistor del circuito integrado. la construcción. en los pasados sesenta años han cambiado drásticamente.tamaño más pequeño del CPU. Esta tendencia ampliamente observada es descrita por la ley de Moore. Estas más nuevas preocupaciones están entre los muchos factores que hacen a investigadores estudiar nuevos métodos de computación como la computadora cuántica. el tamaño. y otros métodos que extienden la utilidad del modelo clásico de von Neumann. como resultado de estar implementado en una simple pastilla. Esto ha permitido que los microprocesadores síncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios gigahercios. Adicionalmente. A medida que la ya mencionada ley del Moore continúa manteniéndose verdadera. y el subumbral de pérdida. como la electromigración. Mientras que. que ha demostrado hasta la fecha. La miniaturización extrema de puertas electrónicas está causando los efectos de fenómenos que se vuelven mucho más significativos. es notable que el diseño y el funcionamiento básico no hayan cambiado demasiado.

Después de que se lee una instrucción. En otras palabras. el lugar de la instrucción en el programa actual. haciendo detener al CPU mientras espera que la instrucción sea retornada. execute. leer (fetch). la instrucción es dividida en partes que tienen significado para otras unidades del CPU. y writeback. Hay cuatro pasos que casi todos los CPU de arquitectura de von Neumann usan en su operación: fetch. y escribir). es ejecutar una secuencia de instrucciones almacenadas llamadas "programa".Operación del CPU La operación fundamental de la mayoría de los CPU. La localización en la memoria del programa es determinada por un contador de programa (PC). La instrucción que el CPU lee desde la memoria es usada para determinar qué deberá hacer el CPU. implica el recuperar una instrucción. Diagrama mostrando como es decodificada una instrucción del MIPS32. de la memoria de programa. 2 Frecuentemente la instrucción a ser leída debe ser recuperada de memoria relativamente lenta. (leer. Este problema es tratado en procesadores modernos en gran parte por los cachés y las arquitecturas pipeline (ver abajo). un Arquitectura de computadoras Página 13 . decodificar. (que es representada por un número o una secuencia de números).3 A menudo. ejecutar. En el paso de decodificación. decode. que almacena un número que identifica la posición actual en el programa. El programa es representado por una serie de números que se mantienen en una cierta clase de memoria de computador. el contador de programa indica al CPU. el Contador de Programa es incrementado por la longitud de la palabra de instrucción en términos de unidades de memoria. (MIPS Technologies 2005) El primer paso. La manera en que el valor de la instrucción numérica es interpretado está definida por la arquitectura del conjunto de instrucciones (el ISA) del CPU.

operandos para una operación de adición. llamados opcode. en CPUs e ISAs más abstractos y complicados. como por ejemplo.grupo de números en la instrucción. o como un lugar para localizar un valor. una operación de adición fue solicitada. indica qué operación realizar. es llevado a cabo el paso de la ejecución de la instrucción. Durante este paso. En diseños más viejos las unidades del CPU responsables de decodificar la instrucción eran dispositivos de hardware fijos. Tales operandos se pueden dar como un valor constante (llamado valor inmediato). una unidad aritmético lógica (ALU) será conectada a un conjunto de entradas y un conjunto de Arquitectura de computadoras Página 14 . es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias señales de configuración para el CPU. Sin embargo. varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operación deseada. por ejemplo. puede ser un registro o una dirección de memoria. Diagrama de bloques de un CPU simple Después de los pasos de lectura y decodificación. Este microprograma es a veces reescribible de tal manera que puede ser modificado para cambiar la manera en que el CPU decodifica instrucciones incluso después de que haya sido fabricado. Si. que según lo determinado por algún modo de dirección. Las partes restantes del número usualmente proporcionan información requerida para esa instrucción.

En otros casos los resultados pueden ser escritos a una memoria principal más lenta pero más barata y más grande. la ejecución condicional de programas (con el uso de saltos condicionales).salidas. y funciones en programas. decodificadas. como adición y operaciones de bits (bitwise). el proceso entero se repite con el siguiente ciclo de instrucción. en el registro de banderas. Después de la ejecución de la instrucción y la escritura de los datos resultantes. esta bandera puede ser usada por una posterior instrucción de salto para determinar el flujo de programa. Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de resultado.4 Muchas instrucciones también cambiarán el estado de dígitos en un registro de "banderas". Si la instrucción completada era un salto. La ALU contiene la circuitería para realizar operaciones simples de aritmética y lógica en las entradas. y la ejecución del programa continúa normalmente. y ejecutadas simultáneamente. Las entradas proporcionan los números a ser sumados. un tipo de instrucción de "comparación" considera dos valores y fija un número. la escritura (writeback). los resultados son escritos a algún registro interno del CPU para acceso rápido por subsecuentes instrucciones. el contador de programa será modificado para contener la dirección de la instrucción a la cual se saltó. Entonces. de acuerdo a cuál es el mayor. simplemente "escribe" los resultados del paso de ejecución a una cierta forma de memoria. múltiples instrucciones pueden ser leídas. En CPUs más complejos que el descrito aquí. y las salidas contendrán la suma final. normalmente leyendo la siguiente instrucción en secuencia debido al valor incrementado en el contador de programa. Esta sección describe lo que es referido generalmente como el "entubado RISC Arquitectura de computadoras Página 15 . Si la operación de adición produce un resultado demasiado grande para poder ser manejado por el CPU. puesto que a menudo indican el resultado de varias operaciones. El paso final. Muy a menudo. Por ejemplo. Estas banderas pueden ser usadas para influenciar cómo se comporta un programa. también puede ser ajustada una bandera (flag) de desbordamiento aritmético localizada en un registro de banderas (ver abajo la sección sobre rango de números enteros). Éstas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como |bucles (loops).

como sólo existe un programa activo. volátil. a menudo llamados microcontroladores. Según el tipo de memoria ROM que dispongan los microcontroladores. y se destina a guardar las variables y los datos. Como el microcontrolador sólo se destina a una tarea en la memoria ROM. sabremos de donde viene el nombre. ROM con máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: No existen sistemas de almacenamiento masivo como disco duro o disquetes. tipo ROM.1. los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. 4. pero. Si tenemos idea de cómo se fabrican los circuitos integrados. no se requiere guarda r una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. y se destina a contener el programa de instrucciones que gobierna la aplicación. que de hecho es bastante común entre los CPU simples usados en muchos dispositivos electrónicos. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado. Estos se fabrican en obleas Arquitectura de computadoras Página 16 . Otra parte de memoria será tipo RAM. sólo hay que almacenar un único programa de trabajo. la aplicación y utilización de los mismos es diferente. La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa.3 ESPACIO DE MEMORIA En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil. Los usuarios de computadores personales están habituados a manejar Megabytes de memoria. Por otra parte.clásico" (Classic RISC pipeline).

de manera que donde deba incidir la luz. La grabación se realiza. se sitúa entre la luz y la oblea una máscara con agujeros. se erosionan al exponerlos a la luz. Si. donde se impregnan capas de silicio y oxido de silicio. se suele usar la encriptación mediante fusibles para proteger el código contenido. disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. posteriormente. OTP (One Time Programable). y según convenga.que contienen varias decenas de chips. Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. esta pasará. con un grabador gobernado desde un PC. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. en la construcción de prototipos y series muy pequeñas. o bien. se desea borrar el contenido. Tanto en este tipo de memoria como en la EPROM. OTP El microcontrolador contiene una memoria no volátil de sólo lectura programable una sola vez por el usuario. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto. Ahora ya sabes de donde viene la máscara y no te acostarás sin saber una cosa más. Las cápsulas son de Arquitectura de computadoras Página 17 . como en el caso de los OTP. Estas obleas se fabrican a partir de procesos fotoquímicos. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos micrométricos que componen un chip. EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. Como no todos los puntos han de ser erosionados.

de bajo consumo. se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Para ello se usan "grabadores en circuito “que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. E2PROM o E2PROM Se trata de memorias de sólo lectura. pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Es más veloz y tolera más ciclos de escritura/borrado. Funciona como una ROM y una RAM pero consume menos y es más pequeña. que se puede escribir y borrar. Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito. Este tipo de memoria es relativamente lenta. programables y borrables eléctricamente EEPROM (Eléctrica Erasable Programmable Read OnIy Memory). No disponen de ventana de cristal en la superficie. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. FLASH Se trata de una memoria no volátil. por lo que no es recomendable una reprogramación continúa. como ya veremos más adelante. sin tener que sacar el circuito integrado de Arquitectura de computadoras Página 18 . Es muy cómoda y rápida la operación de grabado y la de borrado. es decir. la memoria FLASH es programable en el circuito. EEPROM. Tanto la programación como el borrado. El número de veces que puede grabarse y borrarse una memoria EEPROM es _nito. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito.material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. Son muy idóneos para la enseñanza y la Ingeniería de diseño. A diferencia de la ROM. Es más rápida y de mayor densidad que la EEPROM.

Algunos microprocesadores proporcionan señales de control que permiten que los registros externos que forman los puertos de E/S ocupen un espacio de direcciones separada.4 ENTRADA/ SALIDA. la instalación de nuevas piezas. cuando se ubican dentro del mismo espacio que la memoria. Cualquier aplicación de un sistema digital basado en un microprocesador o microcontrolador requiere la transferencia de datos entre circuitos externos al microprocesador y él mismo. El buffer de tercer estado tiene la función de controlar. En su forma más elemental. ENTRADA/SALIDA AISLADA.1. etc. es decir. (input /output) o ES (I/O). Por el contrario. distinto del espacio de direcciones de los registros externos que componen la memoria.la tarjeta. es decir. se dice que están en modo de ENTRADA/SALIDA AISLADA o E/S ESTÁNDAR. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. Cuando los puertos tienen asignado un espacio de direcciones separado. El registro tiene la función de almacenar temporalmente la información generada por el dispositivo periférico de entrada hasta que pueda ser leída por el microprocesador. un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico. se dice que están en modo de ENTRADA/SALIDA MAPEADA A MEMORIA o PROYECTADA EN MEMORIA. aislar o permitir el flujo de información del puerto al bus de datos del microprocesador. Estas transferencias constituyen las operaciones llamadas ENTRADA y SALIDA. compensando los desgastes y otros factores tales como la compresión. Así. 4.- Para que un microprocesador pueda implementar el modo E/S aislada (isolated I/O) son indispensables las siguientes condiciones: Arquitectura de computadoras Página 19 . Los puertos de entrada/salida son básicamente registros externos o internos. un puerto de entrada está compuesto sólo por un buffer de tercer estado y con más frecuencia por un buffer de tercer estado junto con un registro de almacenamiento (latch).

COMPARACIÓN ENTRE E/S AISLADA y E/S MAPEADA A MEMORIA El modo de E/S aislada presenta las siguientes ventajas: .El microprocesador debe proporcionar señales de control que permitan distinguir entre una operación con un puerto y una referencia a memoria.La capacidad de procesamiento y flexibilidad de las instrucciones de E/S es en general muy restringida.El modo de E/S mapeada a memoria (Memory mapped I/O) se basa en que tanto las localidades de memoria como los puertos de E/S se consideran como registros externos desde el punto de vista del microprocesador.1.El código de instrucciones debe tener instrucciones especiales con las que se pueda leer (entrada) o escribir (salida) en los puertos. . el registro asociado con el puerto de E/S es tratado simplemente como una localidad de memoria más. . ENTRADA/SALIDA MAPEADA.Como sólo se utilizan ocho líneas en el direccionamiento de un puerto. se necesitan menos circuitos para su decodificación. Las desventajas de este método son: . siempre y cuando el puerto de E/S que los interconecta se encuentre dentro del espacio de direccionamiento de memoria.. Una característica importante es que las operaciones de entrada y salida usando E/S mapeada a memoria no están limitadas a los registros internos. las instrucciones son más cortas.. Entonces. . 2.Como se usan instrucciones especiales para E/S en un programa éstas pueden distinguirse fácilmente de las instrucciones que hagan referencia a memoria. se tiene disponible la capacidad total de direccionamiento del microprocesador para circuitos de memoria. las instrucciones que hacen referencia a la memoria también pueden transferir datos entre un dispositivo periférico y el microprocesador.. controlado por las señales de control para memoria. es decir.Como los puertos están asignados a un espacio separado de la memoria.Como el número de puerto se puede representar en un byte. Arquitectura de computadoras Página 20 . De esta forma.

4.5 CARACTERÍSTICAS ESPECIALES. Arquitectura de computadoras Página 21 . Son diseñados para reducir el costo económico y el consumo de energía de un sistema en particular.Las instrucciones que hacen referencia a la memoria requieren dos bytes para representar la dirección. para la transferencia de información y la ejecución de operaciones aritméticas o lógicas directamente en los puertos. al igual que el sistema de control electrónico del motor en un automóvil.Permite la utilización de la gran variedad de instrucciones que hacen referencia a la memoria. . El control de un electrodoméstico sencillo como una batidora utilizará un procesador muy pequeño (4 u 8 bits) porque sustituirá a un autómata finito..1. sin necesidad de transferir los datos a los registros internos del microprocesador. Por otra parte. .Reduce el número de líneas de control que debe tener el microprocesador. En cambio. . El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bits. Sus desventajas son las siguientes: .Cada puerto implantado de este modo disminuye en uno las direcciones disponibles para memoria. la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. el modo de E/S mapeada a memoria tiene como ventaja: . por lo tanto son más largas y también puede ser más lentas. un reproductor de música y/o vídeo digital (mp3 o mp4) requerirá de un procesador de 32 bits o de 64 bits y de uno o más Códecs de señal digital (audio y/o vídeo).Es necesario decodificar las 16 líneas de direcciones para seleccionar el puerto.Se debe dedicar al menos una terminal del circuito integrado del microprocesador para la señal de control que distingue las operaciones con puertos de las operaciones con memoria. Por eso el tamaño de la unidad central de procesamiento.

La idea es que el circuito integrado se coloque en el dispositivo. con un mínimo de circuitos integrados externos de apoyo. Por ejemplo. y eso es todo. usted tiene distribuidos seguramente entre los electrodomésticos de su hogar una o dos docenas de microcontroladores. Un microprocesador tradicional no le permitirá hacer esto. teléfonos. está usando uno para esto). etc.Esquema de un microcontrolador. Los microcontroladores representan la inmensa mayoría de los chips de computadoras vendidos. Hay que agregarle los módulos de entrada y salida (puertos) y la memoria para almacenamiento de información. debido a que es más fácil convertirla en una computadora en funcionamiento. Un microcontrolador difiere de una unidad central de procesamiento normal. hornos microondas. enganchado a la fuente de energía y de información que necesite. lavadoras. Pueden encontrarse en casi cualquier dispositivo electrónico como automóviles. ya que espera que todas estas tareas sean manejadas por otros chips. sobre un 50 % son controladores "simples" y el restante corresponde a DSPs más especializados. Mientras se pueden tener uno o dos microprocesadores de propósito general en casa (Ud. un microcontrolador típico tendrá un generador de reloj integrado y una pequeña cantidad de memoria de acceso aleatorio y/o Arquitectura de computadoras Página 22 .

memoria ROM . la memoria RAM. un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. UARTs y buses de interfaz serie especializados. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. todo lo que se necesita son unos pocos programas de control y un cristal de sincronización. se ha de prescindir de cualquier otra circuitería Diferencias entre microprocesador y microcontrolador Si has tenido la oportunidad de realizar un diseño con un microprocesador pudiste observar que dependiendo del circuito se requerían algunos circuitos integrados adicionales además del microprocesador como por ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargaría del proceso del equipo. temporizadores. salidas y otros periféricos. como convertidores de analógico a digital. significando que para hacerlo funcionar. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programación integrado. En este caso el controlador recibe el nombre de controlador empotrado o embebido (embedded controller). puertos de entrada. es decir contiene en un solo integrado la Unidad de Proceso.ROM/EPROM/EEPROM/flash. Un microcontrolador es un solo circuito integrado que contiene todos los elementos electrónicos que se utilizaban para hacer funcionar un sistema basado con un microprocesador. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. como el lenguaje de programación BASIC que se utiliza bastante con este propósito. como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador. como I2C y CAN. Frecuentemente. Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de entrada/salida. Arquitectura de computadoras Página 23 . estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. con la consiguiente reducción de espacio.

una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines. Una memoria RAM de 28 Pines.Ventajas de un microcontrolador frente a un microprocesador Estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los microprocesadores y después pasaron a trabajar con los microcontroladores. Estas 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. 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 circuitería. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicación Arquitectura de computadoras Página 24 . el costo para un sistema basado Estructura de un sistema abierto basado en un microprocesador.

el IDE genera la línea de compilación incluyendo este modelo. y sobre todo más entendible la posterior lectura de código (en las secciones siguientes se mencionaran registros según sus nombres en estas bibliotecas). Arquitectura de computadoras Página 25 . aunque no existe la facilidad de incluir una sola. Includes #include <pic.h> Cuando se programa utilizando el MPLAB.h (siendo XX el modelo del PIC). lo mejor de todo. #include <p16F628.2 PROGRAMACIÓN. haciendo mucho más intuitiva la programación. En microcontrolador es mucho menor y. y el TRISA en lugar de 85h (esta biblioteca es en realidad un gran conjunto de defines). 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.El microcontrolador es un sistema cerrado. por lo que es necesario incluir la que corresponde al microcontrolador en cuestión. Con esta bandera seteada y la inclusión de la biblioteca <pic. el tiempo de desarrollo de su proyecto electrónico se disminuye considerablemente 4.h> es suficiente para que a su vez se incluya la biblioteca picXX.h> Colocar este include permite manejar el conjunto de nombres de registros y bits. Código ejemplo: #include <pic. por ejemplo: a partir de la inclusión de estas bibliotecas se puede usar el nombre PORTA en lugar de la dirección de memoria 05h. al elegir el modelo de PIC para el que se va a compilar.inc> Utilizando el MPASM Assembler también es posible incluir bibliotecas que permiten nombrar registros.

Configuración de algunos PIC La configuración de un microcontrolador refiere a como se setean algunas de sus características al momento en que el microcontrolador inicia su ejecución. por ejemplo: el tipo de reloj y frecuencia con que va a trabajar. Esta palabra determina el funcionamiento del PIC.Código ejemplo: #include <p16F628. por lo tanto no se puede incluir cualquier biblioteca. así como el tratamiento de la rutina de interrupción (en PICC existe una sola rutina de interrupción). Arquitectura de computadoras Página 26 . y en el directorio C:\Program Files\MPLAB IDE\MCHIP_Tools en una instalación estándar del MPLAB (este incluye el ensamblador y el linkeditor).inc> Existen muchas bibliotecas disponibles para incluir. a menos de algunas macros y el tipo de dato bit (en PICC existe el tipo de dato bit). aunque hay que considerar que tanto el lenguaje C como el assembler son exclusivos para estos microcontroladores. único momento en que se puede acceder a la dirección 2007h (dirección donde se guarda la configuración). 9Esta configuración no tiene que ver con el lenguaje en el que se programe aunque si con el modelo de microcontrolador (por ejemplo: la palabra en memoria de configuración del PIC 16F628 tiene poco en común con la del PIC 16F877). Por otro lado el C sigue el estándar de ANSI casi completamente. Algunas bibliotecas disponibles para ser incluidas se encuentran en los directorios c:\ PICCLITE\include y en c:\PICCLITE\samples\ en una instalación estándar del compilador PICC Lite. la habilitación del watchdog (timer que resetea el microcontrolador) y la protección del código entre otras. Configurar un PIC significa establecer la palabra de configuración en tiempo de carga del programa.

inc Código ejemplo: __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _LVP_OFF & _PWRTE_ON USART Universal Synchronous Asynchronous Receiver Transmitter. Arquitectura de computadoras Página 27 .Ejemplos de configuración para el PIC 16F877A Configuración de un microcontrolador PIC 16F877A programado con el lenguaje PICC versión Lite que incluye la librería pic.h. memorias eeproms.. PC. También se conoce como SCI (Serial Communications Interface). utilizando tanto un modo asincrónico (pudiendo ser full duplex) o sincrónico (master o Slave. Ejemplos de configuración para el PIC 16F628 Configuración de un microcontrolador PIC 16F628 programado en Assembler que incluye la librería p16F628. Código ejemplo: __CONFIG( HS & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & UNPROTECT ). etc. El módulo USART de los microcontroladores PIC permite la comunicación con otros microcontroladores. half duplex).

existen rutinas para el uso y gestión del USART que se encuentran en el archivo sci.h. Cuando se utiliza el lenguaje PICC en su versión Lite. Estos pines tienen que estar configurados como entrada (puestos en 1 en los registros TRIS correspondientes). En un PIC 16F87XA los pines que son utilizados por la funcionalidad integrada USART son el RC6/TX y el RC7/RX. los microcontroladores PIC de gama media no los implementan. Para utilizar el módulo en Assembler se deben utilizar los registros de la misma forma en que se usan en C a bajo nivel. En particular para el proyecto se hicieron cambios para integrar controles de tiempos (se Arquitectura de computadoras Página 28 .Permite enviar 8 o 9 bits por transmisión y tiene posibilidad de alcanzar varias velocidades de transmisión. En las siguientes secciones se describirá como se utiliza el USART en modo asincrónico con transmisiones de 8 bits. se describirá el funcionamiento y uso del módulo USART a más bajo nivel. para utilizarlos hay que programarlos utilizando algún par de pines disponibles. En un PIC 16F62X los pines que son utilizados por la funcionalidad integrada USART son el RB1/RX y el RB2/TX. siendo lo más importante. Si bien existen varios protocolos relacionados con la sincronización de la comunicación USART como el RTS/CTS o el XON/XOFF. dado que puede ser necesario cambiar esta biblioteca. A pesar de que se cuenta con la biblioteca sci.h. el programador logra desentenderse de toda la complejidad del protocolo a nivel de capa 1 y es suficiente con poner un dato en un registro del microcontrolador para enviar y leer otro registro para recibir. que por ser una funcionalidad integrada al PIC. ubicado en el directorio C:\PICCLITE \samples\USART en una instalación estándar.

habilita transmisión. bit de habilitación de recepción simple. selección de modo (sincrónico. setea recepción de 8 o 9 bits. TX9 TXEN SYNC BRGH TRMT TX9D habilita transmisiones de 8 o 9 bits. Incluye: SPEN RX9 SREN bit de habilitación del puerto serial. Registro RCSTA Receive Status and Control Register (Registro de estado y control de recepción) . Arquitectura de computadoras Página 29 . externa). es decir se hicieron rutinas bloqueantes con timeout.agregaron timer para controlar que si pasado cierto tiempo no llega un dato se devuelva error). bit de estado del Transmit Shift Register noveno bit de transmisión de datos. Incluye: CSRC selecciona la fuente de reloj (interna. asincrónico). Registros que intervienen Registro TXSTA Transmit Status and Control Register (Registro de estado y control de transmisión) . complementa el control en la generación de baudios.

bit de error por sobreescritura. el reloj de la transmisión. bit de habilitación de detección de dirección. Registro SPBRG Genera los pulsos. Dependiendo de la velocidad de transmisión que se quiera conviene setear en 0 o 1 el BRGH. bit bandera de error de framing. noveno bit de recepción de datos. Registro PIE1 Incluye: TXIE habilita interrupciones por transmisión de USART RCIE habilita interrupciones por recepción de USART Registro PIR1 Incluye: TXIF bandera que indica que se enviado por USART RCIF bandera que indica que se ha recibido por USART Arquitectura de computadoras Página 30 . Existe un timer independiente de 8 bits que Decrementa hasta 0 a partir del valor de este registro.CREN ADDEN FERR OERR RX9D bit de habilitación de recepción continua. y dependiendo de este es el valor que se setea en el SPBRG (ver figura 10-3 y 10-4 de la hoja de datos del pic16F87X).

Registro TXREG Registro que se debe escribir con el dato a enviar por USART. Modo de uso Inicialización Inicialmente es necesario hacer una serie de seteos para que pueda usarse el modo USART. El microcontrolador ejecuta el programa cargado en la memoria Flash. con interrupciones. Como es más fácil trabajar con el sistema de numeración hexadecimal.2. Arquitectura de computadoras Página 31 . el código ejecutable se representa con frecuencia como una serie de los números hexadecimales denominada código Hex. esto incluye definir a qué velocidad se va a transmitir. el modo (sincrónico / asincrónico). aparentemente sin significado. Esto se denomina el código ejecutable y está compuesto por una serie de ceros y unos. el conjunto de instrucciones tiene 35 instrucciones diferentes. el código binario está compuesto por palabras de 12.1 Modelo de programación. 4. etc. Todas las instrucciones que el microcontrolador puede reconocer y ejecutar se les denominan colectivamente Conjunto de instrucciones. Dependiendo de la arquitectura del microcontrolador. Registro RCREG Registro que se debe leer al recibir un dato por USART. 14 o 16 bits de anchura. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura. Cada palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el funcionamiento del microcontrolador.

Siguiendo la sintaxis básica del ensamblador. este lenguaje de programación todavía sigue siendo popular. Las instrucciones en ensamblador consisten en las abreviaturas con significado y a cada instrucción corresponde una localidad de memoria. Como permite controlar en detalle todos los procesos puestos en marcha dentro del chip.Como el proceso de escribir un código ejecutable era considerablemente arduo. en consecuencia fue creado el primer lenguaje de programación denominado ensamblador (ASM). el lenguaje ensamblador tiene algunas desventajas: Arquitectura de computadoras Página 32 . HEste programa compila instrucción a instrucción sin optimización. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a código máquina (código binario). era más fácil escribir y comprender el código. Ventajas de lenguajes de programación de alto nivel A pesar de todos los lados buenos.

 Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un programador tiene que conocer para escribir un programa  Un programador tiene que conocer el hardware del microcontrolador para escribir un programa Programa escrito en C (El mismo programa compilado al código ensamblador): Arquitectura de computadoras Página 33 . haciéndolo muy largo y difícil de manejar. Incluso una sola operación en el programa escrito en ensamblador consiste en muchas instrucciones.

2. probablemente sepa que la arquitectura RISC carece de algunas instrucciones. Define las operaciones básicas que puede realizar el procesador. No hay que preocuparse al utilizar uno de estos lenguajes de programación de alto nivel como es C. de todas formas ya no importa. + a). que organizadas adecuadamente permiten escribir palabras. que conjugadas y organizadas forman lo que conocemos como software. Aunque siempre se puede insertar en el programa una secuencia escrita en ensamblador. Ya no es posible conocer exactamente cómo se ejecuta cada sentencia. Por supuesto.) fueron creados con el propósito de superar las desventajas del ensamblador. porque el compilador encontrará automáticamente la solución a éste problema y otros similares. para cada problema hay una solución y éste no es una excepción gracias a la aritmética que permite realizar las operaciones complejas al descomponerlas en un gran número operaciones más simples.. no hay instrucción apropiada para multiplicar dos números. Aunque no aparezca en el esquema.2 Conjunto de instrucciones. no podíamos dejar al conjunto o repertorio de instrucciones fuera de esta fiesta. El programador ya no tiene que conocer el conjunto de instrucciones o características del hardware del microcontrolador utilizado. oraciones y cuanto programa se le ocurra. Si alguna vez ha escrito un programa para un microcontrolador PIC en lenguaje ensamblador. 4... En este caso. porque este elemento determina lo que puede hacer el procesador. C etc. Para multiplicar los números a y b. Arquitectura de computadoras Página 34 . Ya estamos en el comienzo de una historia muy larga. Por ejemplo. En lenguajes de programación de alto nivel varias instrucciones en ensamblador se sustituyen por una sentencia. El conjunto de instrucciones vienen siendo como las letras del alfabeto.. la multiplicación se puede sustituir con facilidad por adición sucesiva (a x b = a + a + a + .Los lenguajes de programación de alto nivel (Basic. el elemento básico del lenguaje. basta con escribir a*b. Pascal.

Es por eso que los procesadores más modernos. por lo que en la actualidad. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos. la mayoría de los sistemas CISC de alto rendimiento. del inglés Reduced Instruction Set Computer. Se centra en la obtención de procesadores con las siguientes características fundamentales:    Instrucciones de tamaño fijo. Arquitectura de computadoras Página 35 . aunque actualmente existen versiones CISC-RISC de estos microcontroladores. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y que permiten realizar operaciones complejas entre operandos situados en la memoria o en los registros internos. Los procesadores de los microcontroladores PIC son de tipo RISC. tradicionalmente basados en arquitecturas CISC implementan mecanismos de traducción de instrucciones CISC a RISC. del inglés Complex Instruction Set Computer. para aprovechar las ventajas de este tipo de procesadores. y reducen los accesos a memoria. CISC. Computadora con Conjunto de Instrucciones Reducido. llamadas generalmente microinstrucciones. que determinan la arquitectura del procesador: CISC y RISC. convierten las instrucciones complejas en varias instrucciones simples del tipo RISC. que pretenden aprovechar las ventajas de los procesadores RISC a la vez que se mantiene la compatibilidad hacia atrás con las instrucciones de tipo CISC.Existen dos tipos básicos de repertorios de instrucciones. Dentro de los microcontroladores CISC podemos encontrar a la popular familia INTEL -51 y la Z80. Pocas instrucciones.  Número relativamente elevado de registros de propósito general. Una de las características más destacables de este tipo de procesadores es que posibilitan el paralelismo en la ejecución. Computadora de Conjunto de Instrucciones Complejo. Este tipo de repertorio dificulta el paralelismo entre instrucciones. RISC.

2. pero difieren en la forma de obtener ese dato. Pero además hay que indicar en la instrucción cual es el dato o donde se encuentra el dato con el que hay que operar.3 Modos de direccionamiento. Instrucción LDA LDA LDA Instrucción LDA LDA LDA Modo de Direccionamiento Inmediato Absoluto Absoluto Indexado X Modo de direccionamiento Absoluto Indexado Y Preindexado Postindexado Código de Operación A9 AD BD Código de operación B9 A1 B1 Arquitectura de computadoras Página 36 . Así por ejemplo si se pretende cargar un dato en el acumulador se emplea una instrucción cuyo nemónico es LDA abreviatura de LoaD Accumulator. Para no tener que memorizar estos códigos y facilitar de esta manera la tarea del programador. a cada instrucción se le asigna una abreviatura que dé una idea de la acción que realiza. Una instrucción es un código binario con un significado ya establecido de antemano.4. que tienen como denominador común que todas las instrucciones cargan en el acumulador un dato. Así por ejemplo la instrucción LDA (Cargar el acumulador) da lugar a los nueve códigos de operación que se indican en la tabla siguiente.

El 65C02 dispone de 68 nemónicos. que expandidos en los 15 modos de direccionamiento posibles dan un total de 210 códigos de operación. en la columna de la derecha se representa el formato de escritura para cada uno de ellos en un lenguaje emsamblador. que expandidos en los 15 modos de direccionamiento posibles dan un total de 210 códigos de operación. Esta gran variedad de modos de direccionamiento facilita la labor del programador que deberá de recordar un grupo de nemónicos más reducido que en otros microprocesadores. En la siguiente tabla se muestran los modos de direccionamiento del 65C02. Arquitectura de computadoras Página 37 . en la columna de la derecha se representa el formato de escritura para cada uno de ellos en un lenguaje emsamblador. En la siguiente tabla se muestran los modos de direccionamiento del 65C02.LDA LDA LDA Absoluto Página 0 Indexado Página 0 X Indirecto A5 B5 B2 Esta gran variedad de modos de direccionamiento facilita la labor del programador que deberá de recordar un grupo de nemónicos más reducido que en otros microprocesadores. El 65C02 dispone de 68 nemónicos.

Y nn.Y nn A [nn] Arquitectura de computadoras Página 38 .X (Indexado) Pre-indexado (Indexado indirecto) Indirecto absoluto indexado Post-indexado (indirecto indexado) Relativo Acumulador Indirecto Mejorado Formato del Operando (No hay operando) #nn nnnn nn [nnnn] nnnn.X] [nnnn].X [nn.Y (indexado) Página Cero.X (indexado) Absoluto.X [nn].Modos de Direccionamiento Implícito Inmediato Absoluto Página Cero Indirecto absoluto Absoluto.X nnnn.

idealmente son portables. Particularmente. Esto está en contraste con los lenguajes de alto nivel. Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa. que. las posiciones de memoria. Esta representación es usualmente definida por el fabricante de hardware. y son llamados macro ensambladores. y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones). y la ayuda de depuración. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de computador física (o virtual). o assembler (assembly language en inglés) es un lenguaje de programación de bajo nivel y para otros los computadores. circuitos programables. integrados microprocesadores. El lenguaje ensamblador. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.4 Lenguaje ensamblador. la mayoría de los ensambladores modernos incluyen una facilidad de macro (descrita más abajo). El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina. microcontroladores. Fue usado principalmente en los inicios del desarrollo de software.2. Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel. los registros del procesador. y otras características del lenguaje. Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran Arquitectura de computadoras Página 39 .4. controlar el proceso de ensamblaje.

 También se puede controlar el tiempo en que tarda una rutina en ejecutarse. Al cambiar a una máquina con arquitectura diferente. ya que. en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación. para poder ser usado en otra máquina distinta. Características  El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel. es un lenguaje de bajo nivel.  El lenguaje ensamblador es difícilmente portable. es decir. altos rendimientos. o un uso de recursos controlado y reducido. generalmente es necesario reescribirlo completamente. Arquitectura de computadoras Página 40 .  Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel.  Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel. entre otras cosas. puede necesitar ser modificado.limitados. Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados. especialmente cuando se requiere la manipulación directa de hardware. es decir. un código escrito para un microprocesador. e impedir que se interrumpa durante su ejecución.

climatizadores.. encendido. Automóviles: mando de sistemas del automóvil (ABS. especialmente para las arquitecturas basadas en RISC.. climatizador. y resolviendo los nombres simbólicos para las localizaciones de memoria y otras entidades. Sun SPARC. 1. reproductores y grabadores de CD y DVD. Equipo de Cómputo impresoras. hornos.) Arquitectura de computadoras Página 41 . robo.ej. equipos de sonido. 3. refrigeradores. y HP PA-RISC. así como también para el x86 (-64). evitando tediosos cálculos y actualizaciones manuales de las direcciones después de cada modificación del programa. Aparatos portátiles y de bolsillo (tarjetas.. ratones.1 El uso de referencias simbólicas es una característica clave del lenguaje ensamblador. teclados. módems.. vigilancia y alarma en los edificios utilizan estos chips para optimizar el rendimiento de ascensores.) Domótica sistemas antirrobo. los sistemas de supervisión. Generar cortas secuencias de instrucciones como expansión en línea en vez de llamar a subrutinas. Periféricos y dispositivos auxiliares de los computadores. teléfonos. TV. Electrodomésticos. 2. teléfonos.. alarmas de incendio. Aparatos electrodos ticos: microondas. La mayoría de los ensambladores también incluyen facilidades de macros para realizar sustitución textual . En los compiladores para lenguajes de alto nivel. tales como MIPS.. etc.Programa ensamblador Artículo principal: Ensamblador Típicamente. Los ensambladores modernos. inyección. Los ensambladores son generalmente más simples de escribir que los compiladores para los lenguajes de alto nivel. son el último paso antes de generar el código ejecutable. monederos. un programa ensamblador (assembler en inglés) moderno crea código objeto traduciendo instrucciones mnemónicas de lenguaje ensamblador en opcodes. y han estado disponibles desde los años 1950. unidades de disco. optimizan la planificación de instrucciones para explotar la segmentación del CPU eficientemente. calefacción. etc.

el subsistema de gráficos y el subsistema de E/S.2 COMO SUBSISTEMA DE UNA COMPUTADORA. 7. 9. 5. Sistema de navegación espacial. 4. El rendimiento de los sistemas no depende únicamente del microprocesador. Control industrial y robótica. Por esta razón.3. Industria de automoción . 8. el software de aplicaciones y la memoria.1 COMO SISTEMA INDEPENDIENTE. sino que también afecta a los resultados de los componentes de hardware y software como el sistema operativo.3. Instrumentación. 4. Sistemas de seguridad y alarma. Arquitectura de computadoras Página 42 . Electro medicina. es que se muestra el rendimiento del procesador. un sistema complete. Modificarse. 6. Domótica en general. con unas prestaciones limitadas que no pueden modificarse y que no pueden llevar a cabo las tareas para las que ha sido programado de forma autónoma. Máquinas expendedoras y juguetería.4. 10.

PRINCIPALES ARQUITECTURAS COMO LA ARQUITECTURA VON NEUMANN Y HARVARD. Arquitectura de computadoras Página 43 .CONCLUSIÓN EN ESTA UNIDAD 4 HABLAMOS ACERCA DE LOS MICROCONTROLADORES.

com/electronic2/jhueso/Entradas.PDF http://es.com/eng/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/ Arquitectura de computadoras Página 44 .mikroe.es/tecnologiaelectronica/microprocesadores/contenidos/Archivos_Semana_1/introduccion_a_los_microco ntroladores.angelfire.org/wiki/Microcontrolador http://ocw.pdf http://www.BIBLIOGRAFÍA http://www.wikipedia.upm.

3. Págin a 46 Arquitectura de computadoras . el software de aplicaciones y la memoria. El rendimiento de los sistemas no depende únicamente del microprocesador.2 COMO SUBSISTEMA DE UNA COMPUTADORA.4. PRINCIPALES ARQUITECTURAS COMO LA ARQUITECTURA VON NEUMANN Y HARVARD. es que se muestra el rendimiento del procesador. sino que también afecta a los resultados de los componentes de hardware y software como el sistema operativo. el subsistema de gráficos y el subsistema de E/S. Por esta razón. CONCLUSIÓN EN ESTA UNIDAD 4 HABLAMOS ACERCA DE LOS MICROCONTROLADORES.

PDF http://es.es/tecnologiaelectronica/microprocesadores/contenidos/Archivos_Semana_1/introduccion _a_los_microcontroladores.com/electronic2/jhueso/Entradas.com/eng/chapters/view/80/capitulo-2-programacion-delos-microcontroladores/ Págin a 47 Arquitectura de computadoras .BIBLIOGRAFÍA http://www.mikroe.org/wiki/Microcontrolador http://ocw.pdf http://www.angelfire.wikipedia.upm.

Págin a 48 Arquitectura de computadoras .

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->