Curso de Microprocesadores y Microcontroladores. Unidad 1

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Curso de Microprocesadores y Microcontroladores. Unidad 1"

Transcripción

1 Curso de Microprocesadores y Microcontroladores. Unidad 1 Contenido: 1 Portada. 2 Temario. 3 Manual del Curso. 4 Anexos

2 Curso de Microcontroladores I Objetivos del Curso Comenzar a familiarizarse con el entorno de los Microcontroladores Intel Realizar Primeras prácticas de control y prueba. Operaciones básicas e intermedias. Tiempo aproximado 40 Horas Número de prácticas Teoría: 25 hrs. Práctica: 15 hrs. Practicas Práctica 1 In Out por los puertos. Práctica 2 Mandar mensajes al LCD de modo manual. Practica 3 Lectura por un puerto y contenido de la lectura por el LCD. Practica 4 Lectura en LCD de un ADC 0804 Practica 5 Probador de voltajes. Practica 6 Probador de Timer Counter Practica 7 Medidor de RPM. Practica 8 Control de Interrupciones - Página 2-

3 Indice General Capitulo 1. Introducción a los Microprocesadores La Evolucion de los Microprocesadores Características de los Microcontroladores 1.3. Pinout de los Microcontroladores Intel Capitulo 2. Configuración de la memoria en el Microcontrolador 2.1. Memoria de programa y datos Memoria de programa Memoria de datos Area de direccionamiento sólo indirecto Area de direccionamiento directo e indirecto Area de registros o funciones especiales 2.7. Operación Reset. Capitulo 3. Programación de los Microcontroladores 3.1. Introducción 3.2. Modos de direccionamiento 3.3. Ciclo de instrucción 3.4. Tipo de instrucciones 3.5. Instrucciones aritméticas Instrucciones lógicas Instrucciones de transferencia ó movimiento de datos Transferencia de datos sobre la RAM interna Transferencia de datos sobre la RAM externa Memoria de programas para el tratamiento de tablas 3.8. Instrucciones Booleanas 3.9. Instrucciones de salto Instrucciones de salto incondicional Instrucciones de salto condicional <<SET>> de instrucciones de la familia MCS-51 Presentación del software y equipo para el desarrollo de aplicaciones Introducción El Macroensamblador: Operaciones del editor. Operaciones de ensamblado. Operaciones de Encadenado. Operaciones de Simulación Ejecución y estudio de programas en el Macroensamblador. Control de puertos de Entrada/Salida. Introducción El Microcontrolador como Microprocesador. Operaciones de escritura en los puertos del Microcontrolador. El puerto P0 en modo salida. Operaciones de lectura en los puertos. Control de procesos Industriales básicos. Control del LCD. Control del Teclado. Adquisición de datos mediante ADC Interrupciones. Introducción. Tipos de Interrupciones. Proceso de interrupción en los Microcontroladores. Niveles de prioridad. Interrupciones externas. (INT0) e (INT1) Interrupciones internas producidas por Timer 0 y1. Temporizadores y Contadores. Introducción Timer 0 (T0) y Timer 1 (T1). Temporizador/Contador de 13 y 16 bit, arranque por software. Programas. - Página 3-

4 Unidad INTRODUCCIÓN A LOS MICROPROCESADORES LA EVOLUCION DEL MICROPROCESADORES Antes de comenzar a analizar los microprocesadores modernos, se debe primero entender qué fue lo que paso con estos dispositivos en los primeros años. La historia dice que se construyeron gigantescas máquinas computadoras en las décadas de 1940 y 1950, construidas con relevadores y tubos de vacío (bulbos). La primera computadora digital electrónica fue construida por un equipo dirigido por los ingenieros John Mauchly y John Eckert, de la universidad de Pennsylvania, en Esta máquina electrónica fue llamada ENIAC (Electronic Numerical Integrator and Computer), tenía más de bulbos y consumía 200 Kw. Tiempo después, cuando se integró a este equipo el Ing. y matemático Húngaro, naturalizado norteamericano, John Von Neumann fue diseñada una nueva computadora llamada EDVAC (Electronic Discrete Variable Automatic Computer). Las ideas de Von Neumann resultaron tan fundamentales para su desarrollo, que es considerado el padre de las computadoras. Estas ideas consistieron en permitir que en la memoria coexistieran datos con instrucciones para que la computadora pudiera ser programada por medio de software y no por medio de hardware. Alrededor de este concepto gira toda la evolución de la industria y la ciencia de la computación. Más adelante, se utilizaron los transistores y los componentes electrónicos de estado sólido para construir las poderosas computadoras de la década de Con el advenimiento, de los circuitos integrados se llegó al perfeccionamiento del microprocesador. - Página 4-

5 El microprocesador de 4 bits En 1969, Intel Corporation y el talento creativo de Marcian E. Hoff lanzaron el primer microprocesador: el 4004, de 4 bits. Este microprocesador, programable en un solo encapsulado era insuficiente, según las normas actuales, porque sólo direccionaba 4096 localidades de 4 bits en la memoria. El 4004 contenía un conjunto de instrucciones que ofrecían sólo 45 instrucciones diferentes. Como consecuencia, el 4004 sólo se podía emplear en aplicaciones limitadas, como en los primeros juegos de vídeo y en controladores pequeños basados en microprocesadores. Cuando surgieron aplicaciones más complejas para el microprocesador, el 4004 resultó inadecuado. El microprocesador de 8 bits Más tarde, en 1971, al percatarse que el microprocesador era un producto, viable para comercialización, Intel Corporation produjo el 8008, el primer microprocesador de 8 bits. El tamaño ampliado, de la memoria (16K * 8) y las instrucciones adicionales (un total de 48). Con este nuevo microprocesador se lograron aplicaciones más avanzadas (1K es igual a 1024 y un byte es un número de 8 bits). Conforme los ingenieros desarrollaban usos más demandantes para el microprocesador, la memoria y el juego de instrucciones del 8008 pronto limitaron su utilidad. Por tanto, en 1973, Intel Corporation introdujo el 8080, el primero, de los microprocesadores modernos de 8 bits. Pronto, otras empresas empezaron a lanzar sus propias versiones de los procesadores de 4 y de 8 bits. En la tabla 1-1 se enumera muchos de estos primeros microprocesadores. AÑO MICRO COMENTARIOS 1969 Intel 4004 No fue un producto comercial Intel 8008 Primer microprocesador de 8 bits Intel 8080 Surge la industria de las microcomputadoras Motorola 6800 Primer micro de Motorola Zilog Z80 Aparece el sistema operativo CP/M Intel 8085, Mostek 6502 Aparece Apple iniciando el auge de las microcomputadoras Motorola 6809 Mejor microprocesador de 8 bit. Tabla Página 5-

6 1.1.2 Diferencia entre el Microprocesador y Microcontrolador En el año de 1971 cuando surge el primer microprocesador de 8 Bit Intel, las técnicas de diseño de los equipos de instrumentación y control sufrieron un cambio. Los fabricantes de microprocesadores, conscientes de la importancia de este mercado, pusieron a disposición de los ingenieros una gran variedad de circuitos integrados complementarios los cuales constituyen, para cada fabricante, su familia. En el año de 1976, gracias al aumento en la densidad de integración, salió a la luz la primera computadora en un chip, es decir, se integraron junto con el microprocesador los subsistemas que anteriormente formaban unidades especializadas e independientes, pero unidas por las pistas de circuitos impresos con el microprocesador formando lo que se conoce como sistema mínimo. A este nuevo circuito integrado se le denominó MICROCONTROLADOR. Figura Página 6-

7 1.1.3 Tipo de microprocesador según su velocidad y ancho de palabra. 1.2 ARQUITECTURA DEL MICROPROCESADOR. El diseño de las microcomputadoras consiste de cinco áreas funcionales: (A) CPU unidad central de procesamiento es el Microprocesador. (B) Puertos de entrada/salida. (C) Memoria de solo lectura (ROM) Memoria de Programa. (D) Memoria de lectura y escritura (RAM) Memoria de Datos. (E) Bus del sistema. C P U In/Out Port. Memory Rom Memory Ram Figura 1.1 (A) Microprocesador (Unidad Central de Procesamiento (CPU)). Central Processing Unit. El CPU es el corazón de toda µc, es el encargado de decodificar las instrucciones, hacer más eficientes las operaciones aritméticas, y controlar algunas otras partes de la maquina. Cuenta con cuatro partes básicas que hace los verdaderos cómputos. (1) Acumulador. (ACC) Reg de Instrucción. Contador del Programa Decodificador de Instruccion (4) Timing and Control. (3) (2) Unidad Aritmetica. y Logica. (ALU) - Página 7-

8 Sin embargo, a veces el término es usado (aunque incorrectamente), para incluír todo lo que está dentro de la caja, incluyendo el disco duro, el CD ROM, la fuente y el motherboard. (1) Los Registros: Son localizaciones que sirven para almacenar temporalmente datos, pueden ser de 8 o de 16 bits. Los tres registros más usados son, el acumulador para propósito general, el contador de programa y el registro de instrucciones que son de propósito específico. El acumulador almacena temporalmente el resultado de las operaciones aritméticas y lógicas. El registro de Instrucciones es usado para almacenar la instrucción que se está ejecutando en ese momento por el microprocesador. El contador de Programa contiene la dirección de la siguiente instrucción del programa. (2) La unidad aritmético-lógica (ALU, Arithmetic-logic unit): es una red combinacional. Acepta dos palabras de datos y una palabra de control que especifica el tipo de operación que ha de ejecutarse con los datos. El bus de datos del sistema o cualquiera de los registros internos del procesador pueden proporcionar palabras de datos. La palabra de control se define por la unidad de control. La ALU realiza la operación especificada y genera una palabra de salida que representa el resultado de la operación aritmética o lógica y un conjunto de señales de estado que indican, por ejemplo, si se produjo un acarreo o desbordamiento aritmético. La palabra resultado se puede dirigir a cualquiera, de los registros internos o al bus de datos. El destino específico se define por la unidad de control, dependiendo de la naturaleza de la Operación que se esta realizando. Las señales de estado se dirigen a un registro interno específico del procesador para almacenamiento, denominado registro de códigos de condición. (3) El Circuito de temporizador y control: Es una red secuencial que acepta un código que define la operación que se va a ejecutar y luego prosigue a través de una secuencia de estados, generando una correspondiente secuencia de señales de control. Estas señales de control incluyen el control de lectura - escritura y señales de dirección de memoria válida en el bus de control del sistema. Otras señales generadas por el controlador se conectan a la unidad aritmética - lógica y a los registros internos del procesador para regular el flujo de información en el procesador y a, y desde, los buses de dirección y de datos del sistema. (4) El circuito de decodificación: Involucra el proceso de trasladar un patrón binario en una operación o secuencia de operaciones. Por ejemplo si el siguiente patrón binario - Página 8-

9 representa ADD, el circuito de decodificación lo reconoce y manda señales a todas las otras partes del µp para que ocurra la decodificación. (B) PUERTOS DE ENTRADA/SALIDA: Una microcomputadora tiene un camino para comunicarse con el mundo real, y este camino sirve para introducir el programa y obtener los resultados. Los puertos de entrada y salida son circuitos LSI que auxilian a la computadora a comunicarse con los humanos o a controlar un proceso. Son normalmente llamados Peripheral interface adaptdor (PIA) o Programable peripheral interface (PPI). Estos chips pueden ser programados como entradas o salidas de la microcomputadora. Si el µc es usado en un proceso de control, los componentes de entrada son llamados transductores (Termistores, Termocolples etc.). Un transductor convierte una cantidad física analógica como temperatura o presión en una cantidad eléctrica. Esta cantidad puede ser amplificada o procesada antes de convertirla en una señal digital. Por ejemplo en un sistema de control con retroalimentación como el que se muestra a continuación el transductor monitorea la presión dentro de un tubo y constantemente manda los datos al µp. Un programa es usado para comparar el dato contra un valor de referencia almacenado en la memoria. Si la presión excede la referencia el µp manda las señales de salida para cerrar la válvula y hacer sonar la alarma. Figura 1.2 In Port. C P U (µp) Out Port. Memory Rom Memory Ram Amplificador and A/D Converter. Drive Circuit. - Página 9-

10 (C) MEMORIA: La memoria es una porción de la computadora que almacena el programa y los datos mientras estos son necesarios. En esencia la memoria es un grupo de celdas de almacenamiento. Cada celda puede almacenar un bit de información el cual puede ser 1 ó 0. Por ejemplo la sig. Figura muestra un grupo de 8 celdas o bit almacenados como un patrón binario que representa la letra P celda. Otras letras ó otros tipos de información requieren otros tipos de combinación. La mayoría de los microprocesadores almacenan instrucciones y datos en grupos de 8 bits (1 Byte). Para almacenar más de una letra es necesario más de un byte. Add =I =T =N 107 Cada byte almacenado en memoria tiene una dirección. Por ejemplo ITN puede estar almacenado en las direcciones 105 a 107. Los µp son capaces de direccionar 65,536 bytes Arquitectura del Microprocesadores a traves de diagrama a bloques con Arquitectura Von Neumann - Página 10-

11 El Acumulador: almacena datos para ser procesados por la ALU. Suelen tener el mismo número de bits que el bus de datos. El acumulador se utiliza con el bus de datos y la ALU en el proceso aritmertico y logico de los datos. Por ejemplo, dos palabras binarias se pueden sumar, cargando la primera en el acumulador A y sumandola a la segunda, cargando el resultado en el acumulador y después transfiriendo los resultados desde el Acumulador, a la memoria. Durante la transferencia de los primeros datos, el bus de datos sirve como una entrada al Acumulador. Durante la segunda, la ALU realiza una suma en la que el bus de datos proporciona una entrada y el acumulador A la otra; la salida de la ALU se conecta a la entrada del acumulador A para almacenar el resultado. Durante la tercera operación, la salida del Acumulador se conecta al bus de datos, de modo que los resultados se transfieren a memoria. El contador de programa (PC): Es un registro de 16 bits que contiene la dirección de la palabra siguiente del programa. Su salida se conecta al bus de direcciones siempre que una palabra del programa se lea desde la memoria. Cada vez que el contador de programa proporciona una dirección, se modifica de modo que contiene siempre la dirección de la palabra siguiente del programa. - Página 11-

12 Figura 1.4 Pin Out del Microprocesador 8080 El puntero de pila (SP, stack pointer): El puntero de pila es, un registro de autoincrementación y autodecrementación, que significa que cada vez que se proporciona un dato su contenido se incrementa o decrementa automáticamente. En los microprocesadores, el puntero de pila contiene la dirección de la siguiente posición de memoria vacía en la pila. A continuación, proporciona esta dirección al bus de direcciones durante un ciclo del bus de lectura. La pila se utiliza de muchos modos; por ejemplo, se utiliza para almacenar la dirección de retorno cuando las transferencias de control a subrutinas o rutinas de interrupción de servicios. - Página 12-

13 Fig. 1.5 El registro de códigos de condición: (PSW) ó (CCR) Almacena la información que describe los resultados de operaciones anteriores. Esta información se almacena asignando un bit en el registro. En algunos microprocesadores, el registro del código de condición. Contiene ocho bits, El bit menos significativo es el bit de acarreo, o bit C, que se pone a 1 cuando se produce un acarreo aritmético. El bit de desbordamiento, o bit V, se pone a 1 si se produce un desbordamiento. El bit cero, o bit Z, el tercer bit en el registro de códigos de condición se pone a 1 cuando se produce el resultado cero. El bit negativo, o bit N, se pone a 1 cuando el resultado es negativo. El bit de semi acarreo, o bit H, se pone a 1 cuando se produce un acarreo desde el bit 3. El bit H se utiliza con cálculos aritméticos con datos codificados en BCD. Los bits C, V, Z, N y H se ponen a 1, o a 0, automáticamente por el procesador, dependiendo de la naturaleza de la operación que se está ejecutando y el resultado de está operación, además, los bits C, V e I pueden ser puestos a 1, o a 0, por el programador utilizando instrucciones especiales para cada bit. - Página 13-

14 Fig. 1.6 Pin Out del Microprocesador Motorola MC6800 Fig. 1.7 Pin Out del Microprocesador Mostek Página 14-

15 En estos momentos los MICROCONTROLADORES de 8 bits son el estándar para aplicaciones en controladores de mediana complejidad, por su facilidad de manejo y su alto nivel de prestaciones. Además la arquitectura permite que el MICROCONTROLADOR sea utilizado como Microprocesador. Naturalmente esto trae como consecuencia una reducción de su capacidad autónoma de controlar periféricos a través de sus puertos. MICROCONTROLADORES INTEL 8XXX Características de la Familia de MICROCONTROLADORES Intel. Con ROM Sin ROM con EPROM ROM RAM TIMER TECNOLO 8048AH 8040AH P8748H 1K 64 1 HMOS 8049AH 8039AHL P8749H 2K HMOS 8050AH 8035AHL No Existen 4K HMOS K HMOS 8051AH 8031AH 8751H 4 K HMOS 8052AH 8032AH 8752BH 8 K HMOS 80C51BH 80C31B 87C51 4 K CMOS TABLA 1.2 ARQUITECTURA BÁSICA DE LOS MICROCONTROLADORES 8051 Figura Página 15-

16 DIAGRAMA GENERAL DE LOS MICROCONTROLADORES C Figura 1.10 Figura Página 16-

17 Descripción de los pines: Vcc: Voltaje de alimentación positiva (+5 Volts.) Vss: Conexión a tierra (0 volts). PUERTOS: Los MICROCONTROLADORES 8051 tienen 4 puertos de 8 bits bidireccionales (P0, P1, P2 y P3). Esto quiere decir que pueden programarse y operar como entrada o salida. PUERTO 0(P0): Se encarga de multiplexar en el tiempo por sus 8 líneas la parte baja del Bus de direcciones durante el acceso a la memoria externa, y el Bus de datos. PUERTO 1(P1): Este puerto además de ser de proposito general también recibe la parte baja de direcciones, durante la programación y verificación de la memoria EPROM interna. PUERTO 2 (P2): El puerto 2 emite la parte alta del Bus de direcciones en los accesos de memoria externa cuando utilizan 16 bits de dirección A). Durante el acceso a la memoria de datos externa con direccionamiento de 8 bits los pines del Puerto 2 emiten el contenido del registro P2 del SFR (Registro de funciones especiales). PUERTO 3 (P3): Este puerto puede usarse para propósito general cuando trabaja como microcontrolador pero tiene otras funciones especiales cuando trabaja como microprocesador o con acceso a memoria de datos externa, como se muestra en la sig. Tabla. Pin Descrip Funciones 10 P3.0 RXD (Entrada puerto Serie) 11 P3.1 TXD (Salida puerto serie) 12 P3.2 INTO (Interrupción 0. Externa) Neg. 13 P3.3 INT1 (Interrupción 1. Externa) Neg 14 P3.4 T0 (Entrada externa. Timer 0) 15 P3.5 T1 (Entrada externa. Timer 1) 16 P3.6 WR (Autorización escritura de datos) Neg. 17 P3.7 RD (Autorización escritura de datos) Neg. TABLA 2.2 ALE/PROG: (Address Latch Enable) es un pulso que emite el MICROCONTROLADOR para amarrar el <<byte bajo>> del Bus de direcciones en el acceso a la memoria externa. ALE se emite con una frecuencia de 1/6 de la frecuencia de emisión del reloj. PROG: Es el pin de entrada de los pulsos de programación de la memoria EPROM lo utiliza solamente el programador de micros. PSEN: Es la señal de strobe para leer en la memoria de <<programa externo>>. La memoria externa tiene dos modalidades, de programa y de datos. Para diferenciarlas, utiliza - Página 17-

18 la señal PSEN. PSEN no se activa cuando se está ejecutando el programa de la ROM o EPROM interna. EA/VPP: (External Access), cuando se mantiene un nivel alto, se ejecuta sólo el programa de la EPROM interna, a menos que el contador de programa exceda de FFF (4K) para el Si EA se mantiene un nivel bajo, se ejecuta el programa de la memoria externa siempre, independientemente de la dirección del programa. Es decir cuando EA=1 actúa como MICROCONTROLADOR. EA=0 actúa como MICROPROCESADOR. VPP: Es la tensión de programación de la EPROM. XTAL1 y XTAL2: Son la entrada y salida respectivamente, de un amplificador inversor que puede ser configurado para su uso como un chip oscilador. Se puede utilizar indistintamente un cristal de cuarzo o un resonador cerámico. RESET: Señal de inicialización del sistema. Un reset interno al sistema se produce cuando se pone el pin RST a un nivel alto durante un cierto tiempo, esto se logra de modo automático conectando el pin RST a Vcc mediante un capacitor de 10 µf y a tierra medinte una resistencia de 8.2 kω. - Página 18-

19 EL MICROCONTROLADOR 89C51 COMO MICROPROCESADOR Una característica importante es que los puertos pueden ser utilizados como buses de direcciones, de datos y control, debido a estas caracteristicas se dice que el Microcontrolador puede trabajar como Microprocesador. Los drivers de salida de los puertos P0 y P2 y los buffers de entrada del puerto P0 se pueden utilizar para acceder a la memoria externa del sistema. En estas condiciones, el puerto P0 se configura como salida del byte bajo del bus de direcciones (A0 a A7), de un bus que consta de 16 bits (capacidad de direccionamiento 64K). Multiplexado en el tiempo como bus de datos bidireccional (D0 a D7). El puerto P2 se configura como salida del byte alto del bus de direcciones (A8 a A15). De esta manera el microcontrolador se configura a modo de CPU (Microprocesador) de un sistema externo con unas capacidades de expansión definibles por el usuario. Naturalmente, en estas condiciones, le queda como puerto íntegro, para el control de periféricos, el puerto P1 y parte del puerto P3, puesto que hay señales que se utilizan para el control del sistema (bus de control). Figura Página 19-

20 Organización de la MEMORIA en el Microcontrolador-Microprocesador 8X51. MEMORIA DE PROGRAMAS Y MEMORIA DE DATOS. Los MICROCONTROLADORES 8751 tienen separados los espacios de direcciones para memoria de programa y memoria de datos. La memoria de programa sólo puede ser leída y tiene como máximo 64K byte externos. (Internamente el 8751 es de 4K byte). La señal de autorización de lectura en la memoria de programa externa es PSEN. El pin EA del MICROCONTROLADOR puesto a Vcc (+5V) indica que el puntero de programa busca direcciones desde la posición de memoria 0000H hasta la 0FFFH de la memoria interna y de la 1000H a la FFFFH, en la memoria externa. Si el pin EA es puesto a Vss (0v), la búsqueda de direcciones del programa se dirige a la memoria externa en todo momento. Ciclo de lectura en la memoria externa de programas Para acceder a la memoria externa del programa se utiliza la señal PSEN (Program Store Enable) como señal de autorización de lectura. La señal ALE <<latchea>> el byte bajo del bus de direcciones en el primer estado (ciclo de reloj), y así permite direccionar, durante todo el ciclo de instrucción, mientras esas mismas líneas son utilizadas, en el resto del ciclo de instrucción, como bus de datos. En la Figura 1.13 se puede observar que la lectura en la memoria de programas se realiza cuando - Página 20-

21 PSEN está a nivel bajo, siendo el resto de las líneas de dirección las que establecen la posición de menoria exacta del byte de instrucción u operando que ha de ser leído. Si el usuario escribe en el Puerto P0 durante el ciclo de búsqueda en la memoria externa, el byte de código puede ser modificado. Se recomienda no escribir en el Puerto P0 si es utilizada para leer en la memoria de programa externa. A la memoria de programas externa se accede bajo dos condiciones: 1. Cuando el pin EA es activo (0), caso de la Figura Cuando el contador de programa (PC) contiene un número más grande que 0FFFH para el 8051 o para el MEMORIA DE PROGRAMA EPROM ó FLASH En la parte baja de la memoria de programa se encuentran ciertas posiciones de memoria especiales asignadas por el fabricante para el tratamiento de las rutinas de interrupciones. FUENTE DE INTERRUPCION DIRECCIONES DEL VECTOR 0FFFH Flag que se activan RI Y TI 0023H...PUERTO SERIE TF1 001BH...INT TIMER 1 IE1 0013H... INT EXTERIOR 1 TF0 000BH...INT TIMER 0 IE0 0003H...INT EXTERIOR 0 RESET 0000H... RESET Tabla 1.4 Una interrupción puede ser provocada de manera externa o de manera interna, es decir puede ser producida por un periférico externo o por software. La interrupción con más prioridad es RESET la cual no puede ser enmascarada. programa. Cuando un RESET ocurre el programa comienza a partir de la dirección 0000H, del Cuando una interrupción es producida, el Contador de Programa (PC) almacena su contenido temporalmente dentro del SP (apuntador de apilamiento) y se carga con la dirección de la localidad donde se encuentra la rutina de servicio de la interrupción correspondiente. Una vez posicionado en esa localidad deberá de comenzar la ejecución de la rutina de servicio, hasta que encuentre la instrucción RETI, que le permitirá al PC recuperar nuevamente su valor original almacenado en el SP, y continuar con el programa anterior a la interrupción. - Página 21-

22 Por ejemplo a la interrupción 0, se le asigna la localidad 0003H, si la interrupción no se utiliza, esta localidad puede utilizarse para propósitos generales del programa, si la interrupción ha sido permitida, (estableciendo el bit correspondiente dentro del registro de control IE), en el momento que exista una activación de la interrupción (estado bajo en la línea INT0) el PC se cargará con 0003 y saltará a esa localidad para comenzar a ejecutar la rutina de servicio. Como se puede observar en la Tabla 1.4 Anterior el intervalo físico entre dos interrupciones es de 8 bytes, espacio capaz de albergar una pequeña rutina, pero si éste no fuera suficiente se desviaría el contador del programa (PC) mediante una instrucción de salto (JMP) a una zona amplia de la memoria de programa capaz de contener dicha rutina. Como se ha dicho la memoria de programa puede ser interna (en el propio micro) ó externa (en otro chip). La selección se realiza por hardware, con la señal EA (External Access). Conectado a Vcc ó Vss respectivamente. El hardware de configuración del Microcontrolador como Microprocesador utilizando memoria de programa externa se muestra en la Fig Se puede observar en al Figura 1.14 que las 16 líneas de dirección corresponden al Puerto 0 y al Puerto 2, que están dedicadas como bus de direcciones; aun más el Puerto 0 sirve como bus de direcciones y bus de datos multiplexado en el tiempo. Esta operación característica de la familia de Microprocesadores Intel, se realiza de la forma siguiente. Figura 1.14 El Puerto P0 emite el <<byte bajo>> del contador del programa PC (PCL). Una vez estabilizada la señal sobre P0, la señal ALE (Address Latch Enable) introduce esta dirección dentro del circuito integrado latch 74LS373, que pasa a apuntar la dirección de la memoria externa de programas. Al mismo tiempo que el Microcontrolador emite el PCL por P0, la parte alta del contador del programa (PCH) se emite por P2. Entonces - Página 22-

23 PSEN autoriza la lectura al Microcontrolador del código de instrucción a través del Puerto P0. Para un mejor entendimiento y seguimiento de los diagramas de tiempos, en la figura 1.13 se dibuja un circuito esquematico en el que aparece el microcontrolador comandando una memoria RAM (6116) y una memoria EEPROM (2816). Figura 1.13 En las siguiente Fig. Se muestra el funcionamiento y diagramas de tiempos de esta operación. Figura Página 23-

24 CICLO MAQUINA: Un ciclo maquina, para esta familia de Microcontroladores, consiste en una secuencia de 6 <<estados>>, nombrados S1 a S6. Cada estado esta formado dos periodos de la señal de reloj que se denominan <<fases>> (fase 1 y fase 2). Teniendo en cuenta que cada ciclo maquina tiene 12 periodos (6 estados por 2 fases), si el oscilador genera una señal de reloj de una frecuencia de 12 Mhz, la duración del ciclo maquina será de 1 µsegundo. La secuencia de búsqueda/ejecución son las mismas, sea la memoria de programas interna o externa al Microcontrolador; es decir, los tiempos de ejecución no dependen de que se utilice la memoria interna o externa. La figura 1.15 muestra el diagrama de tiempos de las señales implicadas en la secuencia de búsqueda, cuando la memoria de programa es externa. La señal PSEN se activa dos veces por ciclo de maquina, para autorizar la lectura en la memoria de programa. Si se produce un acceso a la memoria de datos, como se muestra en la figura 3.4, no se emiten los dos impulsos PSEN, puesto que el acceso a la memoria de datos no los necesita ni utiliza. Observe como el acceso a la memoria de datos toma dos ciclos más de BUS que la memoria de programas. Las figuras 3.3 y 3.4 muestran los diagramas de tiempos relativos a ambas secuencias de acceso, destacando la emisión de direcciones por P0 y P2, y las señales ALE y PSEN. La señal ALE se utiliza para latchear el <<byte bajo>> de direcciones dentro del latch. Cuando el CPU esta ejecutando un programa en la memoria interna PSEN no se activa y las direcciones no se emiten por los puertos. Sin embargo ALE se sigue emitiendo dos veces por cada ciclo de maquina, pudiendo ser utilizada como señal de reloj externo. No obstante, como se puede ver en la figura 3.4, cuando se accesa a un operando utilizando la instrucción MOVX, la señal ALE desaparece. - Página 24-

25 Figura 3.4 En la figura anterior se pudo observar cómo se realiza un acceso a la memoria externa de programas para tomar una instrucción y en el segundo ciclo de accede a la memoria de datos externa para tomar datos. - Página 25-

26 MEMORIA DE DATOS (RAM). El 8751 puede direccionar hasta 64 kbytes de memoria de datos externa. En la sig. Figura se pude ver el mapa de memoria de datos. La memoria interna se encuentra dividida en dos bloques, los 128 bytes bajos y el espacio ocupado, en parte, por los Registros de Funciones Especiales (SFR). FFFF FF 80 7F 00 SFR Solo Directo. Directo é Indirecto 64 KBytes Memoria Externa 0000 RD WR FIG. 3.5 En la memoria de datos interna se puede acceder a un total de 256 bytes para el 8751 incluido el área de los registros especiales (SFR), ÁREA DE DIRECCIONAMIENTO DIRECTO E INDIRECTO de RAM. Los 128 bytes a los que puede acceder desde ambos direccionamientos, directo e indirecto, pueden ser divididos en tres segmentos. Banco de registros (banco 0, 1, 2 y 3). Registros R0 a R7 por banco. Los registros se localizan desde la dirección 00H a 1FH (32 bytes). Después de un Reset, el banco operativo por default es el banco 0. La selección de otro banco de registros debe hacerse por software escribiendo en el registro de estado PSW. Dirección Inicial Dirección Final 00H Banco 0 07H 08H Banco 1 0FH 10H Banco 2 17H 18H Banco 3 1FH El reset inicializa el Stack Pointer (SP) en la posmem 07H y se incrementa inmediatamente a la posmem 08H, que es el primer registro R0 del segundo banco de registros, el SP se puede inicializar en otra localización de memoria. - Página 26-

27 SUBÁREA DIRECCIONABLE BIT A BIT: Esta área tiene una longitud de 16 bytes (del segmento 20H a 2FH). Cada uno de los 128 bits de este segmento se puede direccionar directamente (00H a 7FH). Los bits se pueden direccionar por los bytes que contiene (20H a 2FH). Esto es, los bits 0 al 7 pueden ser referidos como los bits 20.0 a 20.7, etc. 20H 28H 27H 2FH SUBÁREA SCRATCH PAD: La memoria scratch pad se entiende como la memoria común es decir un block de notas de rápido acceso, pero de escasa capacidad. Ocupa las posiciones de memoria 30H a 7FH 80 Bytes. Es la memoria de trabajo RAM del usuario. 30H 40H 50H 60H 70H 3FH 4FH 5FH 6FH 7FH ÁREA DE REGISTROS O FUNCIONES ESPECIALES. La sig. Tabla muestra los registros especiales que utiliza el 8751, así como sus direcciones. No. Símbolo Nombre Dirección 1. *ACC Acumulador Acumulador. 0E0H 2. *B Registro B Registro B. 0F0H 3. *PSW Program Status Word Palabra de Estado del Programa. 0D0H 4. SP Stack Pointer Puntero de la memoria de la PILA. 81H 5. DPTR Data Pointer 2 Bytes Apuntador de datos DPL Low Byte del DPTR Byte bajo. 82H 7. DPH High Byte del DPTR Byte alto. 83H 8. *P0 Port 0 Puerto 0 80H 9. *P1 Port 1 Puerto 1 90H 10. *P2 Port 2 Puerto 2 0A0H 11. *P3 Port 3 Puerto 3 0B0H 12. *IP Interrupt Priority Control Control de prioridad de interrupciones. 0B8H 13. *IE Interrupt Enable Control Control de autorización de Interrupciones. 0A8H 14. TMOD Timer/Counter Mode Control Control Modo Temporizador/Contador. 89H 15. *TCON Timer/Counter Control Control Temporizador/Contador. 8CH 16. TH0 Timer/Counter 0 High Byte Byte alto temporizador/contador 0 88H 17. TL0 Timer/Counter 0 Low Byte Byte bajo temporizador/contador. 0 8AH 18. TH1 Timer/Counter 1 High Byte Byte alto temporizador/contador 1 8DH 19. TL1 Timer/Counter 1 Low Byte Byte bajo temporizador/contador. 1 8BH 20. *SCON Serial Control Control de comunicación serie. 98H 21. SBUF Serial Data Buffer Buffer de datos de comunicación serie. 99H 22. PCON Power Contol Control de consumo de potencia. 87H *= Registros Direccionable bit a bit. Tabla 3.2 ACC: Acumulador: Es un registro de propósito general y por su frecuencia de intervención, el más importante. - Página 27-

28 B: Registro B es usado durante operaciones de multiplicación y división, para otras instrucciones puede ser tratado como un registro común. SP: Stack Pointer: es un registro de 8 bits, este es incrementado antes de que el dato sea almacenado, con un Push o Call. El Stack puede recidir en cualquier lugar de la RAM. El Stack Pointer es inicializado a 07H después de un reset, esto hace que el Stack empiece en la localidad 08H. DPL y DPH: Data Pointer: Este registro puede ser manipulado como un registro de 16 bits o como dos registros de 8 bits. P0,P1,P2,P3: Son registros Latches de los puertos 0,1,2,3 respectivamente. PSW: Program Status Word: Contiene información del estado del CPU en cada ciclo de instrucción. b7 b6 b5 b4 b3 b2 b1 b0 CY AC F0 RS1 RS0 OV - P BIT b0 b1 b2 b3-b4 b5 b6 b7 NOMBRE Y COMENTARIO P: bandera de paridad del Acumulador (ACC). - Si P=1 el número de unos en el ACC es impar. - Si P=0 el número de unos en el ACC es par. Bandera disponible por el usuario. OV: Bandera de Overflow. RS 0-RS 1: Selección del banco de registros. 0-0 Banco 0 (00-07H) 1-0 Banco 1 (08-0FH) 0-1 Banco 2 (10-17H) 1-1 Banco 3 (18-1FH) F0: Bandera 0. De propósito general. Definida por el usuario. AC: Bandera de acarreo Auxiliar. Para operaciones en BCD. C: Bandera de Acarreo. Ciclo de lectura (RD) en la memoria externa de datos Para el acceso a la memoria externa de datos utiliza la señal de control RD (función alternativa de P3.7) y puede utilizar los 16 bits de dirección (M0VX A,@DPTR) o bien 8 bits (MOVX A,@Ri) (véase Figura 1.13). - Página 28-

29 En un ciclo de lectura el byte de entrada es aceptado en el Puerto P0 justo antes de que la señal de control RD que autoriza la lectura sea desactivada. Ciclo de escritura (WR) en la memoria externa de datos Para la escritura en la memoria externa de datos utiliza la señal de control WR(función alternativa P3.6) y puede utilizar los 16 bits de dirección o bien 8 bits En el ciclo de escritura, el byte de dato debe permanecer sobre el Puerto P0 antes y después de que la señal de control de escritura WR sea desactivada. En general, tanto para la lectura como para la escritura, cuando una dirección de 16 bits es utilizada el byte alto de dirección sale por el Puerto P2, donde permanecerá mientras dura el ciclo de lectura o escritura. Si se utiliza una dirección de 8 bits el contenido del Puerto P2 en el SFR permanece sobre los pines de P2 durante todo el ciclo de acceso a la memoria externa. Resumiendo, si se utilizan los puertos para comandar unidades de memoria externa o interface, los puertos quedarán en esta situación: P0: Bus de direcciones bajas (A0 a A7) y bus de datos (D0 a D7) multiplexados en el tiempo. P1: puerto de E/S. P2: Bus de direcciones altas (A8 a A15). P3: Bus de control. - Página 29-

30 1.4 Lenguaje Ensamblador del Microprocesador Programación de los Micfroprocesadores y los Microcontroladores MCS-51,52 Todos los modelos de la familia MCS-51 ejecutan el mismo set de instrucciones. Estas instrucciones están optimizadas para el control de aplicaciones de 8 bits. Un programa en lenguaje ensamblador es un conjunto de instrucciones que se pueden convertir en un programa ejecutable en lenguaje máquina. Estas instrucciones se dividen en tres categorías: 1) Pseudoinstrucciones (Directivos), se emplean para proporcionar información con el fin de convertir el programa de ensamblador a una versión en lenguaje máquina. 2) Descriptores de Datos, utilizados para definir valores constantes y reservar posiciones de memoria de datos necesarias en el programa. 3) Instrucciones Ejecutables, equivalentes a las instrucciones en lenguaje máquina. INSTRUCCIONES EJECUTABLES: Cada instrucción ejecutable en lenguaje ensamblador es una representación simbólica de una instrucción en lenguaje máquina. Por lo tanto, la instrucción en lenguaje ensamblador debe definir la operación aritmética - lógica; el modo de direccionamiento y el operando, dirección o desplazamiento de la dirección cuando sea necesario. Además las instrucciones ejecutables en lenguaje ensamblador suelen contener una sentencia o comentario que indica la razón fundamental de la instrucción. Por último, es frecuente asignar una etiqueta, o nombre a una función, para facilitar su referencia. Toda esta información se organiza en cuatro campos: Campo Etiqueta. : Campo Operación Campo Operando ; Campo Comentario Las instrucciones en los microprocesadores son actualmente una secuencia de 0 y 1 s que representan la operación que se ejecutara. La notación hexadecimal es usada para abreviar la representación de la instrucción. Una forma fácil de escribir y entender un programa es escribirlo en Lenguaje ensamblador. En lenguaje ensamblador, la combinación de bits es representada por un nombre o un mnemónico al cual le corresponde la acción de la instrucción. Por ejemplo la instrucción del 8051 que suma el contenido del registro R7 con el Acumulador A es representada por: - Página 30-

31 B ó 2FH. En ensamblador ADD A, R7 Esta representación es llamada Lenguaje Maquina debido a que esta representación es la que utiliza el Microprocesador. Esta instrucción tiene dos campos distintos, estos campos son la operación y el registro fuente, como se muestra en las tablas de instrucciones. A continuación se estudiarán los modos de direccionamiento y el set de instrucciones agrupado por especialidades de la siguiente manera: Instrucciones aritméticas. Instrucciones lógicas. Instrucciones para la transferencia de datos en: a) RAM interna. b) RAM externa. Instrucciones para el tratamiento de tablas. Instrucciones Booleanas. Instrucciones de salto MODOS DE DIRECCIONAMIENTO. Direccionamiento Directo. En este direccionamiento el operando se especifica en la instrucción por un campo de dirección de 8 bits. Sólo la RAM interna de datos (primeros 128 bytes) y la zona de SFR se pueden direccionar de esta forma. Ejemplo: ADD A, 4CH es decir, suma el contenido del acumulador con el contenido de la posición de memoria (4CH): A<-- (A)+(4C) Nota: Un registro o número entre paréntesis se refiere al contenido. Así (A) es el contenido del acumulador. (4C) es el contenido de la posición de memoria 4C. ADD A, 7FH ;El acumulador es sumado al dato que se encuentra en la dirección 7FH de la Ram interna y el resultado será almacenado en el acumulador. MOV A, 2EH ; El Acumulador es cargado con el dato que se encuentra en la dirección 2EH de la memoria RAM interna. - Página 31-

32 MOV 3DH, 4EH encuentra en la dirección 4EH. ; El contenido de la dirección 3DH es cargado con el dato que se Direccionamiento Indirecto: La instrucción específica un registro que contiene la dirección del operando. Tanto la memoria RAM interna, como la externa se pueden direccionar indirectamente. Los registros para direccionar sobre el mapa de 8 bits son el R0 y R1 del banco de registros seleccionado, o el Stack Pointer. El registro para direccionar sobre 16 bits sólo puede ser el DPTR. Ejemplo: ADD ; Así, si (R0)=4CH la operación será: A<--(A)+(4C) (@) es el indicador del direccionamiento indirecto. MOV El Acumulador es cargado con el dato que se encuentra en la dirección apuntada por RO. MOVX El Acumulador es cargado, con el dato que se encuentra en la dirección apuntada por el DPTR. A el DPTR. El contenido del acumulador es guardado en la dirección apuntada por Direccionamiento por Registro Los Microcontroladores 8751, contienen cuatro bancos seleccionados por los bit 3 y 4 del PSW, y cada banco de registros tiene ocho registros del R0 al R7. El propio código de operación de la instrucción especifica con qué registro se opera; es decir, cuando la instrucción es ejecutada se accede a uno de los 8 registros del banco seleccionado y en la mayoría de los casos son más rápidas. Ejemplo: MOV Rn,A Código: r r r Así Operación: (Rn) (A) Dependiendo del registro implicado el código de instrucción tomará distintos valores. - Página 32-

33 MOV Ro,A B = F8H MOV R1,A B = F9H MOV R2,A B = FAH MOV R7,A B = FFH Otro ejemplo: MOV Rn, #data Código: r r r Operación: (Rn) #dato. Direccionamiento Implícito. En estas instrucciones se especifica, implícitamente, el registro sobre el que van a operar, como el acumulador, el puntero de datos, etc. No necesitan especificar el operando por que está implícito en el código de operación. Ejemplo: INC A; A (A) + 1 Incrementa el contenido del acumulador: INC DPTR; DPTR (DPTR) + 1 Incrementa puntero de datos; DEC R0; Decrementa el registro R0. Direccionamiento Inmediato Al código de operación le sigue una constante en la memoria de programas. Ejemplo: MOV A, #255 ; Carga en el acumulador el número decimal 255. Generalmente se expresan en hexadecimal: MOV A, #0FFH o en binario: MOV A, # B MOV A, #64H ;El acumulador es cargado con el dato 64H inmediatamente. ADD A, #120 ;El acumulador es sumado al número decimal 120 y el resultado ;se almacena en el acumulador. MOV DPTR, #1245H ;El DPTR es cargado con el dato 1245H en forma inmediata. Direccionamiento Indexado Este direccionamiento sólo es posible en la memoria de programas y sólo permite la lectura. Es utilizado para la lectura de tablas. Un registro base de 16 bits (el DPTR o el - Página 33-

34 Contador del Programa) apunta a la base de la tabla y el contenido del acumulador es el offset que permite acceder a la lectura de esa posición de la tabla. MOVC ;Mueve una constante que se encuentra en la, memoria del programa. El Acumulador es, cargado con el dato que se encuentra apuntado por la dirección formada por la suma del Acumulador A y el Apuntador de Datos. MOVC A,@A+PC; El Acumulador es cargado con dato que se encuentra, en la dirección formada por la suma del mismo Acumulador A y el Contador del Programa (PC) CICLO DE INSTRUCCIÓN La ejecución de un ciclo de instrucción comienza en el estado 1 del ciclo máquina, cuando el código de operación es almacenado en el Registro de Instrucción. Como norma general, una instrucción requiere de uno o más ciclos máquinas, en función de: a) El código de operación - Página 34-

35 Por ejemplo, la instrucción INC A (figura 3.1 A) tiene 1 de byte de instrucción y requiere 1 ciclo máquina, la instrucción INC DPTR, también, de 1 byte de instrucción requiere de 2 ciclos máquina (figura 3.1C) y la instrucción MUL AB requiere de 4 ciclos máquina para su total ejecución y ocupa 1 byte en la memoria. b) El número de bytes Por ejemplo, la instrucción MOV A, # data tiene 2 bytes de instrucción y requiere de 1 ciclo máquina (figura 3.1B). En cambio la instrucción MOV direct, # data al constar de 3 bytes necesita de 2 ciclos máquina. Esto no ocurre siempre, es decir, a más bytes más ciclos máquina, como puede verse en la figura 3.1 B correspondiente a la instrucción, MOV A, # data y en la figura 3.1D MOVX A,@Ri. La primera instrucción tiene 2 bytes y la segunda sólo 1, en cambio la primera requiere 1 ciclo máquina y la segunda 2. Ante la imposibilidad de establecer una norma o regla que facilite el conocimiento del número de bytes y ciclo de instrucción se ha editado la tabla 4.5 con el set completo de instrucciones. - Página 35-

36 Cabe destacar también en la figura 3.1 que en cada ciclo máquina se producen 2 accesos a la memoria. El primero, si es comienzo de ciclo de instrucción, siempre leerá el código de operación, el segundo que normalmente se descarta. Se utiliza para leer el segundo byte, operando de la instrucción, como ocurre en la figura 3.1B. OPERACIÓN DE ESCRITURA EN LOS PUERTOS DE LOS Microcontrolador La operación de escritura, utilizando los puertos del Micro, puede ser realizada por cualquiera de ellos; no obstante, el puerto P0 es el que presenta una mayor cargabilidad, permitiendo comandar ocho cargas TTL-LS, mientras que los otros tres permiten cuatro cargas TTL-LS. En la ejecución de una instrucción que cambia el valor del latch del puerto, el nuevo valor llega al latch durante el estado 6, fase 2 del final del ciclo de instrucción, según indica la Figura 1.8 Figura 1.14 Antes de comenzar con el estudio y comprobación de los puertos de E/S, se muestra la interface para la conexión de los puertos a los dispositivos de salida, que en un principio pueden ser unos simples LED (Figura 1.15). Para controlar cargas de mayor consumo de energía, como relés, se recomienda utilizar, entre el puerto y la carga, drivers no inversores, como el ULN 2003, e inversores, como el ULN 2803, que tienen una cargabilidad de 500 ma y soportan hasta 50v. - Página 36-

37 Figura 1.15 Por esto la activación de estas señales depende del formato de la instrucción. Para la operación de ESCRITURA en el puerto, la instrucción más habitual es la siguiente: MOV PX, <DATO> ; PX <DATO>X toma valores 0, 1, 2 y 3 según el puerto. - Página 37-

38 1.4.4 TIPOS DE INSTRUCCIONES El set de instrucciones de Intel MCS-51 se puede dividir según las especialidades: Instrucciones aritméticas, Instrucciones lógicas. Instrucciones de transferencia de datos. Instrucciones booleanas. Instrucciones de salto. Las instrucciones aritméticas, lógicas, de transferencia y de salto son comunes en la mayoría de microprocesadores. Los microcontroladores tiene un área especial de aplicación, que es el área del control de procesos; en este campo las operaciones están orientadas, muy a menudo, a bits. Los microcontroladores leen, procesan, escriben e intercambian información con los sistemas exteriores, en formato <<bit a bit>> o <<palabra a palabra>>. Un procesador booleano con un set de instrucciones booleanas muy completo se encarga de realizar este tipo de operaciones. Esta particularidad, así como su inmunidad al ruido eléctrico, le hacen valioso en el mundo del control de procesos industriales. Estudio de las instrucciones por especialidades, aparece todo el set de instrucciones, 111 en total, de la familia 51; en cambio, en las tablas simplificadas que utilizaremos primero solo curntan con 69 instrucciones. La razón de esta diferencia está en la propia tabla y justamente en la columna encabezada por <<modos de direccionamiento>>. Esto quiere decir que según los direccionamientos una instrucción puede tener hasta cuatro códigos de operación y operandos distintos. Esta situación se resuelve utilizando la palabra <byte>, que tomará el siguiente significado (tabla 4.1): TABLA 4.1 En la tabla simplificada Según el modo de direccionamiento Significado <byte> direct Direccionamiento directo. Se refiere a una posmem. Direccionamiento indirecto a través del registro R0 y R1. <byte> Rr Direccionamiento por registro. <byte> # data Direccionamiento inmediato. Constante de 8 o 16 bits En las tablas simplificadas también se indica el posible flag (C= Carry, OV= overflow, AC= Auxiliar Carry) afectado por la instrucción según el siguiente código: No es afectado... Sí es afectado... X Afectado poniéndolo a... 0 Afectado poniéndolo a... 1 En algunas tablas no son afectados los flags, y esto se indica con un mensaje en la parte inferior de las mismas. - Página 38-

39 Los tiempos de ejecución Se han tomado utilizando como referencia una frecuencia de reloj de 12 MHz. INSTRUCCIONES ARITMETICAS En la tabla 4.2. Se muestra el menú de las instrucciones aritméticas. Se indican en la tabla los modos de direccionamiento que permite la instrucción y los flags afectados. Los tiempos de ejecución que se indican en la tabla están evaluados sobre una frecuencia de reloj de 12 MHz. X =Si =No Tabla 4.2 Al leer dicha tabla se observa que: Se puede incrementar o decrementar un byte en la memoria de datos interna sin la intervención del acumulador. Una de las instrucciones INC opera sobre los 16 bits del puntero de datos (DPTR). La instrucción MUL AB multiplica el contenido del acumulador con el dato situado en el registro B y el producto, en formato 16 bits, aparece en los registros Acumulador y B (Sobreescribe a los operandos). La instrucción DIV AB divide el contenido del acumulador con el dato contenido en B, apareciendo el resultado, cociente, en el acumulador y el resto en el registro B. Ejemplo: A = 5FH - Página 39-

40 DIV AB B = 0AH 1001 A B La instrucción DA A justa el resultado en binario puro producido por las instrucciones ADD y ADDC a formato BCD. Esta instrucción no convierte el contenido del acumulador en BCD, sino que hace ajuste BCD de la suma (resultado), por lo tanto, esta instrucción debe ir inmediatamente después de la instrucción ADD o ADDC. Esta es, de forma simplificada, la operación que realiza: Si [ [(A 3-0 )> 9] * OR * [(AC) = 1] ] Entonces (A 3-0 ) (A 3-0 ) + 6 Y si [[(A 7-4 ) > 9] * OR.* [(C)= 1]] Entonces (A 7-4 ) (A 7-4 ) + 6 INSTRUCCIONES LOGICAS La tabla 4.3 muestra la lista de instrucciones lógicas y los modelos de direccionamiento que permiten así como los flags afectados. La duración de ejecución de 1 ó 2 microsegundos considerando un cristal de 12 MHz. Las primeras instrucciones corresponden a las operaciones AND, OR, EXOR y NOT. Ejemplo: ANL <byte>, # 3F Si <byte> = (3A) = # 3F = = 0AH (<byte> se refiere, en este caso, a una posición de memoria.) Nemónico Operación Modos de direccionamiento Dir Ind Reg Imm Tiempo de Ejecución µs ANL A,<byte> A=A.AND.<byte> X X X X 1 ANL <byte>,a <byte>=<byte>.a X 1 Flag afectados C OV AC ANL <byte>,#data <byte>=<byte>.and. X 2 ORL A,<byte> A=A.OR. <byte> X X X X 1 ORL <byte>, A <byte>=<byte>.or.a X 1 ORL <byte>. # data <byte>=<byte>.or.# data X 2 XRL A,<byte> A =A.XOR.<byte> X X X X 1 - Página 40-

41 XRL <byte>, A <byte>=<byte>.xor. A X 1 XRL <byte>, #data <byte>=<byte>.xor. #data X 2 CLR A A=00H Accumulator only 1 CPL A A=.NOT.A Accumulator only 1 RL A Rotate ACC Left 1 bit Accumulator only 1 RLC A Rotate left through Carry Accumulator only 1 X RR A Rotate ACC Right 1 bit Accumulator only 1 RRC A Rotate Right through Carry Accumulator only 1 X SWAP A Swap Nibbles in A Accumulator only 1 Tabla 4.3 X =Si =No Continuando con el set de instrucciones, aparecen instrucciones de manipulación de la información, como las instrucciones de Rotación y de intercambio (SWAP). Las instrucciones de Rotación RL y RR A desplazan el acumulador 1 bit a la izquierda y derecha, respectivamente, sin afectar al bit de acarreo. C b7 ACC b0 Ejemplo: Rotación a la izquierda (Left) RL A (A) = 0C5H= B (antes de ejecutarla) (A) = 8BH= B (después) Las instrucciones de Rotación RLC A y RRC A desplazan el contenido del acumulador implicando al bit de acarreo. C B7 ACC B0 La instrucción SWAP A intercambia los nibbles en el acumulador. Generalmente se utiliza en las manipulaciones de números en BCD. Ejemplo: SWAP A (A) = 3H = B (antes de la operación) A (después) - Página 41-

42 EJEMPLO 1.3 LECTURA Y ESCRITURA EN EL MISMO PUERTO Este ejercicio muestra cómo se puede realizar la operación de lectura y escritura por el mismo Puerto P0. Para ello dividimos el Puerto P0 en dos nibbles, el nibbles bajo (P0.0 a P0.3) leerá la información que se sacará por el nibbles alto (P0.4 a PO.7) (Figura 6.8). DEFSEG BIT4, ABSOLUTE SEG BIT4 ORG 0H START: MOV A,P0 SWAP A MOV P0,A AJMP START END En la línea 1, se hace la lectura del Puerto P0 y su contenido pasa al acumulador, En la línea 2, se intercambian los nibbles. En la línea 3, el contenido del acumulador se carga en el puerto P0, con lo que la lectura del nibbles bajo pasará al nivel alto del puerto P0, y viceversa. La línea 4 es un salto incondicional al comienzo del programa. INSTRUCCIONES DE TRANSFERENCIA DE DATOS Se consideran tres modalidades, según la transferencia se realice sobre: - Página 42-

43 La RAM interna. La RAM externa. La memoria de programa para el tratamiento de tablas Movimiento de datos sobre la RAM interna En la tabla 4.4 se muestra la tabla de instrucciones disponibles para mover datos dentro de los espacios de memoria RAM interna, considerando los distintos direccionamiento para cada una de las instrucciones Tabla 4.4 Modos de direc. Tiempo de Nemónico Operación Dir Ind Reg Imm ejecución (ms) MOV A,<src> A=<src> X X X X 1 MOV <dest>, A <dest> = A X X X 1 MOV <dest>, <src> <dest> = <src> X X X X 2 MOV DPTR, #data 16 DPTR= 16-bit immediate constant. X 2 PUSH <src> INC SP : <src> X 2 POP <dest> MOV :DEC SP X 2 XCH A,<byte> ACC and <byte> exchange data X X X 1 XCHD ACC Ri exachange low nibbles X 1 No son afectados los flags. X = Sí =No La instrucción MOV <dest>, <src> permite transferir datos entre alguna de las dos RAM interna o el espacio de localización del SRF (referencia Figura 2.8) Este tipo de instrucción permite la transferencia sin el concurso del acumulador. <dest> = <destino> <src> = <fuente> Ejemplo: Antes de ejecutar la instrucción: (3A)= 35H : (3D) = 78H MOV 3AH, 3DH Después de ejecutarla: (3A)= 78H : (3D) = 78H La instrucción MOV DPTR.# data 16 bits, permite transferir datos de 16 bits para inicializar el DPTR (Data pointer = puntero de datos) en el tratamiento de tablas en la memoria de programas o para acceder a los datos de la memoria externa. - Página 43-

44 La instrucción PUSH <src> actúa incrementando el SP (stack pointer = puntero de la pila) y copiando el dato dentro de la pila. La instrucción POP <dest> actúa decrementando el SP y reponiendo el dato en su registro. La pila está situada dentro de la RAM interna, por defecto en el banco de registros 1 (véase figura 2.11), pero puede posicionarse en el área SCRATCH PAD, como se ha indicado en el capítulo anterior. En resumen, éstas son las operaciones que realiza la unidad de control del microcontrolador. PUSH <src> POP <dest> (SP) (SP) +1 <dest> ((SP)) ((SP)) <src> (SP) (SP) 1 La instrucción XCH A,<bite>, intercambia los datos del acumulador y del byte direccionando. La instrucción XCHD A,@Ri es similar a la anterior, pero sólo implica en el intercambio el nibble bajo; es una instrucción especializada en la manipulación de datos en el código BCD. Ejemplos: Antes de ejecutar la instrucción: (A)= 37H y (2D) = 23H XCH A, 2DH XCHD Después de ejecutarla: (A) = 23H y (2D) = 37H Antes de ejecutar la instrucción: (R0) = 2DH = 37H y (A) = 23H Después de ejecutarla: (A) = 27H y (2D) = 33H INSTRUCCIONES BOOLEANAS La familia de microcontroladores 51 y concretamente los microcontroladores 8052/8051 tienen un procesador booleano incluido en el chip. Estos microcontroladores poseen dos áreas que permiten el direccionamiento <bit a bit>: Una corresponde al segmento de RAM interna de dirección comprendida entre la posmem 20 a 2FH, en total 128 bits (figura 2.10), y la otra corresponde a los registros marcados con asterisco en el area de SFR. - Página 44-

45 El conjunto de instrucciones que permiten este tipo de procesos, tan interesante para las aplicaciones industriales, se encuentran relacionado en la siguiente tabla Nemónico Operación Tiempo de ejecución (us) C OV AC ANL C, Bit C = C. AND. Bit 2 X ANL C./bit C= C. AND. NOT. BIT 2 X ORL C.bit C=C.OR.bit 2 X ORL C./bit C=C.OR..NOT.bit 2 X MOV C.bit C = bit 1 X MOV bit.c bit = C 2 X CLR C C = CLR bit bit = 0 1 SETB C C = SETB bit Bit = 1 1 CPL C C =.NOT.C 1 X CPL bit Bit =.NOT. bit 1 JC rel Jump jf C = 1 2 JNC rel Jump if C =0 2 JB bit. rel Jump if bit = 1 2 JNB bit. rel Jump if bit = 0 2 JBC bit. rel Jump if bit =1; CLR BIT 2 Tabla 4.8 X =SI: = No Las instrucciones que aparecen en las tablas son: MOVE, SET, CLEAR, NOT, OR y AND. Se observa cómo en casi todas las instrucciones se hace referencia al flag Carry (C). Se podría decir que cumple todas las características que tiene el acumulador en el procesamiento de palabras. El flag Carry se direcciona directamente dentro de la palabra de estado PSW, en la posición <<bit7>>. B 7 b 5 b 0 C F0 Todos los bits del PSW son direccionables bit a bit, como todos los registros señalados del SRF. Es importante reseñar la presencia del flag F0 (b5 del PSW) de propósito general, disponible como flag del usuario. Por qué no utilizarlo como indicador, en las operaciones aritméticas de signo (flag N)? Comentario aparte exige el tratamiento de las instrucciones booleanas de salto. Hay instrucciones que producen el salto cuando el bit direccionado está en estado <<1>>, como son las instrucciones JC,JB y JBC; también están las que producen el salto cuando el bit direccionado está puesto <<0>>, como son las instrucciones JNC, y JNB. JBC Produce el - Página 45-

46 salto si el bit direccionado es <<1>> y pone a <<0>>este bit, siendo la única instrucción que detecta y pone a <<0>> el bit direccionado. Secuencias de operaciones: JC rel JNC rel (PC) (PC) +2 (PC) (PC) + 2 Si (C) = 1 Si (C) = 0 Entonces entonces (PC) (PC) + rel (PC) (PC) + rel JB bit, rel JNB bit, rel JBC bit, rel (PC) (PC) + 3 (PC) (PC) + 3; (PC) (PC) + 3; Si (bit) = 1 Si (bit) = 0 Si (bit) = 1 Entonces Entonces Entonces (PC) (PC) + rel (PC) (PC) + rel (bit) 0 Ejemplos: (PC) (PC) + rel A) poner el Carry a set (1) si el bit0 del puerto 1 es <<1>> (P1,0 = 1), el bit7 del acumulador es <<1>> (A.7=1) y el flag OV = 0. Programa: MOV C, P1. 0 ; Carga el Carry (c) con el bit0 del puerto 1. ANL C, A. 7 ANL C,/OV ; C (P1.0) ; Operación AND con el Carry (C ) y el bit7 ; del acumulador, es decir: C ( C ). AND.(A.7) ; Operación AND con el Carry ( C ) y el valor ; complementado del flag de overflow (OV) ; del registro PSW. C (C).AND./NOT.OV B) Realizar la operación EXOR bit a bit, entre el b0 del puerto 0 (P0.0) y el b1 del puerto 1 (p1.1). depositando el resultado en el b7 del puerto2. Para realizar la operación EXOR, el usuario debe crear un algoritmo, puesto que la instrucción EXOR no la tienen implementada los microcontroladores de la familia 51. La operación a realizarse es: Programa: MOV C,P0.0 P2.7 P0.0.EXOR. P1.1 ;Carga el bit0 del puerto P0 en el flag Carry ; C (P0.0) - Página 46-

47 JNB P1. 1, SALTA ;Si p1.1 =0. C contiene el resultado ; correcto y entonces salta; pero si P1.1=1 ;el complemento de C es el resultado correcto. CPL C ; Complementa C. SALTA: MOV P7.2,C ;El contenido del Carry (C) lo almacena en ; el bit7 del puerto P2. ;P7.2 (C) La dirección del destino del salto, en la memoria de programa, viene especificada, cuando el programa está escrito en Ensamblador, por una etiqueta. Así, en el ejemplo anterior, la etiqueta (SALTA:) Indica el origen y el destino del salto. Una vez ensamblado el programa del usuario, la dirección del salto se convierte en un número (OFF-SET) del tamaño de un byte, que representa una dirección relativa, representada en el sistema de numeración binario en complemento a dos. El rango del salto (operando de la instrucción) puede estar comprendido entre 128 y127 bytes. Si él operando es positivo, el salto es adelante (direcciones crecientes de memoria); si en negativo, el salto es atrás (direcciones decrecientes de memoria). SALTO1: SALTO2: DEFSEG ROTAR,ABSOLUTE SEG ROTA ORG 0 MOV A,#00H ;Limpia Acumulador SETB C RLC A MOV P0,A CALL RETARDO JNB ACC.7,SALTO1 RRC A MOV P0,A CALL RETARDO JNB ACC.0, SALTO2 JMP SALTO1 NOP RETARDO: SALTO3: MOV R1,#40H MOV R2,#0FFH DJNZ R2,$ DJNZ R1,SALTO3 RET 4.4 INSTRUCCIONES DE SALTO Un programa es una secuencia de instrucciones que el contador de programa (PC) rompe en función de: a) Haber concluido la secuencia de instrucciones y salta a otra o recomienza la misma. Este es un salto Incondicional. b) La palabra de estado del programa (PSW) o del estado de uno o más bits de la entrada/salida de periféricos. Este es un salto condicional instrucciones de salto incondicional - Página 47-

48 La tabla 3.9 muestra la lista resumida de los saltos incondicionales. Aunque sólo figure la instrucción <<JMP addr>>, de hecho hay tres tipos: SJMP. LMP, y AJMP, que difieren en el formato de la dirección de salto. Tabla 3.9 Nemónico Operación Tiempo de ejecución (us) JMP addr Jump to addr 2 + DPTR Jump to A + DPTR 2 CALL addr Call subroutine at addr 2 RET Return from subroutine 2 RETI Return from interrupt 2 NOP No operation 1 No son afectados las banderas. SJMP rel : (short jump). La dirección destino del salto viene dada por un <<offset relativo>>, igual que en las instrucciones de salto booleanas. La instrucción tiene dos bytes, correspondientes al código de operación y al byte de offset relativo. El rango del salto está limitado a 128 y byte relativos. al primer byte siguiente a la instrucción de salto. (PC) (PC) +2 CPC) (PC) + LJMP addr 16: ( Long jump). La dirección destino del salto viene dad por una constante de 16 bits. La instrucción está formada por 3 bytes, 1 byte para el código de operación y 2 para la dirección del salto. Por tanto, la dirección de destino está ubicada dentro del área de los 64K de la memoria de programa. PC addr 16 AJMP addr 11: (Absolute jump). La dirección destino del salto viene dada por una constante de 11 bits. La instrucción tiene 2 bytes, uno para el código de operación que también contiene en sí misma 3 de los 11 bits de direcciones, y otro byte que contiene los 8 bits bajos de la dirección de destino. El código de la instrucción y el operando es : a10 a9 a A7 a6 a5 a4 A3 a2 a1 a0 CODIGO DE OPERACIÓN OPERANDO Por tanto, el destino del salto tiene que estar comprendido dentro del bloque de los 2 K bytes referenciado respecto a la siguiente instrucción a la del salto. PC (PC) + 2 (PC 10-0) dirección de la página - Página 48-

49 En cualquier caso, el programador especifica la dirección de destino, bien como una etiqueta o como una dirección constante de 16 bits, en el programa escrito en lenguaje ensamblador. Este se encarga de darle el destino. En el formato correcto, según el código de operación. Si este formato no soporta la distancia del salto. Aparecerá un mensaje como éste << Destination out of range>>. Que nos previene del error. Se trata de una instrucción de salto indirecto, suma el byte contenido en el acumulador con los 16 bits del puntero de datos (DPTR) y carga el resultado de la suma en el contador de programa (PC). Esta será la dirección para la subsiguiente búsqueda de la instrucción. Ejemplo: Se trata de establecer cinco caminos de ramificación del programa, dependiendo de que el acumulador tome valores comprendidos entre 0 y 4. Programa: MOV DPTR,# TABLA_ SALTO ;Se carga el DPTR con la dirección de la tabla de saltos. MOV A, INDI ; Se carga el acumulador con la variable índice (INDI). ; 0 <INDI< 4. RL A ;El valor cargado sufre un desplazamiento de un bit ;a la izquierda (multiplica por 2 el contenido del acumulador). +DPTR ;Se efectúa la suma: PC (A) + (DPTR) ; y se produce el salto a otra instrucción ; de salto que a su vez saltará al ; subprograma a ejecutar INDI: AJMP SALTO0 AJMP SALTO1 AJMP SALTO2 AJMP SALTO3 AJMP SALTO4 La instrucción RL A convierte la variable INDI (valor comprendido entre 0 y 4) en un número par de rango entre 0 y 8 para salvar, en el salto, los datos bytes de longitud que tiene cada entrada de salto, AJMP SALTO0,AJMP SALTO 1... _ Siguiendo con las instrucciones incondicionales, de la tabla 4.3 ésta muestra la instrucción CALL addr que tiene 2 formatos, LCALL y ACALL, que difiere en la forma en la que la CPU implementa la dirección donde se encuentra la subrutina. Nota: CALL es el nombre genérico con que el programador se refiere a estas instrucciones de salto, y que se traducen en una <<llamada>> (generalmente suelen producirse varias - Página 49-

50 llamadas desde el programa principal. De ahí su interés por el ahorro de memoria para la máquina y de trabajo para el progamador) a un subprograma (subrutina). Que en sí mismo tiene su identidad para realizar una tarea definida. LCALL addr 16 : utiliza un formato de 16 bits para direccionar la subrutina y esa área de direccionamiento es el máximo de 64 Kbytes de la memoria de programas. Secuencia de operaciones: (PC) (PC) + 3 (SP) (SP) + 1 ((SP)) (PC 7-0 ) (SP) (SP) + 1 ((SP)) (PC 15-8 ) (PC) addr15-0 ACALL addr 11: utiliza un formato de direccionamiento de 11 bits, por lo que la subrutina debe estar dentro del área de los 2 Kbytes, a partir de la siguiente instrucción. Secuencia de operaciones: (PC) (PC) +2 (SP) (SP) + 1 ((SP)) (PC 7-0 ) (SP) (SP) + 1 ((SP)) (PC 15-8 ) (PC 10-0 ) dirección de la página Lo mismo que se indicó en los saltos incondicionales, el programador cuando trabaja en ensamblador sólo debe preocuparse de colocar la etiqueta; el programador ensamblador determinerá la longitud del salto y el formato que debe dar al código de instrucción según la longitud del salto. RET: Las subrutinas terminan su ejecución con la instrucción RET, que es la instrucción que indica la vuelta al programa principal, justo en la dirección de memoria de la instrucción siguiente a la instrucción CALL. Secuencia de operaciones: (PC 15-8 ) ((SP)) (SP) (SP) 1 (PC 7-0 ) ((SP)) (SP) (SP) 1 RETI: Utilizada para retornar de las rutinas del servicio de interrupciones. Las interrupciones se estudian de forma especial en el capitulo Página 50-

51 Secuencias de operaciones: (PC 15-8 ) ((SP)) (SP) (SP) 1 (PC 7-0 ) ((SP)) (SP) (SP) INSTRUCCIONES DE SALTO CONDICIONAL La tabla 3.10 muestra la lista de las instrucciones de salto condicional. Estas instrucciones son las que van a permitir al microcontrolador tomar decisiones (siguiendo secuencialmente una parte del programa u otra) ante una propuesta binaria. Que en el lenguaje coloquial se contesta con una afirmación o negación 1 propuesta de bifurcación de la secuencia del programa se halla implícita dentro del código de operación y es el operando el que señala la dirección del salto en el formato de <<offset relativo>>, por lo que la distancia del salto está limitada a 128 y +127 bytes referida a la instrucción siguiente a la del salto condicional. Trabajando con el programa ensamblador es suficiente señalar con una etiqueta la dirección del salto o con una constante de 16 bits. Nemónico Operación Modos de direccionamiento Tiempo de Flag afectados Dir Ind Reg Imm Ejecución µs C OV AC JZ rel Jump if A=0 Accumulator only 2 JNZ rel Jump if A<>0 Accumulator only 2 DJNZ <byte>,rel Decrement and jump if not zero X X 2 CJNE A,<byte>,rel Jump if A<> <byte> X X 2 X CJNE <byte>,#data,rel Jump if <byte><.> #data X X 2 X X =Si =No Nota: en la tabla 3.10 se señalara como posible operando <byte>, pudiendo ser <byte>: a) El acumulador. b) Los registros R0 a R7 con direccionamiento directo. Los registros R0 y R1 con direccionamiento indirecto. JZ y JNZ: Salta si es cero y salta si no es cero. Para determinar si cumple las condiciones de las instrucciones JZ, y JNZ, la CPU no pasa revista al registro de estado como ocurre en otros - Página 51-

52 micros, sino que directamente el registro acumulador, pues este microcontrolador no tiene << flag cero >> en el registro de estado. Secuencias de operaciones: JZ rel JNZ rel (PC) (PC) + 2 (PC) (PC) + 2 Si (A) = 0 Si (A)<> 0 entonces entonces (PC) (PC) + rel (PC) (PC) + rel DJNZ: Decrementa y salta si no es cero. Esta instrucción está especializada en lazos de control. Para que ejecute un lazo n veces se carga un <<contador>> con n y, cada vez que se ejecute el contenido del lazo, el contador decrementa una unidad, saliendo del lazo cuando el contenido del contador sea cero. (PC) (PC) + 2 (<byte>) (<byte>) 1 Si (<byte>)> 0 o (<byte>)< 0 Entonces (PC) (PC) + rel Ejemlpo: Ejecutar el lazo 10 veces. MOV CONTADOR, # 10 LAZO: (comienzo del lazo) Instruciones que se van a ejecutar mientras CONTADOR sea distinto de <<cero>>. ( fin del lazo) DJNZ CONTADOR, LAZO CJNE: Compara y salta, si el resultado de la comparación no es igual. En este caso hay dos formatos, según la comparación se haga con el acumulador o con un operando tipo <byte>, que puede ser: Con direccionamiento indirecto ( registros R0 y R1). Con direccionamiento directo ( registros R0 y R7 ) CASO 1.MODELO CJNE A,<byte>, salto relativo Secuencia de operaciones: - Página 52-

53 (PC) (PC) + 3 Si (A) <> (<byte>) Entonces (PC) (PC) + rel Si (A) < (<byte>) Entonces (C) 1 sino (C) 0 Ejemplo: Ejecuta las instrucciones que hay dentro del lazo hasta que la lectura del periférico a través del puerto 0 (P0), se corresponda con el valor de la posmen 7FH. MOV A, P0 LAZO: CJNE A,7F, LAZO CASO 2. MODELO CJNE <byte>, # dato, salto relativo Otra aplicación de estas instrucciones es la comparación <<mayor que>> y <<menor que>>. Si de los dos bytes del campo de operandos el primero es menor que el segundo, entonces e <<flag CARRY>> del PSW se pone a <<uno>>. Si el primero byte es mayor o igual que el segundo, entonces el <<flag CARRY>> es <<c ero>>. Estos y otros aspectos están aclarados en el Apéndice A. Secuencia de operaciones: Según se trate de direccionamiento indirecto (registros R0 y R1 (@Ri) o direccionamiento directo (registro R0 y R7 (Rn)) es: data, rel (PC) (PC) + 3 Si ((Ri)) <>data Entonces (PC) (PC) + rel Si ((Ri)) < data Entonces (C) 1 Si no (C) 0 CJNE Rn, # data, del (PC) (PC) + 3 Si (Rn)<>data Entonces (PC) (PC) + rel Si (Rn) < data Entonces (C) 1 Si no (C) 0 - Página 53-

54 (tabla 3.11). Seguidamente, y como resumen, se muestra el set de instrucciones de la familia 51 Al comienzo de estas tablas se señalan las instrucciones que afectan a los flags del PSW, asi como unas notas sobre los símbolos utilizados en estas tablas, y a continuación todas las instrucciones con todos los tipos de direccionamientos que admiten: por esta razón la lista aparece muy dilatada transferencia de datos sobre la RAM externa La tabla 4.5 muestra la lista de instrucciones sobre transferencia de datos que acceden a la memoria de datos. Sólo se puede utilizar el direccionamiento indirecto con este grupo de instrucciones. Dirección con Nemónico Operación Tiempo de ejecución (µs) 8 bits MOVX Read external Ri 2 8 bits Write external 2 16 bits MOVX DPTR Read external 2 16 bits Write external 2 Tabla 3.5 No son afectadas las banderas. Conviene observar que para este tipo de acceso siempre interviene el acumulador como registro fuente o destino. El usuario debe escoger entre el tipo de instrucción MOVX o (siendo Ri, bien el registro R0 o R1 del banco de registros seleccionado), direccionando con 8 bits o bien utilizando un direccionamiento de 16 bits, usando el registro DPTR (MOVX A,@DPTR o y tener que sacrificar el puerto 2, cuando sólo se va a utilizar un pequeño espacio de memoria RAM. Existe una solución intermedia que permite direccionar sólo unos pocos kbytes de RAM externa, pero obteniendo algunas líneas hábiles del puerto 2 como entradas y salidas (E/S). Esta es la solución que se mostró en la figura 2.7 del capitulo2. De todas formas la solución adecuada debe ser función de las características que necesita la aplicación. Suponiendo, en principio, que la implementación de la misma sobre la elección de los microcontoladores 8052/8051 sea la correcta. Las líneas de control de lectura y escritura, RD y WR (pines 16 Y 17), sólo son utilizadas cuando se ejecutan las instrucciones MOVX; si no se va a utilizar memoria RAM externa, es obvio que se ganarán una líneas extras de E/S (figura 4.7) Ejemplo: Estudiar la secuencia de instrucciones. MOVX - Página 54-

55 Antes : (R1) = F3H F3H 3AH MOVX A,@R1 ejecución: A (F3H) Después: (A) = 3AH 85H? Antes : (A) = 3AH y (R0) = 85H ejecución: (R0) (A) R1 F3H Después: (85h) = 3AH R0 85H Qué sucedería si se tuviera que implementar estas instrucciones en al zona de memoria por encima de la dirección 2000H? Es decir: Sustituida 85H H F3H F3H Se llegaría a la conclusión de que no se podría procesar estas instrucciones, contando que los registros R0 y R1 no pueden direccionar por encima de la posición de memoria FFH. Pero aquí es donde entran en juego las instrucciones MOVX con el DPTR como operando. La sustitución, en el caso de tener que operar en el espacio de memoria comprendiendo entre 0000H y FFFFH. Sería: Sustituida MOVX MOVX Ri, A Recuérdese que en la tabla 3.4 hay una instrucción que es: MOV DPTR, # data 16 Con la que se podría acceder a todo el mapa de memoria Memoria de programas para el tratamiento de tablas. La tabla 4.6 muestra las dos instrucciones disponibles para la lectura de tablas en la memoria de programas (independientemente del algoritmo que pueda crear el usuario con otras instrucciones), obsérvese que las tablas sólo pueden ser leídas y no actualizadas. El nemónico es MOVC (Mover constante). Si la tabla accede a la memoria de programa externa, recordar que esta lectura es autorizada por la señal de control PSEN (pin 29). Obsérvese la figura 2.5 del capítulo anterior. - Página 55-

56 Tabla 4.6 Nemónico Operación Tiempo de ejecución (µs) MOVC A + DPTR Read pgm memory at (A + DPTR) 2 MOVC A + PC Read pgm memory at (A + PC) 2 No son afectados los flags. La primera instrucción de la tabla permite la lectura en tablas con accesos no superiores a 256. El acceso deseado es cargado en el acumulador, y el data pointer (DPTR) Establece el puntero de comienzo de la tabla. La lectura es cargada dentro del registro acumulador. MOVC A ((A) + (DPTR)) La segunda instrucción es similar a la primera, salvo que el program counter (PC) el que actúa como indicador de la dirección base de la tabla. PC (PC) + 1 MOVC A ((A) + (PC)) Se presenta esta instrucción dentro de una subrutina, estando la tabla de información después de la instrucción de retorno de la subrutina (RET). Ejemplo: Se trata de demostrar el funcionamiento sobre una tabla de 4 datos. A la izquierda aparece el mapa de memoria del programa 90H MOV 91H #01H 92H 93H CALL Dire, rutina A0H A1H A2H A3H A4H A5H A6H INC A MOVC RET 20H 21H 22H 23H MOV A, #01H CALL TABLA - Página 56-

57 TABLA: INC A MOVC RET DATO0 DATO1 DATO2 DATO3 Se pretende acceder inicialmente al DATO1, por esta razón se carga al acumulador con 01H, se salta a la rutina de tratamiento de la tabla. Ya en al rutina, se incrementa el acumulador, con lo que su valor será: (A) (A) +1 02H H + 1 En la instrucción MOVC el valor del acumulador es 02 y el PC apunta a la instrucción RET, por lo que la suma A2H + A4H, luego: A (A4H) (A) = 21H - Página 57-

58 Ejemplo 1.6 Control de un Proceso Industrial Elemental El siguiente ejercicio muestra cómo realizar el control de un proceso industrial muy simple, utilizando el CPU del Microcontrolador para la toma de decisiones, la memoria para almacenar las instrucciones del programa y los datos, y los puertos, uno (de lectura) para comprobar la situación de los sensores y el otro (de escritura) para enviar la señal a los actuadores. PROCESO Se trata de controla el nivel de líquido de un depósito, utilizando tres sensores detectores de niveles A,B y C, Y DOS BOMBAS B1 Y B2 (Figura 5.9) He aquí una descripción del proceso, desde el punto de vista de su relación con el mundo exterior, según los tres tipos de señales principales: Entrada de información: SENSORES. Actuación sobre los elementos finales: ACTUADORES. Señalización del proceso: INDICADORES. - Página 58-

59 1. Sensores (entradas) El sensor A señala el nivel mínimo de agua. Por debajo de este nivel, se indicará <<VACIO>> en el cuadro de INDICADORES. El sensor B señala el nivel óptimo y cuando se alcance se indicará <<LLENO>>. El sensor C señala el nivel peligroso e indica <<REBOSE>>. Los sensores serán leídos por el microcontrolador a través del Puerto P3 P3.0 A P3.1 B P3.2 C 2. ACTUADORES (salidas) Cuando ninguno de los sensores estén mojados, se entiende que el depósito está vacío y los actuadores activarán las dos bombas B1 y B2 (P1.0 y P1.1). Cuando el nivel del líquido toque la sonda B, se desactivará la bomba B2 (P1,0 0).quedando la bomba B1 activada en modo mantenimiento. Si el nivel de líquido moja la sonda C (rebose), se desactivará la bomba B1, quedando las dos bombas, de momento, fuera de servicio. 3. INDICADORES (salidas) La señalización utiliza el puerto P1. P1.2 VACIO P1.3 LLENO P1.4 REBOSE Y cuando se produce un fallo (mal funcionamiento) en las sondas de entrada. Por ejemplo, que el sensor B (P3.1) se active cuando el sensor A (P3.0) no lo está, se excita en el cuadro de indicadores de señal de ALARMA. P1.5 ALARMA La figura 5.10 muestra la disposición de los actuadores, indicadores y sondas. DEFSEG CONTROL, ABSOLUTE SEG CONTROL ORG 0H MOV DPTR,#0100H ;Inicialización puntero de TABLA LEER: MOV A, P3 ;LEE puerto P3 ANL A, #07H ;Enmascara MOVC ; Direcciona y captura dato MOV P1, A ; Actúa mandando los datos al P1 JMP LEER ORG 0100H DB 07H, 07H, 20H, 09H 20H, 20H, 20H, 10H END - Página 59-

60 Como se puede observar, el programa utiliza el direccionanmiento indexado para acceder a la información escrita previamente el la tabla de datos, situada en las posiciones de memoria comprendidas entre la 0100H y 0107H. El primer bloque del flujograma inicializa el puntero DPTR en la dirección de comienzo de la tabla de datos. El segundo bloque lee la información de las sondas a través del Puerto P0. El tercer bloque enmascara la información del puerto P0, dejando solamente los tres primeros bits útiles de P0. El cuarto bloque direcciona a la posición de memoria de la tabla relativa al contenido de las sondas (ACC) más (suma aritmética) el puerto DPTR. El contenido de esa posición de memoria direccionada pasa al acumulador. Es decir, si el estado de las sondas señala A=1, B=1 y C=0 (03H), se realiza el siguiente acceso a la tabla de datos: es decir, A (03H H) El contenido de la posmem 0103H para el acumulador. El quinto bloque escribe la información leída de la tabla en el Puerto P1. El contenido de la tabla, según las directrices dictadas por el algoritmo de control de la planta, es el siguiente: 0100H 07H ; Activa B1-B2 y señala VACIO 0101H 07H ; Activa B1-B2 y no señala VACIO 0102H 20H ; Señala ALARMA 0103H 09H ; Desactiva B2 y señala LLENO 0104H 20H ; Señala ALARMA 0105H 20H ; Señala ALARMA 0106H 20H ; Señala ALARMA H ; Señala y REBOSE ENTRADAS SALIDAS P3.2 P3.1 P3.0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 C B A N.C N.C AL RE LL V B2 B Página 60-

61 Interfase Periferica Programable PPI 8255 El 8255 es un dispositivo programable de Entrada/Salida de propósito general diseñado para usarse con los microprocesadores de INTEL, cuenta con 24 pines de E/S que pueden ser programados en 2 grupos de 12 pines y puede funcionar en 3 modos de operación. La configuración funcional del 8255 es programada por medio de software y no es necesaria lógica digital externa. El bus de salida de datos del 8255 cuenta con un buffer de tres estados bidireccional, el cual es usado para acoplarse con el sistema. Los datos se transmiten o reciben por el buffer después de ejecutar una orden de entrada o salida por el Microprocesador. La palabra de control y la de estado son transferida únicamente atreves del bus de datos. - Página 61-

62 Funcionamiento del Block de LECTURA ESCRITURA Y CONTROL LOGICO La función de este block de entradas es la de controlar internamente y externamente la transferencia de los datos y las palabras de control. Este block acepta entradas de control o direcciones desde el Microprocesador. (CS)Chip Select: Una entrada baja en este pin habilita la comunicación entre el 8255 y el Micro. - Página 62-

63 (RD)Read: Una entrada baja en este pin habilita el 8255 para leer datos del puerto especificado a la Computadora. (WR)Write: Una entrada baja en esta pin habilita al 8255 para escribir información del Micro a un puerto o al registro de control. (A0 y A1): Estas entradas de señal en unión con las señales (RD) y (WR) controlan la selección de uno de los tres puertos o del registro de control. Estas señales son normalmente conectadas a los bits menos significativos de del bus de direcciones (A0 y A1) del Microprocesador. RESET: Una entrada alta en este pin limpia el registro de control y todos los puertos son puestos en modo de entrada. OPERACIÓN BASICA DE LOS PINES A0, A1, RD y WR A1 A0 RD WR CS OPERACIONES DE LECTURA Del Puerto A --> Al bus de Datos Del Puerto B --> Al bus de Datos Del Puerto C--> Al bus de Datos OPERACIONES DE ESCRITURA Del bus de Datos--> Al Puerto A Del bus de Datos--> Al puerto B Del bus de Datos--> Al puerto C Del bus de Datos-> Reg. de Control FUNCIONES DE 3 ESTADOS X X X X 1 Bus de Datos--> 3 Estados CONDICION ILEGAL. X X Bus de Datos --> 3 Estados TABLA 1.6 GRUPO DE CONTROL A Y GRUPO DE CONTROL B. La configuración funcional de cada puerto es programada por el software del sistema. En esencia, el CPU manda la palabra de control al La palabra de control contiene información acerca del modo de control y sirve para inicializar al Cada uno de los grupos de control (Grupo A y Grupo B) acepta comandos de lectura/escritura y control lógico, recibe la palabra de control desde el bus de datos interno y emite su propio comando que esta asociado con un puerto. El grupo de control A se refiere al puerto A y a los cuatro bit superiores del puerto C. El grupo de control B se refiere al puerto B y a los cuatro bits inferiores del puerto C. El registro de control solamente se puede escribir y no se puede leer. - Página 63-

64 PUERTO A, B Y C. El 8255 contiene tres puertos de 8 bits, puerto (A, B y C). Todos cuentan con buffer en la entrada y salida y pueden ser configurados con variadas características de funcionamiento por medio de software pero cada uno tiene su propia personalidad por lo que el 8255 tiene mucha flexibilidad. PUERTO A: Cuenta con latch/buffer de 8 bit de salida y solamente latch de entrada. PUERTO B: Cuenta con un latch/buffer de 8 bit de entrada/salida. PUERTO C: Cuenta con un latch/buffer de salida y un buffer de entrada. Este puerto puede ser dividido en dos puertos de 4 bit. SELECCION DEL MODO DE CONTROL. Cuando un alto es puesto en el pin de reset todos los puertos son puestos en modo de entrada, después de que el reset es retirado el 8255 mantiene el modo de entrada en tanto no se le mande o indique alguna instrucción. El 8255 cuenta con tres modos de operación que pueden ser programados por medio de software, estos tres modos de operación son los siguientes. MODO 0 -> BASIC INPUT / OUTPUT MODO 1 ->STROBED INPUT / OUTPUT MODE 2 -> BI-DIRECCIONAL BUS. Los modos de operación para el puerto A y para el puerto B están definidos separadamente, pero el puerto C esta dividido en dos porciones que son requeridas por el puerto A y el puerto B. Todos los registros de salida son limpiados cuando el modo de operación es cambiado. - Página 64-

65 Formato del modo de Definición en la Palabre de Control - Página 65-

66 MODO DE OPERACION 0 Esta forma de configuración consta de operaciones de entrada y salida simples para cada uno de los tres puertos. No requiere señal de Handshaking por que los datos son simplemente escritos o leídos por el puerto especificado. DEFINICION FUNCIONAL DEL MODO 0 Dos puertos de 8-bit y dos puertos de 4 bit. Cualquier puerto puede ser configurado como entrada o salida. Todas las salidas cuentan con latch. Las entradas no tienen latch. 16 diferentes configuraciones de entrada/salida son posibles en este modo. - Página 66-

67 Ejemplo: CONFIGURACIONES EN MODO 0. REGISTRO DE CONTROL D7 D6 D5 D4 D3 D2 D1 D PALBRA DE CONTROL 80H o 128D CONFIGURACONES DE ENTRADA/SALIDA EN MODO 0 HEX DEC PUERTO A PORT C SUP PUERTO B PORT C INF 80H 128 salida salida salida salida 81H 129 salida Salida salida entrada 82H 130 salida Salida entrada salida 83H 131 salida Salida entrada entrada 88H 136 salida Entrada salida salida 89H 137 salida Entrada salida entrada 8AH 138 salida Entrada entrada salida 8BH 139 salida Entrada entrada entrada 90H 144 entrada Salida salida salida 91H 145 entrada Salida salida entrada 92H 146 entrada Salida entrada salida 93H 147 entrada Salida entrada entrada 98H 152 entrada Entrada salida salida 99H 153 entrada Entrada salida entrada 9AH 154 entrada Entrada entrada salida 9BH 155 entrada Entrada entrad entrada Tabla. 1.8 MODO 1: ENTRADA MEDIANTE HABILITACION El funcionamiento en Modo 1 hace que el puerto A o el B funcionen como registros de entrada. Esto permite que los datos externos se almacenen en el puerto hasta que el microprocesador está listo para leerlos. El puerto C se utiliza también en el funcionamiento en modo 1, no para datos sino para señales de control o de reconocimiento que hacen funcionar al puerto A ó al puerto B como puertos de entrada mediante una señal de habilitación estroboscópica. El puerto de entrada mediante la señal de habilitación captura los datos cuando se aplica la señal STB. Se debe tomar en cuenta que esta señal captura los datos del puerto en la transición de 0 a 1. La señal STB hace que se capturen los datos en el puerto y también activa la señal IBF (entrada llena) e INTR (solicitar interrupción). Una vez que la computadora, por medio de IBF ó INTR recibe aviso de que hay datos de entrada en el puerto, ejecuta la instrucción IN para leer el contenido del puerto (RD). La - Página 67-

68 acción de lectura del puerto, lleva a IBF y a INTR a su estado inactivo hasta que haya un nuevo dato en el puerto. DEFINICION DE LAS SEÑALES PARA ENTRADA EN MODO 1 1. STB. Habilitación estroboscópica: entrada utilizada para cargar datos en el registro del puerto, que retiene la información y se le da entrada a la computadora por medio de la instrucción IN. 2. IBF. Registro de entrada lleno: Una salida que indica que el registro de entrada contiene información. 3. INTR. Solicitud de interrupción, es una salida que solicita una interrupción. La terminal INTR se activa con un 1 lógico y se desactiva cuando la computadora da entrada de los datos. 4. PC6,PC7. Las terminales 7 y 6 del puerto C son terminales de E/S de uso general que están disponibles para lo que se desee. EJEMPLO DE ENTRADA MEDIANTE HABILITACION. - Página 68-

69 El teclado es un excelente ejemplo de dispositivo de entrada mediante habilitación. El decodificador del teclado elimina los rebotes de los interruptores de las teclas y produce una señal de habilitación estroboscópica siempre que se oprima una tecla y su salida de datos contiene el código ASCII. MODO 1 SALIDA MEDIANTE HABILITACION A continuación se muestra la configuración interna del 8255 cuando funciona como dispositivo de salida por habilitación estroboscópica en Modo 1. El funcionamiento con salida por habilitación es similar al Modo 0, execpto que se incluyen las señales de control para que haya un protocolo de reconocimiento. Siempre que se escriben datos en un puerto programado como salida por habilitación estroboscópica, la señal OBF (registro de salida, lleno), se activa con un 0 lógico para indicar que los datos están en el registro del puerto. Esta señal indica que los datos están disponibles para un dispositivo de E/S externo que, al tomar los datos activa la entrada ACK (reconocimiento) de habilitación al puerto. La salida ACK desactiva la señal OBF otra vez a un 1 lógico para indicar el registro de salida esta vacío. DEFINICION DE SEÑALES DE SALIDA EN MODO 1 1. OBF. Registro de salida, lleno: Una salida que se pone a 0 siempre que hay salida de datos (OUT) por el puerto A o el puerto B. Esta señal se desactiva a 1 lógico siempre que el dispositivo externo retroalimente con el pulso ACK. 2. ACK. Reconocimiento: Es la respuesta de un dispositivo externo con la que indica que recibio los datos desde el puerto Un ejemplo de salida mediante habilitacion es la coneccion con una impresora. - Página 69-

70 MODO 2 FUNCIONAMIENTO BIDIRECCIONAL En modo 2, que solo se permite para el grupo A, el puerto A se vuelve bidireccional y permite transmitir y recibir datos por el mismo puerto. Un canal de datos bidireccional es útil cuando se conectan dos computadoras. También se utiliza para la interface paralela estándar IEEE-488, de alta velocidad (canal de instrumentacón de uso general, GPIB 1 ). A continuación se muestra la estructura interna de Modo INTR. Solicitud de interrupción: salida utilizada para interrumpir la computadora para condiciones de entrada y salida. 2. OBF: Registro de salida, lleno: una salida que indica que el registro de salida contiene datos para el canal bidireccional. 3. ACK: Reconocimiento. 4. STB: Habilitación: 5. IBF: Registro de entrada lleno: 6. INTE, Habilitación de Interrupción Interna - Página 70-

71 DISPLEY DE CRISTAL LÍQUIDO (LCD) El display de cristal liquido de matriz de puntos puede conectarse directamente, con el microcontrolador, gracias a que tiene un bus de datos de tres estados, además tiene como característica un consumo de energía bajo. Todas las funciones requeridas por el LCD se encuentran dentro del circuito integrado HD44780 de Hitachi el cual cuenta con 192 caracteres o sea el alfabeto completo además de diversos símbolos. Con el HD44780 se pueden visualizar 32 caracteres a la vez, en 2 líneas pero si se conecta uno o más driver LSI HD44100 más caracteres se pueden visualizar. Este modelo se conecta fácilmente al bus de datos de cualquier microprocesador, mediante las siguientes terminales. Asignación de las Terminales pinout de LCD Paralelo: pin Señal Nivel Función 1 Vss Gnd. Tierra 0v Power Supply 2 Vdd Vcc. 5V Power Supply 3 Vo Voltaje de Contraste. 4 RS H/L RS=0 Entrada de Instrucciones, RS=1 Entrada de Datos. 5 R/W H/L R/W=0:Data Read, R/W=1:Data Write 6 E H,H->L Enable, señal de Habilitación 7 DB0 H/L Bit menos significativo del Bus de Datos 8 DB1 H/L Bus de Datos 9 DB2 H/L Bus de Datos 10 DB3 H/L Bus de Datos 11 DB4 H/L Bus de Datos 12 DB5 H/L Bus de Datos 13 DB6 H/L Bus de Datos 14 DB7 H/L Bit más significativo del Bus de Datos Tabla 1.1 EXHIBIDOR ALFANUMÉRICO Página 71-

72 FUNCIONAMIENTO DEL LCD: El procedimiento para inicializar el display es la siguiente: 1. Primero se determina el tamaño de la interfase a la cual el display se va a conectar así como el número de líneas del display. El primer Byte de control que se envía al display es el numero 38H, el cual significa lo siguiente: Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 38H BD5 debe estar a 1, DB4 especifica el tamaño del bus (4 ó 8 bits), y el DB3 el numero de líneas del display. Se debe dar un retardo de 40µS antes de enviar la siguiente instrucción. 2. Se limpia toda la memoria del display y se regresa el cursor a la posición inicial. Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 01H Esta instrucción toma un tiempo de 1.64 ms. 3. Se establece el movimiento del cursor hacia la derecha, la pantalla del display permanece fija con la entrada de los caracteres. Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 06H Esta instrucción toma un tiempo de 40µS. 4. Se prende la pantalla del display y se prende el cursor señalando la posición del proximo carácter de entrada, se desactiva el parpadeo. Código RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0EH Esta instrucción toma un tiempo de 40µS. 5. A partir de aquí se puede comenzar a enviar los caracteres que se desean mostrar dejando un tiempo de 40µS como mínimo y colocando RS=1. Por ejemplo se enviara la palabra TECNOLOGICO por lo tanto se escribirá el siguiente código ASCII. Primero el código de la letra T CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 54H T Ahora se envía el código de la letra E. - Página 72-

73 CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB H T E Y así las demás letras. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 43H T E C REGISTROS. El LCD tiene 2 registros de 8-bits, uno es el registro de instrucciones (IR) y otro el registro de datos (DR). Escribir en el registro IR. El IR almacena código de instrucción para display clear y cursor shift, etc., y también para escribir una nueva dirección en el registro AC (Address Counter), que es el registro encargado de apuntar, tanto a la DD RAM (RAM de Datos del Display) como a la CG RAM (RAM Generador de Caracteres). Leer del IR. Permite la lectura del registro AC, del cual sólo son válidos los 7 bits de menos significativos DB0-DB6, el bit de mayor peso, DB7 informa del estado del Busy Flag o indicador del display Ocupado. Escritura en el DR. Permite escribir en DD RAM o CG RAM donde se encuentre apuntando el registro AC. Leer del DR. RS R/W Operación 0 0 Escribir en IR:Borrar Display, etc., o modificar AC. 0 1 Leer el IR: Leer el AC(DB0-6) y el Busy Flag (DB7). 1 0 Escribir en DR: Escribir en DD RAM o CG RAM 1 1 Leer el DR: Leer de DD RAM o CG RAM Tabla Página 73-

74 Busy Flag (BF): Cuando se encuentra a 1 indica que el LCD está ocupado realizando operaciones internas y no puede aceptar nuevas instrucciones. Hay que esperar que el Busy Flag valga 0 para enviar la siguiente instrucción. Contador de Dirección (AC): Indica la dirección donde serán leídos o escritos los datos sobre DD RAM o CG RAM. Este registro puede modificarse realizando una escritura en el IR. Además, cuando se escriben o se leen datos en el DD RAM o CG RAM, el AC se incrementa o decrementa de manera automática de acuerdo con el Modo de Entrada (Entry Mode Set). Ram de Datos del Display (DD RAM): Tiene una capacidad de 80 bytes, 40 por cada línea; lógicamente dependiendo del modelo sólo 16,32,40 ó 80 caracteres podrán ser visualizados a la vez, aunque desplazando (shift) el display podrán irse visualizando todos los caracteres escritos. Generador de caracteres en ROM (CG ROM): Tiene definido 160 caracteres, en matrices de 5x7 puntos. Generador de caracteres en RAM (CG RAM): Permite definir ocho caracteres, cuyos códigos van desde el 00 al 08. TABLA DE COMANDOS DE CONTROL (INSTRUCCIONES) INSTRUCCION RS R/ W D7 D6 D5 D4 D3 D2 D1 D 0 Clear display Return home * Entry mode set I/D S Disp. on/off cont D C B Cur o disp shift S/C R/L * * Funcion set DL N F * * Set CG ram addres ACG Set DD ram addres ADD (Dirección del Cursor) Rd busy flag 0 1 BF AC (Address Counter) Wr dato to CG 1 0 Escribir Datos Rd dato from CG 1 1 Leer Datos Tabla 1.3 DESCRIPCIÓN I/D=1: Increment (+1). I/D=0: Decrement (-1). D=1: Display ON D=0: Display OFF. C=1: Cursor ON. C=0: Cursor OFF. B=1: Blinking. S=1: Accompanies display shift. S/C=1: Display shift. S/C=0: Cursos move. R/L=1: Shift to the rigth. R/L=0: Shift to the left. DL =1: 8 bits. DL =0: 4 bits. N = 1: 2 líneas. N = 0: 1 línea. - Página 74-

75 F = 1: 5x10 dots. BF =1: operación Interna. F = 0: 5x7 dots. BF =0: Puede aceptar operación. DESCRIPCIÓN DETALLADA DE LAS INSTRUCCIONES: Escritura en IR cuando RS=0 y R/W=0. - Limpiar Display: Borra display, manda cursor al inicio, y pone el Modo de Entrada en Incrementar. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB Cursor a posición inicial. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB * *No Importa. - MODO DE ENTRADA (ENTRY MODE SET) Establece las características de escritura de los datos. S=1. El display se desplaza al escribir un nuevo carácter. S=0. El disp. no se desplaza al escribir un nuevo carácter. I/D=1. Incremento automático del registro AC al escribir. I/D=1. Decremento automático del registro AC al escribir. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB I/D S - CONTROL DEL DISPLAY. B=0. Blink OFF, no hay efecto de parpadeo del cursor. B=1. Blink ON, efecto de parpadeo del cursor rectangular. C=0. Cursor OFF, el cursor no se visualiza. C=1. Cursor ON, el cursor es visualizado. D=0. Display OFF, el display se apaga. D=1. Display ON, el display se enciende. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB D C B - Deslizamiento (Shift) del Cursor/Display. R/L=0. A la izquierda. R/L=1. A la derecha. - Página 75-

76 S/C=0. El deslizamiento se aplica sobre el cursor. S/C=1. El deslizamiento se aplica sobre todo el display. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB S/C R/L * * - Control para 4 o 8 bits. Cuando el LCD no se conecta al bus de datos de un microcontrolador o microprocesador de 8 bits, sino que lo hace a un micro de 4 bits, es posible indicarle al LCD que solamente vamos a utilizar los bits DB7, DB6, DB5 y DB4, para enviarle los datos, y que lo haremos enviando primero el nible alto, y a continuación el nible bajo del dato. DL=0. Control con 4 bits. N=0. Una línea. F=0. 5x7 dots. DL=1. Control con 8 bits. N=1. Dos líneas. F=1. 5x10 dots. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB DL N F * * - Poner Dirección CG RAM El registro AC queda apuntando a la dirección indicada sobre la CG RAM. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 CG5 CG4 CG3 CG2 CG1 CG0 - Poner Dirección DD RAM. El registro AC queda apuntando a la dirección indicada sobre la DD RAM la cual corresponde a la dirección del cursor. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 DD6 DD5 DD4 DD3 DD2 DD1 DD0 Lectura del IR RS = 0 y R/W = 1. - Lectura de BF y AC. El dato recibido indica el contenido del registro AC, es decir, la dirección a donde está apuntando, bien CG RAM o DD RAM, según lo que hayamos seleccionado con anterioridad. Además, en el bit de mayor peso se recibe el estado del Busy Flag, indicando si está ocupado o puede recibir un nuevo dato. DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 ESCRITURA SOBRE DR => RS = 1 Y R/W = 0. - Página 76-

77 - Escritura sobre CG RAM o DD RAM: DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Lectura del DR => RS = 1 y R/W = 1. - Lectura desde CG RAM o DD RAM: DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 PROCEDIMIENTO PARA INICIALIZAR EL DISPLAY 1.- Primeramente se define el tipo de Microcontrolador al cual el display se va a conectar (8 ó 4 Bits), y el número de líneas del display, por lo que primeramente se envía al display el numero 38H. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 38H Se prende la pantalla del display, se activa el cursor señalando la posición del próximo caracter de entrada y se desactiva el parpadeo. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0EH Se establece el movimiento del cursor hacia la derecha, la pantalla del display permanece fija con la entrada de los caracteres. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 06H A partir de aquí se pueden comenzar a enviar los caracteres que se desean exhibir dejando un tiempo entre cada uno de ellos de 40µS. Mínimo, y con RS=1. Por ejemplo para enviar las letras T,E y C se escribe el siguiente código ASCII. Primero el código para la letra T CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 54H T Ahora se envía el codigo de la letra E. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 - Página 77-

78 45H T E Y por ultimo el código de la letra C. CODIGO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 43H T E C T E C N O L O G I C O BIBLIOGRAFIA 1. HITACHI DATABOOK. - Página 78-

79 JUEGO DE CARACTERES ASCII DEL LCD - Página 79-

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo

Más detalles

ENIAC, Primer computador electrónico y su panel de conexiones

ENIAC, Primer computador electrónico y su panel de conexiones -1 La arquitectura de Von Neumann. Los primeros computadores se programaban en realidad recableándolos. Esto prácticamente equivalía a reconstruir todo el computador cuando se requería de un nuevo programa.

Más detalles

CAPITULO 1 CARACTERÍSTICAS GENERALES DEL MICROCONTROLADOR 8051. menú principal

CAPITULO 1 CARACTERÍSTICAS GENERALES DEL MICROCONTROLADOR 8051. menú principal CAPITULO 1 CARACTERÍSTICAS GENERALES DEL MICROCONTROLADOR 8051 menú principal 1.1 CARACTERÍSTICAS DEL 8051. La Familia de µc-8051 es variada, y se encuentra en diversas presentaciones, la selección de

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

El nivel ISA (II)! Conjunto de Instrucciones

El nivel ISA (II)! Conjunto de Instrucciones El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina

Más detalles

Estructura del Computador

Estructura del Computador Estructura del Computador 1 definiciones preliminares Estructura: es la forma en que los componentes están interrelacionados Función: la operación de cada componente individual como parte de la estructura.

Más detalles

ESCUELA POLITÉCNICA DEL EJÉRCITO SEDE LATACUNGA CARRERA DE INGENIERÍA ELECTRÓNICA

ESCUELA POLITÉCNICA DEL EJÉRCITO SEDE LATACUNGA CARRERA DE INGENIERÍA ELECTRÓNICA ESCUELA POLITÉCNICA DEL EJÉRCITO SEDE LATACUNGA CARRERA DE INGENIERÍA ELECTRÓNICA Proyecto de Grado previo a la Obtención del Título de Ingeniería de Ejecución en Electrónica e Instrumentación. DISEÑO,

Más detalles

1.2.- EL MICROPROCESADOR.

1.2.- EL MICROPROCESADOR. 1.2.- EL MICROPROCESADOR. El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) unidad central de procesamiento UCP, también conocido

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

Más detalles

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

Más detalles

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ) Hardware y Software (1/6) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII American Standard Code for Information Interchange Carácter =

Más detalles

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los

Más detalles

TEMA 1: Concepto de ordenador

TEMA 1: Concepto de ordenador TEMA 1: Concepto de ordenador 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir estos programas necesitamos

Más detalles

Qué es un Microcontrolador?

Qué es un Microcontrolador? Qué es un Microcontrolador? Es un circuito integrado programable que contiene todos los componentes de un computadora, aunque de limitadas prestaciones y se destina a gobernar una sola tarea. Cómo se compone

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O Interfaz con Dispositivos I/O Interfaz con Dispositivos de Salida y Salida Unidad 4, Segunda Parte Port Mapped Memory mapped 1 2 Ejecución de la Instrucción OUT Ejecución de la instrucción OUT Dirección

Más detalles

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna

AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna AUTOMATIZACION GUIA DE TRABAJO 3 DOCENTE: VICTOR HUGO BERNAL UNIDAD No. 3 OBJETIVO GENERAL Realizar una introducción a los controladores lógicos programables OBJETIVOS ESPECIFICOS: Reconocer la arquitectura

Más detalles

DIAGRAMA A BLOQUES DE UNA COMPUTADORA

DIAGRAMA A BLOQUES DE UNA COMPUTADORA DIAGRAMA A BLOQUES DE UNA COMPUTADORA BUS DE DATOS: Interconecta los dispositivos de entrada/salida, la memoria RAM y el CPU. BUS DE DIRECCIONES: Se utiliza para direccional las localidades de memoria

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)

Más detalles

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura Índice 1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura 1.3.1 Arquitectura RISC 1.3.2 Arquitectura Harvard 1.3.3

Más detalles

Funcionamiento de la Pila (o stack)

Funcionamiento de la Pila (o stack) Funcionamiento de la Pila (o stack) Todo μp cuenta con una memoria de almacenamiento temporal denominada Pila Es una estructura de datos de tipo secuencial (LIFO) Existen dos operaciones básicas posibles:

Más detalles

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI Guía de preparación para el examen ELECTRONICA CxTx En esta materia básicamente se evalúan temas tales como son: MULTIVIBRADORES, MEMORIAS, CONTADORES Y COMPUERTAS LOGICAS, SUMADOR RESTADOR Y MICROPOCESADORES

Más detalles

UNIDAD 1. COMPONENTES DEL COMPUTADOR

UNIDAD 1. COMPONENTES DEL COMPUTADOR UNIDAD 1. COMPONENTES DEL COMPUTADOR OBJETIVO Nº 1.1: DEFINICIÓN DE COMPUTADOR: Es un dispositivo electrónico compuesto básicamente de un procesador, una memoria y los dispositivos de entrada/salida (E/S).

Más detalles

Mapeo en el P 8086 de Intel

Mapeo en el P 8086 de Intel Mapeo en el P 8086 de Intel Ing. Silvia Domizi Ing. Diego Alegrecci Mapeo Microprocesador 8086 1 Introducción Mapeo Microprocesador 8086 2 Mapeo Mapear un dispositivo, es asignarle un intervalo definido

Más detalles

ITT-327-T Microprocesadores

ITT-327-T Microprocesadores ITT-327-T Microprocesadores Temporizador Programable (PIT) 8254. Temporizador/Contador Programable (PIT) 8254. Es un contador/temporizador programable diseñado para trabajar con los sistemas de microcomputadores.

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control

Más detalles

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. MEMORIAS CACHE Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. Tiempo ciclo memoria > tiempo de ciclo del procesador la CPU debe esperar a la memoria

Más detalles

Arquitectura de Computadores. Apellidos, Nombre:

Arquitectura de Computadores. Apellidos, Nombre: No se considerarán como válidas las respuestas en las que no se justifiquen los cálculos realizados No se permite el uso de ningún tipo de documentación, ni de calculadora Sólo existe una única opción

Más detalles

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM Unidad 1 Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES Grado en Ingeniería Informática EPS - UAM Índice 1. Sistemas digitales basados en microprocesador. 1.1. Arquitectura

Más detalles

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS 1. CARACTERISTCAS Suministro de voltaje de funcionamiento 2.5 a 6 V Bajo consumo de corriente de espera (standby) de 10 ma máximo. Expansor I²C a puerto paralelo.

Más detalles

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos INDICE Prólogo XI 1. Operación del Computador 1 1.1. Calculadoras y Computadores 2 1.2. Computadores digitales electrónicos 5 1.3. Aplicación de los computadores a la solución de problemas 7 1.4. Aplicaciones

Más detalles

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila VOCABULARIO DEL HARDWARE Docente Yeni Ávila HARDWARE El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.

Más detalles

Diagrama a bloques de una computadora

Diagrama a bloques de una computadora Diagrama a bloques de una computadora Memoria Primaria Bus de Datos Bus de Dato s Bus de Direccione s Procesador Bus de Direcciones Memoria Secundaria Unidad de Control ALU Bus Interno Registros Bus de

Más detalles

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de

Más detalles

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software

Más detalles

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90. PROCESADORES TIPOS DE PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO DE GALLETA: se utilizaban en las board en los años 80 y 90. DE PINES: reemplazaron los procesadores

Más detalles

Introducción al PLC Simatic Siemens S7-200.

Introducción al PLC Simatic Siemens S7-200. Francisco J. Jiménez Montero. Málaga, Febrero de 2007. Revisado: Noviembre de 2010. Ciclo Formativo de Grado Medio de Instalaciones Eléctricas y Automáticas. Introducción al PLC Simatic Siemens S7-200.

Más detalles

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas Tema 5. Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 28-29 Tema 5 Hoja: 2 / 36 Tema 5 Hoja: 3 / 36 Base teórica La memoria es el lugar en

Más detalles

MICROCONTROLADORES MCS-51

MICROCONTROLADORES MCS-51 DEPARTAMENTO DE ELECTRONICA Y TELECOMUNICACIONES ESCUELA UNIVERSITARIA DE INGENIERIA TECNICA INDUSTRIAL E INGENIERIA TECNICA EN TOPOGRAFIA VITORIA-GASTEIZ UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN LABORATORIO DE CIRCUITOS DIGITALES

Más detalles

Instituto Tecnológico de Morelia

Instituto Tecnológico de Morelia Instituto Tecnológico de Morelia Arquitectura de Computadoras Unidad 1a Programa 1 Modelo de arquitecturas de cómputo. 1.1 Modelos de arquitecturas de cómputo. 1.1.1 Clásicas. 1.1.2 Segmentadas. 1.1.3

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC MICROCONTROLADORES PIC LOS TIMER DE LOS 16F87x TEMA EL TIMER 1 CCFF D.P.E. MÓDULO DE PROYECTOS 1 Diagrama de Bloques del TIMER1 CCFF D.P.E. MÓDULO DE PROYECTOS 2 INTRODUCCIÓN El módulo TIMER1 es un temporizador/contador

Más detalles

EL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO

EL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO EL ORDENADOR 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO 4. PARTES DE UN SISTEMA INFORMÁTICO A. PERIFÉRICOS. B. UNIDAD CENTRAL. a) CARCASA b)

Más detalles

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales EL-611 Complemento de Diseño Lógico y Objetivos y Evaluación Segundo Curso de Sistemas Digitales Complementar Materia Enfoque Diseños de Mayor Envergadura 1 Control + Examen y 6 Ejercicios (aprox.) Tareas

Más detalles

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb? 1. Qué es un bit? 2. Qué valores puede tener un bit? 3. Cuántos bits hay en 1 byte? 4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1

Más detalles

Programación en java. Estructuras algorítmicas

Programación en java. Estructuras algorítmicas Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1 Compiladores, Guía 11 1 Tema: GENERACION DE CODIGO. Facultad : Ingeniería Escuela :Computación Asignatura:Compiladores Objetivo Reconocer las diferentes instrucciones para la generación de código.ensamblador

Más detalles

Modulo LCD MODULO LCD

Modulo LCD MODULO LCD MODULO LCD Las pantallas de cristal líquido LCD o display LCD (Liquid Cristal Display) consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una, dos, tres o cuatro líneas

Más detalles

1. Introducción a la Arquitectura de Computadoras

1. Introducción a la Arquitectura de Computadoras 1. Introducción a la Arquitectura de Computadoras M. Farias-Elinos Contenido Definiciones Estructura de una computadora Evolución de las computadoras Generaciones de computadoras Evolución de la família

Más detalles

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011 1 ontenido 2 UNIDAD 5 EL LENGUAJE DE ENSAMBLADOR DEL Z80 onjunto de instrucciones Tipos de instrucciones Modos de direccionamiento El ensamblador del Z80 El simulador AVOET Implementación de un sistema

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

INTRODUCCIÓN A LOS MICROPROCESADORES

INTRODUCCIÓN A LOS MICROPROCESADORES INTRODUCCIÓN A LOS MICROPROCESADORES Por Manuel Rico Secades Tecnología Electrónica Universidad de Oviedo BUSCANDO FALLOS EN EL ESQUEMA DE UN MICROPROCESADOR Chipworks Inc Canada El Microprocesador es

Más detalles

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III APUNTE DEL 8155 ELECTRÓNICA DIGITAL III Revisión 1.1 Marzo, 2011 Interfaz a periférico 8155 Descripción general El chip 8155 es un dispositivo introducido por Intel en 1977. Contiene memoria RAM (SRAM)

Más detalles

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas INDICE Prefacio XV Capitulo 1. Álgebra de variables lógicas 1 1.1. Variables y funciones 1 1.2. Variables lógicas 2 1.3. Valores de una variable lógica 2 1.4. Funciones de una variable lógica 3 1.5. Funciones

Más detalles

Tema 1: Arquitectura de ordenadores, hardware y software

Tema 1: Arquitectura de ordenadores, hardware y software Fundamentos de Informática Tema 1: Arquitectura de ordenadores, hardware y software 2010-11 Índice 1. Informática 2. Modelo de von Neumann 3. Sistemas operativos 2 1. Informática INFORMación automática

Más detalles

Análisis general de un Microprocesador

Análisis general de un Microprocesador Análisis general de un Microprocesador Arquitectura del chip Repertorio de instrucciones Sistema mínimo Señales de control Función de cada pin del µp Herramientas de desarrollo Performance. ARQUITECTURA

Más detalles

1. Computadores y programación

1. Computadores y programación 1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Registros de desplazamiento

Registros de desplazamiento Registros de desplazamiento Definición de registro de desplazamiento básico Tipos de registro de desplazamiento Configuraciones específicas Aplicaciones más típicas VHDL Ejercicio propuestos Definición

Más detalles

MANUAL DEL MICROCONTROLADOR 8051

MANUAL DEL MICROCONTROLADOR 8051 MANUAL DEL MICROCONTROLADOR 8051 Dr. Alejandro Vega Agosto-diciembre 1999 INDICE Página INTRODUCCIÓN 3 PRIMERA PARTE. CAPITULO 1, CARACTERÍSTICAS DEL MICROCONTROLADOR 8051 5 1.1CARACTERÍSTICAS DELµC-8051

Más detalles

Tema 5: Memorias. Espacio reservado para notas del alumno

Tema 5: Memorias. Espacio reservado para notas del alumno Tema 5: Memorias S Definiciones S Parámetros característicos S Jerarquía de memoria S Dispositivos de almacenamiento S Clasificación S Fundamentos de las memorias S Memoria caché / Memoria virtual S Memoria

Más detalles

Tema 1: Introducción a Estructura de Computadores. Conceptos básicos y visión histórica

Tema 1: Introducción a Estructura de Computadores. Conceptos básicos y visión histórica Tema 1: Introducción a Estructura de Computadores Conceptos básicos y visión histórica Programa de Teoría 1. Introducción. 2. Lenguaje Máquina. 3. Lenguaje Ensamblador. 4. Ruta de Datos y Unidad de Control.

Más detalles

Clasificación del procesador según el número de referencias a memoria.

Clasificación del procesador según el número de referencias a memoria. Estructura de Computadores Tema 1. El sistema computador Estructura general de un computador. Arquitectura de Von Neumann. Unidades generales: procesador, memoria, entrada/salida, unidad de control. Niveles

Más detalles

MICROPROCESADORES PARTES DE UN MICROPROCESADOR

MICROPROCESADORES PARTES DE UN MICROPROCESADOR PARTES DE UN MICROPROCESADOR Un Microprocesador es una unidad central de proceso de propósito general (CPU ó CENTRAL PROCESSING UNIT) que esta dentro de un solo Circuito Integrado ó Chip. Las partes que

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

Partes Internas y Externas de la Computadora

Partes Internas y Externas de la Computadora Partes Internas y Externas de la Computadora La computadora está compuesta por hardware que se clasifican según donde se encuentran: PARTES EXTERNAS MONITOR: es un dispositivo de salida que, mediante una

Más detalles

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción 0-06-200 Temario Arquitecturas de Computadores Prof. Mauricio Solar 5 Componentes igitales Estructurados Introducción 2 Registros 3 Multiplexores 4 Codificadores y ecodificadores 5 Archivos de Registros

Más detalles

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1

Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1 Universidad Nacional Tecnológica del Cono Sur de Lima Especialidad Ingeniería Mecánica Ingeniería Electrónica Introducción PROGRAMACIÓN DE INGENIERÍA Semana 01-A: Introducción Arquitectura Ing. Jorge A.

Más detalles

Electrónica Digital II

Electrónica Digital II Electrónica Digital II TIPOS DE MEMORIAS MEMORIA DDR MEMORIA DDR2 MEMORIA DDR3 COMPARACIÓN TIEMPOS DE ACCESO TIPOS DE LATENCIAS RAS CAS ACTIVIDAD PRECARGA TIPOS DE CONFIGURACIONES SINGLE CHANNEL DUAL CHANNEL

Más detalles

Comprobar la funcionalidad de un lista determinada de circuitos integrados existentes en el laboratorio de digitales, a través de microcontroladores,

Comprobar la funcionalidad de un lista determinada de circuitos integrados existentes en el laboratorio de digitales, a través de microcontroladores, Comprobar la funcionalidad de un lista determinada de circuitos integrados existentes en el laboratorio de digitales, a través de microcontroladores, una pantalla GLCD para presentación de menús y resultados

Más detalles

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA CONTENIDOS: 1. TIPOS DE DATOS 2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIICADORES COMO LOCALIDADES DE MEMORIA OBJETIO EDUCACIONAL: El alumno conocerá las reglas para cambiar fórmulas matemáticas

Más detalles

AUTOMATIZACIÓN INDUSTRIAL

AUTOMATIZACIÓN INDUSTRIAL Departamento de Ingenieria de Sistemas y Automática AUTOMATIZACIÓN INDUSTRIAL 1 AUTOMATIZACION INDUSTRIAL 2 AUTOMATIZACION INDUSTRIAL 3 AUTOMATAS PROGRAMABLES Surgen de la necesidad de controlar automáticamente

Más detalles

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI PROTOCOLO IP Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Cada dispositivo de una red debe definirse en forma exclusiva. En la capa de red, es necesario identificar los paquetes de la transmisión

Más detalles

Práctica final. Emilia Cruz Fernández Martínez

Práctica final. Emilia Cruz Fernández Martínez Guadalinex Práctica final Curso 2003/2004 Emilia Cruz Fernández Martínez Desarrollo de una unidad didáctica usando software libre ELEMENTOS FUNCIONALES DE UN ORDENADOR Qué es un ordenador? Es un dispositivo

Más detalles

CAPITULO IV FAMILIAS LÓGICAS

CAPITULO IV FAMILIAS LÓGICAS FAMILIAS LÓGICAS CAPITULO IV FAMILIAS LÓGICAS FAMILIAS LÓGICAS Una familia lógica es un grupo de dispositivos digitales que comparten una tecnología común de fabricación y tienen estandarizadas sus características

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

Más detalles

Curso de Mantenimiento y Reparación de computadoras

Curso de Mantenimiento y Reparación de computadoras Curso de Mantenimiento y Reparación de computadoras Máquina electrónica que recibe y procesa datos para convertirlos en información útil. La característica principal que la distingue de otros dispositivos

Más detalles

Diseño Basado en Microcontroladores. Programa Detallado

Diseño Basado en Microcontroladores. Programa Detallado Diseño Basado en Microcontroladores. Programa Detallado Tema 5. Temporizadores e Interrupciones. (4 horas + 8 horas de laboratorio) 5.1.Temporizadores A y B. Modos de funcionamiento. 5.2. Temporizador

Más detalles

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X

Ejercicio * N N X X X X X X X X X X X X X X X X X X X X Se envía a través de una conexión RS232 8N1 de 9600 baudios una trama de datos que debe ser recibida por una PC. La trama tiene el siguiente formato : * N N X X X X X X X X X X X X X X X X X X X X Donde:

Más detalles

Sistemas Electrónicos Digitales

Sistemas Electrónicos Digitales Sistemas Electrónicos Digitales Profesor: Carlos Herrera C. I. Unidad COMPUERTAS LOGICAS Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos Binarios y que funcionan igual que

Más detalles

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION ESTRUCTURA DE COMPUTADORES Pag. 14.1 LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION 1. Introducción Vamos a aplicar las ideas de microprogramación al caso de un minicomputador similar al

Más detalles

Guía rápida para gestionar el puerto paralelo del PC

Guía rápida para gestionar el puerto paralelo del PC Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela

Más detalles

MODOS DE DIRECCIONAMIENTO DEL µc51

MODOS DE DIRECCIONAMIENTO DEL µc51 Los modos de direccionamiento son la manera que tienen los µc para accesar a los distintos recursos con los que cuenta. Para manipular los datos y códigos de operación en cada programa se tienen las siguientes

Más detalles

Práctica 1 Transistor BJT Región de Corte Saturación Aplicaciones

Práctica 1 Transistor BJT Región de Corte Saturación Aplicaciones Práctica 1 Transistor BJT Región de Corte Saturación Aplicaciones Universidad de San Carlos de Guatemala, Facultad de Ingeniería, Escuela de Mecánica Eléctrica, Laboratorio de Electrónica 1, Segundo Semestre

Más detalles

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es INFORMATICA I EJERCICIOS PROPUESTOS 1.1-1 Buscar en el diccionario Qué es INFORMÁTICA?, Qué es COMPUTACIÓN? 1.1-2 Qué es el HARDWARE de una computadora?.... 1.1-3 Qué es el SOFTWARE de una computadora?.

Más detalles

TEMA 11 MEMORIAS. CIRCUITOS LÓGICOS PROGRAMABLES

TEMA 11 MEMORIAS. CIRCUITOS LÓGICOS PROGRAMABLES TEMA 11 MEMORIAS. CIRCUITOS LÓGICOS PROGRAMABLES 1 CLASIFICACIÓN SEGÚN SU TECNOLOGÍA 2 PARAMETROS FUNDAMENTALES DE LAS MEMORIAS Modo de acceso: Aleatorio (RAM, Random Access Memory) Serie Alterabilidad

Más detalles

Controlador de Interrupciones (Versión programable) Manual de Usuario

Controlador de Interrupciones (Versión programable) Manual de Usuario Controlador de Interrupciones (Versión programable) Manual de Usuario Índice de contenido 1. Características...2 2.Descripción general...3 3.Descripción funcional...3 4.Estructura Interna...4 4.1 Bloque

Más detalles

APENDICE B Ensamblador IASM11/Simulador AVSIM11

APENDICE B Ensamblador IASM11/Simulador AVSIM11 APENDICE B Ensamblador IASM11/Simulador AVSIM11 El programa ensamblador IASM11, es una herramienta que permitirá editar y ensamblar programas para el microcontrolador HC11. Este programa corre bajo la

Más detalles

video 00_evolucion_tecnologica_00. video 01_sociedad de la información_1. 1 sesión

video 00_evolucion_tecnologica_00. video 01_sociedad de la información_1. 1 sesión 0. INTRODUCCIÓN - Evolución muy rápida de la mayor parte de los campos de la ciencia y la tecnología. - Vivimos en el mundo de lo extraordinariamente grande: Megaestructuras Estaciones espaciales (Estación

Más detalles

DISPLAY LCD MICROPROCESADORES

DISPLAY LCD MICROPROCESADORES Módulo LCD HD4478 de de Hitachi Módulo LCD HD4478 de de Hitachi E R / W D-D7 D-D7 VDD Vo Vss Controlador Controlador del del LCD LCD HD4478 HD4478 Manejador Manejador Del Del LCD LCD Manejador Manejador

Más detalles

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles