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 . SUS TERMINALES Y SOBRE TODO SUS APLICACIONES.OBJETIVO EL OBJETIVO ES QUE EL ALUMNOS APRENDERÁ LA IMPORTANCIA DEL MICROCONTROLADOR ASÍ COMO DE SUS ARQUITECTURAS.

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

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

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

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

que interpreta las instrucciones contenidas en los programas y procesa los datos. o simplemente el procesador o microprocesador. los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU. 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. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. UCP o CPU (por el acrónimo en inglés de central processing unit). y hoy en día. el término "CPU" es aplicado usualmente a todos los microprocesadores.Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia. 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. Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Arquitectura de computadoras Página 9 . 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. Generalmente. Desde mediados de los años 1970. junto con el almacenamiento primario y los dispositivos de entrada/salida. La unidad central de procesamiento. es el componente del computador y otros dispositivos programables. que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema.2 CPU.1.

una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computadora. neveras. Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande. La forma. calculadoras. 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. hasta teléfonos móviles o celulares. y por lo tanto requieren una cierta clase de elementos de conmutación para diferenciar y cambiar estos estados. juguetes. mientras que los tubos de vacío no sufren del Arquitectura de computadoras Página 10 . 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. Antes de la aceptación comercial del transistor. este costoso método de diseñar los CPU a la medida. pero su operación fundamental ha permanecido bastante similar. aviones. en términos generales.La expresión "unidad central de proceso" es. Los microprocesadores modernos aparecen en todo. Por ejemplo. los relés eléctricos y los tubos de vacío (válvulas termoiónicas) eran usados comúnmente como elementos de conmutación. hacer circuitos de lógica secuencial de corriente directa requería hardware adicional para hacer frente al problema del rebote de contacto. Sin embargo. generalmente una computadora única en su especie. Sin embargo. desde automóviles. 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. 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. no eran fiables por varias razones. entre otros Casi todos los CPU tratan con estados discretos. Por otro lado. para una aplicación particular. televisores. el diseño y la implementación de los CPU ha cambiado drásticamente desde los primeros ejemplos.

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

Arquitectura de computadoras Página 12 . Adicionalmente. el tamaño. como ha aumentado la capacidad de construir transistores excesivamente pequeños en un IC. 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.tamaño más pequeño del CPU. como resultado de estar implementado en una simple pastilla. así como ampliar el uso de paralelismo. Esto ha permitido que los microprocesadores síncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios gigahercios. en los pasados sesenta años han cambiado drásticamente. la construcción. Mientras que. y el subumbral de pérdida. la complejidad y el número de transistores en un simple CPU también se han incrementado dramáticamente. y la forma general del CPU. como la electromigración. 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. 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. que ha demostrado hasta la fecha. ser una predicción bastante exacta del crecimiento de la complejidad de los CPUs y otros IC. la complejidad. se han presentado preocupaciones sobre los límites de la tecnología de transistor del circuito integrado. y otros métodos que extienden la utilidad del modelo clásico de von Neumann. A medida que la ya mencionada ley del Moore continúa manteniéndose verdadera. Casi todos los CPU comunes de hoy se pueden describir con precisión como máquinas de programa almacenado de von Neumann. Esta tendencia ampliamente observada es descrita por la ley de Moore.

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

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

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

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

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

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

4. 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. Por el contrario. 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.1. Estas transferencias constituyen las operaciones llamadas ENTRADA y SALIDA. Los puertos de entrada/salida son básicamente registros externos o internos. Así. (input /output) o ES (I/O). aislar o permitir el flujo de información del puerto al bus de datos del microprocesador. El buffer de tercer estado tiene la función de controlar. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. 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. 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. la instalación de nuevas piezas. cuando se ubican dentro del mismo espacio que la memoria. se dice que están en modo de ENTRADA/SALIDA AISLADA o E/S ESTÁNDAR. Cuando los puertos tienen asignado un espacio de direcciones separado. 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).- 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 . es decir. es decir. etc. compensando los desgastes y otros factores tales como la compresión. En su forma más elemental.la tarjeta. ENTRADA/SALIDA AISLADA. distinto del espacio de direcciones de los registros externos que componen la memoria.

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

la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. por lo tanto son más largas y también puede ser más lentas. El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bits.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. En cambio.5 CARACTERÍSTICAS ESPECIALES. Sus desventajas son las siguientes: .Reduce el número de líneas de control que debe tener el microprocesador. el modo de E/S mapeada a memoria tiene como ventaja: . Arquitectura de computadoras Página 21 .Es necesario decodificar las 16 líneas de direcciones para seleccionar el puerto.Cada puerto implantado de este modo disminuye en uno las direcciones disponibles para memoria.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.Las instrucciones que hacen referencia a la memoria requieren dos bytes para representar la dirección. 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). 4. Por otra parte. para la transferencia de información y la ejecución de operaciones aritméticas o lógicas directamente en los puertos. .. sin necesidad de transferir los datos a los registros internos del microprocesador. . al igual que el sistema de control electrónico del motor en un automóvil. Son diseñados para reducir el costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la unidad central de procesamiento.

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

Arquitectura de computadoras Página 23 . todo lo que se necesita son unos pocos programas de control y un cristal de sincronización. temporizadores. 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. significando que para hacerlo funcionar. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. como el lenguaje de programación BASIC que se utiliza bastante con este propósito. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad. El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de entrada/salida. puertos de entrada. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. es decir contiene en un solo integrado la Unidad de Proceso. En este caso el controlador recibe el nombre de controlador empotrado o embebido (embedded controller). con la consiguiente reducción de espacio. como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador. como convertidores de analógico a digital. estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. como I2C y CAN. UARTs y buses de interfaz serie especializados.ROM/EPROM/EEPROM/flash. la memoria RAM. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programación integrado. salidas y otros periféricos. un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. Frecuentemente. memoria ROM . 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.

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. el costo para un sistema basado Estructura de un sistema abierto basado en un microprocesador. Una memoria RAM de 28 Pines. una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines. 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 .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.

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

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). por ejemplo: el tipo de reloj y frecuencia con que va a trabajar. por lo tanto no se puede incluir cualquier biblioteca.inc> Existen muchas bibliotecas disponibles para incluir. así como el tratamiento de la rutina de interrupción (en PICC existe una sola rutina de interrupción). Por otro lado el C sigue el estándar de ANSI casi completamente. 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). aunque hay que considerar que tanto el lenguaje C como el assembler son exclusivos para estos microcontroladores. Configurar un PIC significa establecer la palabra de configuración en tiempo de carga del programa. 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. único momento en que se puede acceder a la dirección 2007h (dirección donde se guarda la configuración). a menos de algunas macros y el tipo de dato bit (en PICC existe el tipo de dato bit).Código ejemplo: #include <p16F628. Esta palabra determina el funcionamiento del PIC. Arquitectura de computadoras Página 26 . 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. la habilitación del watchdog (timer que resetea el microcontrolador) y la protección del código entre otras.

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 ).h. half duplex). memorias eeproms.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. etc. PC.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. También se conoce como SCI (Serial Communications Interface). Arquitectura de computadoras Página 27 .. utilizando tanto un modo asincrónico (pudiendo ser full duplex) o sincrónico (master o Slave. El módulo USART de los microcontroladores PIC permite la comunicación con otros microcontroladores.

h. Cuando se utiliza el lenguaje PICC en su versión Lite. para utilizarlos hay que programarlos utilizando algún par de pines disponibles. ubicado en el directorio C:\PICCLITE \samples\USART en una instalación estándar. En un PIC 16F87XA los pines que son utilizados por la funcionalidad integrada USART son el RC6/TX y el RC7/RX. siendo lo más importante. A pesar de que se cuenta con la biblioteca sci. los microcontroladores PIC de gama media no los implementan. que por ser una funcionalidad integrada al PIC.h. dado que puede ser necesario cambiar esta biblioteca. 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. En particular para el proyecto se hicieron cambios para integrar controles de tiempos (se Arquitectura de computadoras Página 28 . existen rutinas para el uso y gestión del USART que se encuentran en el archivo sci. 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. En un PIC 16F62X los pines que son utilizados por la funcionalidad integrada USART son el RB1/RX y el RB2/TX. Estos pines tienen que estar configurados como entrada (puestos en 1 en los registros TRIS correspondientes). Si bien existen varios protocolos relacionados con la sincronización de la comunicación USART como el RTS/CTS o el XON/XOFF.Permite enviar 8 o 9 bits por transmisión y tiene posibilidad de alcanzar varias velocidades de transmisión. 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.

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

Registro SPBRG Genera los pulsos. 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). bit de error por sobreescritura. bit de habilitación de detección de dirección. el reloj de la transmisión. Dependiendo de la velocidad de transmisión que se quiera conviene setear en 0 o 1 el BRGH. 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 . bit bandera de error de framing.CREN ADDEN FERR OERR RX9D bit de habilitación de recepción continua. Existe un timer independiente de 8 bits que Decrementa hasta 0 a partir del valor de este registro.

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

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

haciéndolo muy largo y difícil de manejar. Incluso una sola operación en el programa escrito en ensamblador consiste en muchas instrucciones.  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 .

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

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

a cada instrucción se le asigna una abreviatura que dé una idea de la acción que realiza. 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. Una instrucción es un código binario con un significado ya establecido de antemano. que tienen como denominador común que todas las instrucciones cargan en el acumulador un dato. Para no tener que memorizar estos códigos y facilitar de esta manera la tarea del programador. pero difieren en la forma de obtener ese dato.2. 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. 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.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 .4.

que expandidos en los 15 modos de direccionamiento posibles dan un total de 210 códigos de operación. El 65C02 dispone de 68 nemónicos. 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. 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. 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. El 65C02 dispone de 68 nemónicos. 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.

Modos de Direccionamiento Implícito Inmediato Absoluto Página Cero Indirecto absoluto Absoluto.X [nn].X] [nnnn].X (indexado) Absoluto.X nnnn.X [nn.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.Y (indexado) Página Cero.

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

 El lenguaje ensamblador es difícilmente portable. 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. Al cambiar a una máquina con arquitectura diferente. puede necesitar ser modificado.limitados. Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados. 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.  También se puede controlar el tiempo en que tarda una rutina en ejecutarse. es un lenguaje de bajo nivel.  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. es decir. especialmente cuando se requiere la manipulación directa de hardware. un código escrito para un microprocesador. generalmente es necesario reescribirlo completamente. o un uso de recursos controlado y reducido. altos rendimientos. Arquitectura de computadoras Página 40 . ya que. es decir. entre otras cosas. en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes 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. e impedir que se interrumpa durante su ejecución. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación.

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

4. Instrumentación. Sistemas de seguridad y alarma.2 COMO SUBSISTEMA DE UNA COMPUTADORA. 10. 4. el software de aplicaciones y la memoria. Modificarse. El rendimiento de los sistemas no depende únicamente del microprocesador. Electro medicina. Industria de automoción .3. 5. Arquitectura de computadoras Página 42 . Por esta razón. un sistema complete. es que se muestra el rendimiento del procesador.4. Sistema de navegación espacial. 6. sino que también afecta a los resultados de los componentes de hardware y software como el sistema operativo. Máquinas expendedoras y juguetería. el subsistema de gráficos y el subsistema de E/S. 9.1 COMO SISTEMA INDEPENDIENTE. 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. 7. Control industrial y robótica. 8.3.

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

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

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

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

Págin a 48 Arquitectura de computadoras .

Sign up to vote on this title
UsefulNot useful