Microprocesador 8085

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 27

1

Investigacin sobre el Microprocesador 8085 de INTEL Qu es el microprocesador? Integracin a gran Escala. Estructura de un Microprocesador. El Microprocesador INTEL 8085. Descripcin fsica del Microprocesador. Lenguaje e Instrucciones del uP.

En muchos textos que tratan el tema de los microprocesadores se ha escrito sobre las caractersticas tcnicas y funcionales de este tipo de dispositivos. No se pretende en la investigacin realizar una exposicin exhaustiva de dichas caractersticas, para lo cual Sera ms oportuno acudir a los manuales del fabricante, sino ms bien llevar a cabo un Estudio paulatino del microprocesador 8085A, y de una serie de dispositivos asociados (Memorias, perifricos, etc.)

CENTRO ESCOLAR INSA BACHILLERATO TECNICO INDUSTRIAL ESPECIALIDAD: ELECTRONICA


Modulo: Programacin de Microprocesadores

Ing. Francisco Andaluz Guzmn I-III-D Informacin e Investigacin del Microprocesador, aplicaciones y funcionamientos. Microprocesador 8085 de INTEL, Funciones, estructuras, programacin, e instrucciones. GRUPO 1
Alumnos: Jorge Edgar Aguirre Gutirrez Jos Neftali Alvarado Rosales Elmer Antonio Avelar Lemus Numero de Lista: 3 5 7

El microprocesador Integracin a gran escala Estructura de un Microprocesador Microprocesador de INTEL 8085 Descripcin Fsica del Microprocesador 8085 de INTEL Descripcin Funcional del Microprocesador 8085 de INTEL Diagrama de Bloques del Microprocesador 8085 de INTEL Instrucciones del Microprocesador 8085 Instrucciones Lgicas y Aritmticas Instrucciones de Control Ejemplos de Programacin Conclusin Recomendaciones Bibliografa

Pg. 6 Pg. 7 Pg. 8 Pg. 11 Pg. 13 Pg. 16 Pg. 17 Pg. 19 Pg. 21 Pg. 22 Pg. 23 Pg. 26 Pg. 27 Pg. 28

EL MICROPROCESADOR:
Se denomina microprocesador a un circuito integrado semiconductor formado por transistores que permiten o cierran el paso, de forma lgica, a una serie de seales elctricas. El microprocesador est compuesto por la unidad de control, la unidad aritmtico-lgica y un grupo de registros. Es caracterstico del microprocesador el poseer un alto grado de integracin, siendo capaz de ejecutar algortmicamente una serie de instrucciones. La diferencia entre un semiconductor de memoria y un microprocesador es su funcionalidad, ya que los microprocesadores son circuitos de puertas lgicas distribuidas irregularmente para poder realizar las diferentes tareas y operaciones de manejo del sistema informtico, mientras que las memorias son circuitos repetitivos de almacenamiento de informacin; por ello, los microprocesadores son ms complicados de desarrollar y construir que los semiconductores de memorias. Como se ha indicado anteriormente, el microprocesador efecta la ejecucin de las instrucciones de forma secuencial, excepto cuando la propia instruccin le ordene la alteracin de la secuencia. El microprocesador va a poder controlar las distintas unidades del sistema informtico que permitirn la comunicacin con el exterior de la computadora y la memoria de sta, donde se almacenarn los datos. - Como Circuito Fsico Programable. Un microprocesador permite sustituir a los viejos subsistemas de componentes fsicos (vlvulas) o de circuitera cableada (mazos de cables que conectan diferentes componentes en equipos electrnicos, industriales, etc.) dentro de sistemas informticos ms complejos. La capacidad de programacin que caracteriza a los microprocesadores permite una mayor potencia y versatilidad de estos subsistemas con respecto a los anteriormente utilizados. En la actualidad se estn utilizando los "viejos" chips 8086 como base para subsistemas de tarjetas grficas. - Como Procesador Central de una Computadora Es el motor de la Unidad Central de Proceso, encargndose de: 1.- Manejar la memoria. 2.- Controlar el flujo de informacin en el sistema informtico. 3-. Realizar las operaciones bsicas sobre los datos.

INTEGRACION A GRAN ESCALA:


Podemos considerar que los primeros utensilios y equipos empleados para efectuar operaciones de clculo fueron los bacos orientales, siendo aproximadamente en el siglo XVII cuando se construyeron las primeras mquinas calculadoras mecnicas. Posteriormente se pas al empleo de elementos electromecnicos, significando esto un gran avance en dicho campo. En 1941 comienzan a construirse computadoras digitales basadas en el sistema binario de numeracin basndose en rels, y en un paso posterior se consigue la primer computadora basada en miles de vlvulas a la que se denomin ENIAC y que ha supuesto un paso decisivo y definitivo en el desarrollo tecnolgico industrial. A partir de la aparicin de los materiales semiconductores (fundamentalmente el silicio) se produce un crecimiento imparable en la industria y fundamentalmente en el sector de la electrnica. Los semiconductores son materiales que no pueden considerarse ni buenos ni malos conductores, presentando unos valores de resistividad comprendidos entre los de los buenos conductores y los de los aislantes. La resistividad de estos elementos es alterada aadindoles otros materiales, denominados impurezas que aumentan la conductividad de los cristales, obteniendo de este modo los semiconductores extrnsecos. Dependiendo del tipo de impurezas aadido, se obtendrn cristales tipo N o cristales tipo P. Cuando se doparon los cristales de forma controlada con impurezas de ambos tipos aparecieron las junturas PN o diodos. Fue posteriormente, al conseguir dos junturas, formando uniones PNP o NPN, cuando aparece el transistor y es en este momento cuando se produce un verdadero desarrollo y gran expansin de la electrnica en general. Con el perfeccionamiento de la tecnologa se consigue colocar o integrar en muy poco espacio, hasta varias decenas de transistores. Estamos ante la aparicin de los primeros circuitos integrados trabajndose a muy baja escala de integracin (SSI). Posteriormente se consigue almacenar en una misma pastilla varios miles de elementos integrados, obteniendo de este modo componentes ms complejos que se enmarcan dentro de la media escala de integracin (MSI). Hacia 1976 con la mejora de la tecnologa se consigue implementar en un solo chip varios miles de componentes, apareciendo en ese momento la alta escala de integracin (LSI). A partir de 1980 se trabaja con la muy alta escala de integracin (VLSI) que permite incorporar una cantidad muy elevada de componentes en un solo circuito integrado.

La LSI provoc la aparicin del primer microprocesador, el 4004 de INTEL. Se trata de un microprocesador de 4 bits que hoy en da est totalmente en desuso. Con posterioridad al 4004, aparecen los microprocesadores 8008 y 8080 de INTEL, se trata ahora de componentes LSI de 8 bits. Este ltimo microprocesador posee mltiples ventajas sobre los anteriores por lo que adquirir mayor importancia. Sin embargo para su correcto funcionamiento necesita de algunos componentes auxiliares como son: un generador de impulsos de reloj, un

controlador de buses del sistema y adems emplea tres tensiones de alimentacin (+12V, +5V, y 5V). La casa INTEL presenta en 1977 el nuevo microprocesador 8085, que posee una arquitectura interna similar a la del 8080, con la diferencia de que ahora se aade en la misma pastilla el generador de impulsos de reloj, el controlador de buses y adems solo se necesita una tensin de alimentacin de +5V. Dispone tambin de cuatro nuevas entradas de interrupcin y dos lneas para entrada/salida de informacin en serie. El bus de direcciones y el bus de datos estn multiplexados y en el juego de instrucciones aparecen algunas novedades (que veremos ms adelante) respecto al juego de instrucciones del 8080. Gracias a todas estas novedades incorporadas, el microprocesador adquiere gran relevancia y potencialidad frente a sus competidores de igual categora. Puede decirse que un microprocesador es un componente que contiene en una sola pastilla los componentes necesarios para desarrollar funciones aritmticas, lgicas y de control. Por tanto es una pequea Unidad Central de Proceso (CPU) en una pastilla.

ESTRUCTURA DE UN MICROPROCESADOR:

En la actualidad los microprocesadores estn entrando en muchos campos de la electrnica tradicional, debido a una serie de ventajas como pueden ser: la necesidad de emplear menos componentes, que lleva aparejado un menor volumen, menor consumo, menos conexiones y mayor fiabilidad; y la posibilidad de programar el sistema que aporta gran facilidad para simplificar diseos y minimizar los tiempos de desarrollo. La programacin proporciona adems la posibilidad de emplear un mismo sistema para la realizacin de tareas muy diversas. En general, los fabricantes han mantenido lneas generales de diseo bastante similares, por tanto la mayora de los microprocesadores tienen la misma arquitectura bsica o estndar. Puede asumirse como tal la representada en la FIG.12A. En esta representacin esquemtica podemos apreciar que el microprocesador posee una serie de bloques internos que se comunican entre s y con el exterior a travs de unos conjuntos de lneas

denominados buses que sirven para transmitir seales y datos entre los distintos componentes. Puede apreciarse con claridad la diferencia entre los buses internos, empleados por el microprocesador para realizar sus operaciones internas y los buses externos, utilizados para comunicarse con el exterior, es decir con componentes que estn situados fuera del propio microprocesador. En general podemos decir que hay tres tipos de buses distintos: Bus de direcciones que se crea en los registros de direccionamiento de 16 bits y se comunica con el exterior mediante un conjunto de 16 lneas (lneas de direcciones) normalmente enumeradas de A0 hasta A15. Por este bus, las direcciones salen siempre hacia el exterior. Bus de datos que se genera en el interior del microprocesador y lo utiliza para intercambiar informacin entre sus distintos bloques internos y para comunicarse con el exterior. Son un conjunto de 8 bits que utilizan 8 lneas de conexin al exterior, normalmente denominadas D0 a D7. Por este bus sale y entra informacin, por tanto se trata de un bus bidireccional. Bus de control compuesto por una serie de lneas, variable en nmero segn el componente de que se trate. Contiene las lneas de sincronizacin de funciones, pudiendo ser unas de salida y otras de entrada al microprocesador. Algunas seales de control pueden ser por ejemplo, las de lectura, escritura, reloj o clock, etc.

El bloque fundamental del microprocesador es el llamado ALU, representa la parte del microprocesador que realiza las operaciones aritmticas y lgicas. Para llevar a cabo este proceso emplean normalmente un registro especial denominado Acumulador donde almacenan el resultado de las operaciones realizadas. Algunos microprocesadores poseen ms de un acumulador.

Para completar las indicaciones necesarias tras la ejecucin de las instrucciones, el microprocesador emplea adems un registro especial de 8 bits denominado Registro de Estado o Registro de Flags que marcarn distintas caractersticas y peculiaridades de las operaciones desarrolladas. Posteriormente veremos con ms detalle este Registro de Flags. En la FIG.12A puede verse tambin un bloque denominado Control que sirve para sincronizar el funcionamiento de todo el sistema. Genera seales de sincronismo para la ALU, memorias y dispositivos de E/S. Las unidades de control generalmente estn constituidas basndose en microprogramacin (programacin interna no accesible al usuario) y se encargan de descifrar y ejecutar las instrucciones del programa que nosotros construyamos. Puede verse adems un bloque compuesto por Registros Internos de 8 bits, se trata en este caso de una serie de registros (variable segn el microprocesador de que se trate) de uso general que emplea la ALU para manipular datos. Estos registros normalmente almacenan palabras de 8 bits y en ocasiones pueden ser utilizados como registros pares (de dos en dos) almacenando palabras o informaciones de 16 bits. Finalmente, decir que en la estructura estndar que se est tratando debe haber tambin un bloque de Registros Internos de 16 bits que tambin son llamados registros de direccionamiento. Estn conectados al bus de direcciones y suele haber dos registros de este tipo que son: El Puntero de Pila, denominado abreviadamente SP, es indispensable durante el desarrollo de programas tanto para trabajar con interrupciones como para el tratamiento de subrutinas. El contenido del SP sealar en todo momento a la cima de la pila. (La pila estar constituida por un bloque de memoria RAM, donde se almacenarn de forma temporal los datos. Hablaremos de ella con posterioridad). El Contador de Programa, denominado abreviadamente PC, es imprescindible en todos los microprocesadores. Contiene la direccin de la siguiente instruccin que deba ejecutarse y su contenido se va incrementando a medida que las instrucciones van siendo ejecutadas. De todas formas el contenido del PC puede alterarse por programa cuando se desee o cuando se necesite como posteriormente se ver, alterando de este modo la ejecucin secuencial de las instrucciones.

10

MICROPROCESADOR 8085 DE INTEL: Tras habernos iniciado a los microprocesadores en el punto anterior de una forma generalista, pasamos ahora a iniciar el estudio del microprocesador 8085A. La representacin esquemtica de sus seales o lneas de conexin exterior, pueden apreciarse en la FIG.13A, indicndose en dicha figura el sentido de accin de todas las seales que vendr marcado por el sentido de las flechas que las representan. Por ejemplo podemos ver que la seal ALE es generada por el microprocesador y sale hacia el exterior; del mismo modo la seal SID ser una seal que procedente del exterior entrar en el microprocesador para ser tratada.

Es importante detenerse unos instantes en la observacin de esta figura y estudiar superficialmente todas las lneas que posee. Debe decirse que las seales marcadas con letra en negrita son activas con nivel lgico 0, por ejemplo la seal RD (lectura). Como caractersticas ms importantes en el 8085 pueden destacarse: Se presenta en encapsulado dual in line de 40 patillas.

El bus de datos y la parte baja del bus de direcciones estn multiplexados. En total posee un bus de direcciones de 16 bits. Direccionamiento de E/S para 256 elementos o puertos. Un acumulador de 8 bits. Seis registros bsicos de 8 bits cada uno de uso general. Estos registros pueden usarse como registros pares para el tratamiento de informacin de 16 bits. Dos registros de direcciones de 16 bits (SP y PC). Un bloque de cinco seales de interrupcin distintas con diferentes rdenes de prioridad.

11

Dos seales que permiten la transferencia de informacin en serie (SID y SOD). Tensin de alimentacin nica de +5V. Buffers para la salida y entrada de informacin por los buses de direcciones y datos. Generador de impulsos de reloj incorporado. En los manuales o folletos proporcionados por los fabricantes se especifican con mucho ms detalle y minuciosidad, las caractersticas y propiedades del microprocesador, incluyendo adems los diagramas de tiempo correspondientes a la ejecucin de las instrucciones en funcin de la frecuencia del cuarzo colocado en las lneas X1 y X2.

12

DESCRIPCION FISICA DEL MICROPROCESADOR 8085: Como se ha mencionado anteriormente, este microprocesador se presenta en un encapsulado de 40 patillas cuya distribucin puede verse en la FIG.14A. A continuacin se da una descripcin de la funcin de cada una de las patillas: Patillas 1 y 2 (X1 y X2): Permiten la generacin de las seales de reloj, mediante la utilizacin de un cristal de cuarzo, segn se ver posteriormente. Patilla 3 (RESET OUT): Seal de salida. Cuando en ella tenemos un 1, quiere decir que el microprocesador queda reinicializado. Esta seal es generada por el propio microprocesador. Patilla 4 (SOD): Salida serie. Se activa mediante la instruccin SIM. Patilla 5 (SID): Entrada serie. El dato queda cargado en el bit 7 del Acumulador cuando se ejecuta la instruccin RIM.

Patilla 6 (TRAP): Interrupcin. Cuando se activa esta patilla bien por flanco o por nivel lgico 1, el microprocesador finaliza la instruccin que estaba ejecutando y salta a una subrutina enganchando en la direccin de memoria 0024H. Al hacer este salto, lleva el contenido del Contador de Programa a la pila, al objeto de que cuando termine la subrutina, mediante una instruccin RET, vuelva a tomar el curso normal de su trabajo al recargar el Contador de Programa con el contenido de la pila. Esta es la interrupcin de ms alta prioridad.

Patilla 7 (RST 7.5): Interrupcin. Es enmascarable por programa. Para conseguir esto, es necesario que se haya ejecutado la instruccin EI con posterioridad a DI y a continuacin enmascararla (o no), colocando un 0 en el bit adecuado mediante la instruccin SIM. Esta interrupcin se activa por flanco y nos permite enganchar en la direccin 003CH.

13

Patilla 8 (RST 6.5): Se activa por nivel 1 lgico, que debe mantenerse hasta que la peticin de interrupcin sea atendida. Es enmascarable por programa (Idem a la anterior). Permite enganchar en la direccin 0034H. Patilla 9 (RST 5.5): Se activa por nivel 1 lgico, que debe mantenerse hasta que la peticin de interrupcin sea atendida. Es enmascarable por programa (Idem a la anterior). Permite enganchar en la direccin 002CH. Patilla 10 (INTR): Interrupcin. Cuando en esta patilla introducimos un 1 lgico, el contador de programa no se incrementa y el 8085 busca una instruccin que entra a la CPU por el bus de datos mediante hardware externo y activa INTA que es la seal de reconocimiento. Se puede entonces presentar el cdigo de operacin de una instruccin RST o CALL para realizar el subprograma de tratamiento de la interrupcin. La interrupcin queda autorizada o prohibida por programa (EI o DI). Queda prohibida a continuacin de un RESET o inmediatamente despus de una interrupcin. Forma un segundo grupo de interrupciones al emplear las instrucciones RST 1,2,3,4,5,6 y 7. INTA es la seal de reconocimiento. Las instrucciones RESTART pueden producir interrupciones por software, pero al activar esta patilla INTR del 8085A, si se introduce por el bus de datos el cdigo de una instruccin RST, la interrupcin se produce por hardware. Patilla 11 (INTA): Reemplaza a RD en una operacin de lectura de instruccin que sea una interrupcin. Patillas 12 a 19 (AD0 a AD7): Conforman el bus de datos/direcciones multiplexado durante la ejecucin de una instruccin. Transporta desde el principio la parte BAJA del bus de direcciones para a continuacin transportar los 8 bits de datos. Este bus est en estado de ALTA IMPEDANCIA durante un HOLD o durante un HLT. Es un bus tri-estado. Patilla 20 (GND): Masa o tensin de referencia. Patillas 21 a 28 (A8 a A15): Transporta la parte ALTA del bus de direcciones. Est en estado de ALTA IMPEDANCIA con un HOLD o un HLT. Es un bus tri-estado. Patilla 29 (S0): Es una salida que codifica el estado del bus de datos durante el curso del ciclo de mquina que est en ejecucin (junto con S1). Patilla 30 (ALE): Libera un impulso cada vez que el bus AD0-AD7 presenta la parte baja de una direccin. Se utiliza para diferenciar entre la parte baja de la direccin y el dato que se presentar a continuacin. Patilla 31 (WR): Indica que el dato presente en el bus de datos debe quedar escrito en la memoria o en la E/S direccionada. Nivel bajo activo. Patilla 32 (RD): Indica que el dato presente en el bus de datos debe ser ledo de la memoria o de una E/S direccionada. Nivel bajo activo. Patilla 33 (S1): Salida que codifica el estado del bus de datos junto con S0. Patilla 34 (IO/M): Si es un 1 indica que el microprocesador selecciona una E/S en el caso de una instruccin IN u OUT. Si es 0 selecciona la memoria.

14

Patilla 35 (READY): Es una entrada que indica que la memoria o E/S seleccionada por un ciclo de escritura o lectura est dispuesta a recibir o proveer el dato. Si es 0 el 8085 espera a su puesta a 1 antes de seguir su ciclo de lectura o escritura. Patilla 36 (RESET IN): Si es activada con un 0, se reinicializa el contador de programa a 0000H, as como la autorizacin de interrupcin. Patilla 37 (CLK OUT): Seal de salida de reloj del 8085. Tambin llamada CLK. Patilla 38 (HLDA): Si es un 1 indica que el microprocesador responde a la demanda de espera (HOLD) y que el bus y lneas de control estn en estado de alta impedancia. Patilla 39 (HOLD): Indica que algn otro usuario est solicitando el acceso el bus de direcciones y al bus de datos. El microprocesador termina la ejecucin del ciclo en curso, despus posiciona en estado de alta impedancia al bus AD0-AD15 y las lneas de control RD, WR e IO/M, sealando este paso sobre la lnea HLDA. Patilla 40 (Vcc): Tensin de alimentacin de +5V.

15

DESCRIPCION FUNCIONAL DEL MICROPROCESADOR 8085 DE INTEL: Del mismo modo que hasta ahora hemos descrito con detalle todos los terminales del microprocesador, lo cual nos permitir abordar en cierta medida el diseo de un sistema electrnico, ahora llevaremos a cabo un estudio bsico del funcionamiento interno del microprocesador, que nos permitir posteriormente iniciar trabajos de programacin. Para realizar esta tarea nos apoyaremos en el diagrama de bloques representado en la FIG.15A, en la que podemos apreciar los siguientes elementos caractersticos: El conjunto decodificador/secuenciador que lleva incluido el generador de reloj y el sistema controlador. El conjunto unidad aritmtica/lgica y sus registros asociados: acumulador de 8 bits, registro temporal y registro de los indicadores o sealizadores (flags). El conjunto de los registros de trabajo (B, C, D, E, H y L) de 8 bits, el Contador de Programa (PC)y Puntero de Pila (SP), ambos de 16 bits. El control de las interrupciones que comanda un grupo de 5 seales de interrupcin y genera una seal de salida que nos marca una interrupcin aceptada. El control de las entradas / salidas serie. Los buffers que generan los buses de direcciones y datos. Todos y cada uno de estos bloques estn controlados por la microprogramacin interna que interpreta y ejecuta las instrucciones recibidas del programa que se est ejecutando. Y de acuerdo a esas directrices actuar sobre los datos e informaciones y los mover a travs de registros y bloques para obtener el resultado deseado. Debe decirse que estos procesos de trabajo interno del microprocesador no son accesibles al usuario, es decir, el programador puede indicar la instruccin a ejecutar, pero no puede decirle al microprocesador cmo ha de ejecutarla.

16

DIAGRAMA DE BLOQUES DEL 8085 DE INTEL:

17

Por tanto desde el punto de vista de la persona que deba realizar los programas, es fundamental conocer que el microprocesador dispone de: Seis registros (B,C,D,E,H y L) que pueden ser usados para almacenar datos temporalmente de 8 bits, o bien pueden emplearse por pares (BC,DE y HL) para retener informaciones de hasta 16 bits. El Puntero de Pila o Stack Pointer (SP) que es un registro de 16 bits y se usa para direccionar por programa la parte de la pila en la que se debe guardar una determinada direccin o en la que se debe salvar un determinado dato. Normalmente debe apuntar a la cima de la pila. El Contador de Programa o Program Counter (PC). Al poner en funcionamiento el sistema arranca de la posicin inicial 0000H y se va incrementando secuencialmente a la velocidad marcada por el cristal de cuarzo del sistema. La secuencia del contador de programa puede ser alterada mediante determinadas instrucciones del programa. El Acumulador, que es un registro de 8 bits, con el que el microprocesador realiza las operaciones lgicas, aritmticas, etc. segn el desarrollo del programa. Registro de Estados (FLAGS), tiene 8 bits y nos indica en cada momento cual es el estado del acumulador despus de haber realizado la ltima operacin. El formato de este registro es como sigue:

- CARRY.- En este bit del registro de estados, aparecer un 1 lgico cuando la ltima operacin realizada con el acumulador, desborde el contenido del mismo. - PARITY.- En este bit aparecer un 1 lgico cuando el nmero de "unos" que hay en el acumulador sea par. Si es impar aparecer un 0 lgico. - AUX CARRY.- Aqu aparece un 1 lgico cuando hay acarreo en el cuarto bit del acumulador. Este bit se usa generalmente para ejecutar instrucciones de "ajuste decimal". - ZERO.- En este bit aparece un 1 lgico cuando el contenido del acumulador es 0000 0000. En caso contrario aparece un 0 lgico. - SIGN.- Este es el bit del signo que nos indica, cundo el dato que hay en el acumulador es un nmero positivo o negativo. Registro de mscara de interrupciones (I). Tiene dos aspectos diferentes segn sea ledo (mediante una instruccin RIM) o escrito (mediante una instruccin SIM).

18

Cuando procedemos a una lectura del registro de mscara de interrupciones, mediante la instruccin RIM, se obtiene el siguiente formato SID I7.5 I6.5 I5.5 IE M7.5 M6.5 M5.5 Siendo el bit SID el dato de entrada serie al microprocesador, los bits I7.5, I6.5 e I5.5 nos indican las interrupciones pendientes de servicio, el bit IE es el flag de interrupciones habilitadas y finalmente los bits M7.5, M6.5 y M5.5 nos permiten poner los enmascaramientos de las interrupciones. (Ver instruccin RIM del 8085). Cuando se procede a escribir en el registro de mscara de interrupciones, mediante la instruccin SIM, el formato a considerar es ahora SOD SOE X R7.5 MSE M7.5 M6.5 M5.5 Siendo en este caso el bit SOD el dato de salida, el bit SOE la autorizacin de la salida serie, el bit R7.5 nos da la posibilidad de realizar un reset en la interrupcin 7.5, el bit MSE autoriza el enmascaramiento de las interrupciones y finalmente los bits M7.5, M6.5 y M5.5 ponen las mscaras de cada interrupcin respectivamente. (Ver instruccin SIM del 8085). Dos Bloques Buffers que genera el microprocesador, en los que puede apreciarse cmo la parte alta del bus de direcciones se constituye de forma independiente, mientras que la parte baja es compartida con el bus de datos. As pues es necesario un multiplexado adecuado, mediante el cual los perifricos asociados sepan cundo se trata de la parte baja de una direccin o de un dato. La seal que identifica este proceso de multiplexado es ALE. Un bloque que genera el bus de control del sistema. Un bloque que permite cinco tipos diferentes de interrupciones. El conjunto de control de Entrada/Salida serie.

INSTRUCCIONES DEL MICROPROCESADOR 8085: Bsicamente se pueden tener los siguientes tipos de instrucciones: - MOV r1, r2: Mueve el contenido del registro r2 a r1 (ej.: MOV A, B, MOV L, C). - MOV r, M; MOV M, r: Mueve el contenido de un registro a la posicin de memoria M definida por la pareja de registros HL, y viceversa (ej.: MOV C, M, MOV M, A). - MVI r, byte: Carga un registro con un valor numrico de un byte de longitud (ej.: MVI D, 03H). - LXI rp, dbyte: Carga una pareja de registros con un valor de 2 bytes de longitud (ej.: LXI H, 0010H, LXI B, 25AFH). - LDA addr: Carga al acumulador con el contenido de la direccin indicada (ej.: LDA FF00H). - STA addr: Guarda el contenido del acumulador en la direccin indicada (ej.: STA FF00H).

19

20

Instrucciones lgicas y aritmticas: La mayora de instrucciones de este tipo afectan las banderas del registro de estado (Z, S, AC, P, CY). El resultado de toda operacin que incluya al acumulador, es almacenado en el mismo acumulador. Bsicamente se pueden tener los siguientes tipos de instrucciones: - ADD r: Suma el contenido del registro especificado con el contenido del acumulador (ej.: ADD C, ADD L). - ADD M: Suma el contenido almacenado en la direccin de memoria M especificada por los registros HL, con el contenido del acumulador (ej.: ADD M). - ADI byte: Suma al acumulador el valor numrico especificado (ej.: ADI 05H). - ADC r; ADC M; ACI byte: Realizan lo mismo que ADD r, ADD M y ADI byte, excepto que si se produce un acarreo, este tambin es sumado. - SUB r; SUB M; SUI byte; SBB r; SBB M; SBI byte: Restan un valor del acumulador (ej.: SUB B, SUB M, SUI 05H). - INR r: Incrementa en una unidad al registros especificado (ej.: INR B). - INR M: Incrementa en una unidad al contenido de la direccin de memoria M (ej.: INR M). - DCR r; DCR M: Realizan las operaciones inversas a INR r y INR M - ANA r: Realiza la operacin lgica AND entre el acumulador y el registro r (ej.: ANA C, ANA L). - ANA M: Realiza la operacin lgica AND entre el acumulador y el contenido de la direccin de memoria M (ej.: ANA M). - ANI byte: Realiza la operacin lgica AND entre el acumulador y el valor numrico especificado (ej.: ANI 05H). - ORA r; ORA M; ORI byte: Realizan la operacin lgica OR. - XRA r; XRA M; XRI byte: Realizan la operacin lgica XOR. - CMP r; CMP M; CPI byte: Realizan una comparacin con el acumulador. Si son iguales, la bandera Z se pone en 1 y si el acumulador es el menor, CY se pone en 1. - RLC: Rota el acumulador una posicin a la izquierda (en el sentido del bit 0 al bit 7) - RRC: Rota el acumulador una posicin a la derecha (en el sentido del bit 7 al bit 0) - CMA: Complementa el valor del acumulador, es decir, realiza una operacin lgica NOT con cada bit del acumulador.

21

Instrucciones de control de bifurcacin o cambio de secuencia del programa: Estas instrucciones alteran el contenido del contador de Programa y pueden o no depender de una condicin especfica. Bsicamente se pueden tener los siguientes tipos de instrucciones: - JMP addr: Carga el contador de programa con la direccin especificada, es decir, salta a la direccin especificada para continuar la ejecucin del programa desde esa direccin (ej.: JMP 0010H, JMP SIGUIENTE). - JNZ addr: Salta si la bandera Z es cero. - JZ addr: Salta si la bandera Z es uno. - JNC addr: Salta si la bandera CY es cero. - JC addr: Salta si la bandera CY es uno. - JP addr: Salta si la bandera S es cero. - JM addr: Salta si la bandera S es uno. - CALL addr: Opera de la misma manera que JMP, sin embargo en este caso guarda la direccin actual ms uno, en la pila. Debido a esto su uso es exclusivo para llamadas subrutinas (ej.: CALL 1010H, CALL LUCES) - CNZ addr; CZ addr; CNC addr; CC addr; CP addr; CM addr: Operan como CALL pero basadas en una condicin especfica. - RET: Trabaja en conjunto con CALL, su funcin es recuperar la ltima direccin guardada en la pila, es decir, restablece el contador de programa. - RNZ; RZ; RNC; RC; RP; RM: Operan como RET pero basadas en una condicin especfica.

Instrucciones de control, entrada / salida y de manejo de pila: Bsicamente se pueden tener los siguientes tipos de instrucciones: - PUSH rp: Mueve a la pila el par de registros especificado, se utiliza para respaldar los registros en el caso de que vayan a ser utilizados por una subrutina (ej.: PUSH B, PUSH H). - PUSH PSW: A diferencia de PUSH rp, en este caso respalda al acumulador junto al registro de estado. - POP rp; POP PSW: Realizan la funcin contraria a PUSH, es decir, recuperan los valores almacenados en la pila.

22

- IN port: Carga en el acumulador el dato proveniente de un perifrico especfico cuya direccin es PORT (ej.: IN 00H, IN PORTA). - OUT port: Enva el dato almacenado en el acumulador a un perifrico especfico cuya direccin es PORT (ej.: OUT 01H, IN PORTB). - HLT: Detiene al contador de programa, por lo que el procesador se dice esta congelado, dicho estado se mantiene hasta que se le d un reset al procesador. - NOP: No realiza ninguna operacin, por lo que se dice que es un cdigo muerto. Se utiliza para perder tiempo de ejecucin del procesador, de esta manera se retarda el funcionamiento del procesador sin alterar ningn registro. Es comn encontrarlo en demoras de tiempo.

EJEMPLOS DE PROGRAMACION: Para finalizar, se presentan algunos programas bsicos que demuestran la aplicacin de varias de las instrucciones antes analizadas as como tambin detalles de la programacin en lenguaje ensamblador. Ejemplo 1:
;El siguiente programa realiza la siguiente operacin: SUM = NUM1 + NUM2 ;si el resultado es igual a un nmero LIM, ;realiza la siguiente operacin RES = SUM - NUM3. ;************************************************************************ ;************************************************************************ ;Define constantes utilizadas por el programa NUM1 .EQU 05H ;Nmero 1 NUM2 .EQU 02H ;Nmero 2 NUM3 .EQU 03H ;Nmero 3 LIM .EQU 07H ;Lmite de Comparacin ;************************************************************************ ;************************************************************************ ;El siguiente cdigo representa al programa principal .ORG 0000H ;Inicia en la posicin de memoria 0000H MVI A, NUM1 ;Carga nmero 1 en el Registro A MVI B, NUM2 ;Carga nmero 2 en el Registro B MVI C, NUM3 ;Carga nmero 3 en el Registro c MVI D, LIM ;Carga lmite en el Registro D ADD B ;Realiza NUM1 + NUM2 CMP D ;Compara el resultado de la suma JZ RESTAR ;Si es igual al lmite entonces salta a RESTAR HLT ;Caso contrario se detiene RESTAR: SUB C ;Realiza SUM - NUM3 HLT ;Detiene al procesador ;************************************************************************ ;************************************************************************ .END

23

Ejemplo 2:
;El siguiente programa llama a dos rutinas de tiempo de un lazo y de doble lazo, ;mientras rota el dato en el registro A. ;El tiempo que demore la rutina depende del cristal utilizado. ;Para un cristal de 2MHz, la primera rutina se demora 1 mseg y la segunda 3mseg ;*************************************************************************************** ;*************************************************************************************** ;Define constantes utilizadas por el programa TIEMPO1 .EQU 03H ;Nmero de veces que se repie el lazo 1 TIEMPO2 .EQU 02H ;Nmero de veces que se repie el lazo 2 ;*************************************************************************************** ;*************************************************************************************** ;El siguiente cdigo representa al programa principal .ORG 0000H ;Inicia en la posicin de memoria 0000H MVI A, 01H ;Carga registro de prueba REPITE: CALL DEMORA1 ;Llama rutina 1 RLC ;Rota el acumulador 1 bit a la izquierda CALL DEMORA2 ;Llama rutina 2 RLC ;Rota el acumulador 1 bit a la izquierda JMP REPITE ;Salta a etiqueta REPITE ;*************************************************************************************** ;*************************************************************************************** ;El siguiente cdigo representa una demora de tiempo de un lazo .ORG 0040H ;Inicia en la posicin de memoria 0040H DEMORA1: MVI B, TIEMPO1 ;Carga contador del lazo 1 LAZO1: DCR B ;Decrementa por uno le registro B NOP ;No hace nada JNZ LAZO1 ;Salta si el resultado no es cero RET ;Regresa al programa principal ;*************************************************************************************** ;*************************************************************************************** ;El siguiente cdigo representa una demora de tiempo de dos lazos .ORG 0060H ;Inicia en la posicin de memoria 0060H DEMORA2: MVI B, TIEMPO1 ;Carga contador del lazo 1 LAZO3: MVI C, TIEMPO2 ;Carga contador del lazo 2 LAZO2: DCR C ;Decrementa por uno le registro C NOP ;No hace nada JNZ LAZO2 ;Salta si el resultado no es cero DCR B ;Decrementa por uno le registro B JNZ LAZO3 ;Salta si el resultado no es cero RET ;Regresa al programa principal ;*************************************************************************************** ;*************************************************************************************** .END

24

Ejemplo 3:
;El siguiente programa realiza un sencillo juego de luces utilizando al 8155 ;para tal motivo configura el puerto A como salida de datos. ;*************************************************************************************** ;*************************************************************************************** ;Define constantes utilizadas por el programa REG_CONF .EQU 00H ;Direccin del registro de configuracin del 8155 PORTA .EQU 01H ;Direccin del PORTA del 8155 TIEMPO .EQU 01H ;Establece el tiempo de la demora ;*************************************************************************************** ;*************************************************************************************** ;El siguiente cdigo representa al programa principal .ORG 0000H ;Inicia en la posicin de memoria 0000H MVI A, 0FH ;Configura PORTA como salidas OUT REG_CONF MVI A, 01H ;Enva 00000001b al puerto A ROTAR: OUT PORTA CALL DEMORA ;Espera cierto tiempo RLC ;Rota el acumulador 1 bit a la izquierda JMP ROTAR ;Salta a la etiqueta ROTAR ;*************************************************************************************** ;*************************************************************************************** ;El siguiente cdigo representa una demora de tiempo la cual nos permite observar ms ;detenidamente la secuencia de luces. .ORG 0040H ;Inicia en la posicin de memoria 0040H DEMORA: MVI B, TIEMPO ;Carga contador del lazo 1 LAZO2: MVI C, 0FFH ;Carga contador del lazo 2 LAZO1: DCR C ;Decrementa por uno le registro C JNZ LAZO1 ;Salta si el resultado no es cero DCR B ;Decrementa por uno le registro B JNZ LAZO2 ;Salta si el resultado no es cero RET ;Regresa al programa principal ;*************************************************************************************** ;********************************* ****************************************************** .END

25

CONCLUSION:

En el desarrollo tecnolgico, en el crecimiento de la evolucin necesaria de la automatizacin en la vida cotidiana, nos encontramos con estos pequeos fsicamente, pero muy grandes en funcionalidad y gigantescos en manejo de informacin, los Microprocesadores, son una de las ms grandes invenciones creadas por el hombre, en esa miniaturizacin siempre de lo accesible para el hombre, nace como resultado este dispositivo con una gran capacidad llamada en si tambin como cerebro o el mas cercano al cerebro humano, manejando lgica y aritmtica podemos controlar y desarrollar muchas y sin fin de cosas, todo gracias a este pequeo artefacto. Y en la investigacin especficamente del Microprocesador 8085, se denota el manejo complejo en instrucciones pero sin duda alguna muy sencillo en comprensin, todas su funcionalidad dada y creada para el desarrollo y la rapidez de procesamiento de informacin, todo esto ha venido a mejorar en mucho la vida del hombre en la faz del tierra, y sin duda alguna que seguir siendo una innovacin completa para el mismo hombre.

26

RECOMENDACIONES:

Se recomienda adentrarse en la lectura y anlisis del funcionamiento de los distintos Microprocesadores existentes, para que segn el conocimiento adquirido y el anlisis el programador o electrnico constate las miles de aplicaciones en la cual puede o estn sujetados los Microprocesadores.

Cada Microcontrolador tiene sus referencias gracias al creador o empresa realizadora de este dispositivo, se recomienda indagar e investigar acerca de algn microprocesador antes de su adquisicin.

Para mejorar y siempre obtener respuestas, antes de la creacin de un proyecto o programacin, lo favorable es simularlo mediante software, para corregir posibles errores no visibles.

En el paso de programacin o creacin de las instrucciones, se debe tener en cuenta que de acuerdo al lenguaje procedido (Assembler, C, Basic, Pascaletc) as ser el resultado obtenido, para dar el mayor rendimiento del Microprocesador se recomienda siempre .asm ya que este interacta directamente con el Microprocesador obteniendo mayor eficiencia y velocidad.

27

BIBLIOGRAFIA:

Revista:

MICROPROCESADORES CURSO PRACTICO REVISTA N 7 2010

Pginas WEB:

http://www.alpertron.com.ar/8085.HTM http://www.ehowenespanol.com/informacion-microprocesador-intel-8085-sobre_138668/ http://proton.ucting.udg.mx/temas/microprocesadores/mcs/caracteristicas_generales_de_808.htm

También podría gustarte