Sie sind auf Seite 1von 18

CENTRO ESCOLAR INSA BACHILLERATO TECNICO INDUSTRIAL ESPECIALIDAD: ELECTRONICA

Mdulo: 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.
Alumnos: Jorge Edgar Aguirre Gutirrez Jos Neftali Alvarado Rosales Elmer Antonio Avelar Lemus Numero de Lista: 3 5 7

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.

- 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.

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.

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 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.

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.

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.

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. 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.

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 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. T ransporta 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 triestado. 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 ej ecucin (junto con S1).

Patilla 6 (TRAP): Interrupcin. Cuando se activa esta patilla bien por flanco o por nivel lgico 1, el microprocesador fina liza 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.

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 36 (RESET IN): Si es activada con un 0, se reinicializa el contador de programa a 0000H, as como la autorizacin d e 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 mic roprocesador 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.

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. Niv el 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 e s 0 selecciona la memoria. Patilla 35 (READY): Es una entrada que indica que la memoria o E/S seleccionada por un ciclo de escritura o lectura est di spuesta 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.

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

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).

- 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.

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

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

Das könnte Ihnen auch gefallen