microprocesador 8085

18
CENTRO ESCOLAR INSA BACHILLERATO TECNICO INDUSTRIAL ESPECIALIDAD: ELECTRONICA Módulo: Programación de Microprocesadores Ing. Francisco Andaluz Guzmán I-III-D Información e Investigación del Microprocesador, aplicaciones y funcionamientos. Microprocesador 8085 de INTEL, Funciones, estructuras, programación, e instrucciones. Alumnos: Numero de Lista: Jorge Edgar Aguirre Gutiérrez 3 José Neftali Alvarado Rosales 5 Elmer Antonio Avelar Lemus 7

Upload: jiitow-awii-rre

Post on 11-Dec-2014

77 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microprocesador 8085

CENTRO ESCOLAR INSABACHILLERATO TECNICO INDUSTRIAL

ESPECIALIDAD: ELECTRONICA

Módulo: Programación de Microprocesadores

Ing. Francisco Andaluz Guzmán

I-III-D

Información e Investigación del Microprocesador, aplicaciones y funcionamientos.

Microprocesador 8085 de INTEL, Funciones, estructuras, programación, e instrucciones.

Alumnos: Numero de Lista:Jorge Edgar Aguirre Gutiérrez 3José Neftali Alvarado Rosales 5Elmer Antonio Avelar Lemus 7

Page 2: Microprocesador 8085

Microprocesadores Investigacion estructural,

funcional Y aplicada.

Microprocesador 8085Investigación sobre el Microprocesador 8085 de INTEL

¿Qué es el microprocesador?

Integración a gran Escala.

Estructura de un Microprocesador.

El Microprocesador INTEL 8085.

Descripción física del Microprocesador.

Lenguaje e Instrucciones del uP.

 

 

 

Page 3: Microprocesador 8085

EL MICROPROCESADOR

Se denomina microprocesador a un circuito integrado semiconductor formado por transistores que permiten o cierran el paso, de forma lógica, a una serie de señales eléctricas. El microprocesador está compuesto por la unidad de control, la unidad aritmético-lógica y un grupo de registros. Es característico del microprocesador el poseer un alto grado de integración, siendo capaz de ejecutar algorítmicamente 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 lógicas distribuidas irregularmente para poder realizar las diferentes tareas y operaciones de manejo del sistema informático, mientras que las memorias son circuitos repetitivos de almacenamiento de información; por ello, los microprocesadores son más complicados de desarrollar y construir que los semiconductores de memorias.

- Como Procesador Central de una Computadora Es el motor de la Unidad Central de Proceso, encargándose de:

1.- Manejar la memoria.2.- Controlar el flujo de información en el sistema informático.3-. Realizar las operaciones básicas sobre los

datos.

Page 4: Microprocesador 8085

INTEGRACION A GRAN ESCALA• Con el perfeccionamiento de la tecnología se

consigue colocar o integrar en muy poco espacio, hasta varias decenas de transistores. Estamos ante la aparición de los primeros circuitos integrados trabajándose a muy baja escala de integración (SSI).

• Posteriormente se consigue almacenar en una misma pastilla varios miles de elementos integrados, obteniendo de este modo componentes más complejos que se enmarcan dentro de la media escala de integración (MSI). Hacia 1976 con la mejora de la tecnología se consigue implementar en un solo chip varios miles de componentes, apareciendo en ese momento la alta escala de integración (LSI). A partir de 1980 se trabaja con la muy alta escala de integración (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 añade en la misma pastilla el generador de impulsos de reloj, el controlador de buses y además solo se necesita una tensión de alimentación de +5V.

Page 5: Microprocesador 8085

ESTRUCTURA DE UN MICROPROCESADOR

En la actualidad los microprocesadores están entrando en muchos campos de la electrónica 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 diseños y minimizar los tiempos de desarrollo. La programación proporciona además la posibilidad de emplear un mismo sistema para la realización de tareas muy diversas.

Page 6: Microprocesador 8085

Microprocesador 8085

La representación esquemática de sus señales o líneas de conexión exterior, pueden apreciarse en la FIG.13A, indicándose en dicha figura el sentido de acción de todas las señales que vendrá marcado por el sentido de las flechas que las representan. Por ejemplo podemos ver que la señal ALE es generada por el microprocesador y sale hacia el exterior; del mismo modo la señal SID será una señal que procedente del exterior entrará en el microprocesador para ser tratada.

Page 7: Microprocesador 8085

CARACTERISTICAS DEL 8085Como características más 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 están 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 básicos de 8 bits cada uno de uso general. Estos registros pueden usarse como registros pares para el tratamiento de información de 16 bits.

• Dos registros de direcciones de 16 bits (SP y PC).

• Un bloque de cinco señales de interrupción distintas con diferentes órdenes de prioridad.

• Dos señales que permiten la transferencia de información en serie (SID y SOD).

• Tensión de alimentación única de +5V.

• Buffers para la salida y entrada de información 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 más detalle y minuciosidad, las características y propiedades del microprocesador, incluyendo además los diagramas de tiempo correspondientes a la ejecución de las instrucciones en función de la frecuencia del cuarzo colocado en las líneas X1 y X2.

Page 8: Microprocesador 8085

Como se ha mencionado anteriormente, este microprocesador se presenta en un encapsulado de 40 patillas cuya distribución puede verse en la FIG.14A. A continuación se da una descripción de la función de cada una de las patillas: · Patillas 1 y 2 (X1 y X2): Permiten la generación de las señales de reloj, mediante la utilización de un cristal de cuarzo, según se verá posteriormente. · Patilla 3 (RESET OUT): Señal de salida. Cuando en ella tenemos un 1, quiere decir que el microprocesador queda reinicializado. Esta señal es generada por el propio microprocesador. · Patilla 4 (SOD): Salida serie. Se activa mediante la instrucción SIM. · Patilla 5 (SID): Entrada serie. El dato queda cargado en el bit 7 del Acumulador cuando se ejecuta la instrucción RIM.

DESCRIPCION FISICA DEL MICROPROCESADOR 8085:

Page 9: Microprocesador 8085

• Patilla 11 (INTA): Reemplaza a RD en una operación de lectura de instrucción que sea una interrupción.

• Patillas 12 a 19 (AD0 a AD7): Conforman el bus de datos/direcciones multiplexado durante la ejecución de una instrucción. Transporta desde el principio la parte BAJA del bus de direcciones para a continuación 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 tensión 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 máquina que está en ejecución (junto con S1).

Page 10: Microprocesador 8085

• Patilla 6 (TRAP): Interrupción. Cuando se activa esta patilla bien por flanco o por nivel lógico 1, el microprocesador finaliza la instrucción que estaba ejecutando y salta a una subrutina enganchando en la dirección 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 instrucción 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 interrupción de más alta prioridad.

· Patilla 7 (RST 7.5): Interrupción. Es enmascarable por programa. Para conseguir esto, es necesario que se haya ejecutado la instrucción EI con posterioridad a DI y a continuación enmascararla (o no), colocando un 0 en el bit adecuado mediante la instrucción SIM. Esta interrupción se activa por flanco y nos permite enganchar en la dirección 003CH. 

· Patilla 8 (RST 6.5): Se activa por nivel 1 lógico, que debe mantenerse hasta que la petición de interrupción sea atendida. Es enmascarable por programa (Idem a la anterior). Permite enganchar en la dirección 0034H. · Patilla 9 (RST 5.5): Se activa por nivel 1 lógico, que debe mantenerse hasta que la petición de interrupción sea atendida. Es enmascarable por programa (Idem a la anterior). Permite enganchar en la dirección 002CH. · Patilla 10 (INTR): Interrupción. Cuando en esta patilla introducimos un 1 lógico, el contador de programa no se incrementa y el 8085 busca una instrucción que entra a la CPU por el bus de datos mediante hardware externo y activa INTA que es la señal de reconocimiento. Se puede entonces presentar el código de operación de una instrucción RST o CALL para realizar el subprograma de tratamiento de la interrupción. La interrupción queda autorizada o prohibida por programa (EI o DI).Queda prohibida a continuación de un RESET o inmediatamente después de una interrupción. Forma un segundo grupo de interrupciones al emplear las instrucciones RST 1,2,3,4,5,6 y 7. INTA es la señal 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 código de una instrucción RST, la interrupción se produce por hardware.

Page 11: Microprocesador 8085

• Patilla 36 (RESET IN): Si es activada con un 0, se reinicializa el contador de programa a 0000H, así como la autorización de interrupción.

• Patilla 37 (CLK OUT): Señal de salida de reloj del 8085. También 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 líneas de control están en estado de alta impedancia.

• Patilla 39 (HOLD): Indica que algún otro usuario está solicitando el acceso el bus de direcciones y al bus de datos. El microprocesador termina la ejecución del ciclo en curso, después posiciona en estado de alta impedancia al bus AD0-AD15 y las líneas de control RD, WR e IO/M, señalando este paso sobre la línea HLDA.

• Patilla 40 (Vcc): Tensión de alimentación de +5V.

Page 12: Microprocesador 8085

• Patilla 30 (ALE): Libera un impulso cada vez que el bus AD0-AD7 presenta la parte baja de una dirección. Se utiliza para diferenciar entre la parte baja de la dirección y el dato que se presentará a continuación.

• 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 leído 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 instrucción IN u OUT. Si es 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á dispuesta a recibir o proveer el dato. Si es 0 el8085 espera a su puesta a 1 antes de seguir su ciclo de lectura o escritura.

Page 13: Microprocesador 8085

DIAGRAMA DE BLOQUES DEL 8085 DE INTEL:

Page 14: Microprocesador 8085

INSTRUCCIONES ARITMETICAS Y LOGICAS:

La mayoría de instrucciones de este tipo afectan las banderas del registro de estado (Z,S, AC, P, CY). El resultado de toda operación que incluya al acumulador, es almacenado en el mismo acumulador.

Básicamente 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 dirección de memoria M especificada por los registros HL, con el contenido del acumulador (ej.:

ADD M).

- ADI byte: Suma al acumulador el valor numérico 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 también 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 dirección de memoria M (ej.: INR M).

- DCR r; DCR M: Realizan las operaciones inversas a INR r y INR M

Page 15: Microprocesador 8085

INSTRUCCIONES DEL MICROPROCESADOR 8085

Básicamente 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 posición dememoria 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 numérico de un byte de longitud(ej.: MVI D, 03H).

- LXI rp, dbyte: Carga una pareja de registros con un valor de 2 bytes delongitud (ej.: LXI H, 0010H, LXI B, 25AFH).

- LDA addr: Carga al acumulador con el contenido de la dirección indicada(ej.: LDA FF00H).

- STA addr: Guarda el contenido del acumulador en la dirección indicada(ej.: STA FF00H).

Page 16: Microprocesador 8085

- ANA r: Realiza la operación lógica AND entre el acumulador y el registro r (ej.: ANA C, ANA L).

- ANA M: Realiza la operación lógica AND entre el acumulador y el contenido de la dirección de memoria M (ej.: ANA M).

- ANI byte: Realiza la operación lógica AND entre el acumulador y el valor numérico especificado (ej.: ANI 05H).

- ORA r; ORA M; ORI byte: Realizan la operación lógica OR.

- XRA r; XRA M; XRI byte: Realizan la operación lógica XOR.

- CMP r; CMP M; CPI byte: Realizan una comparación 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 posición a la izquierda (en el sentido del bit 0 al bit 7)

- RRC: Rota el acumulador una posición a la derecha (en el sentido del bit 7 al bit 0)

- CMA: Complementa el valor del acumulador, es decir, realiza una operación lógica NOT con cada bit del acumulador.

Page 17: Microprocesador 8085

EJEMPLOS DE PROGRAMACION:

• Ejemplo 1:

Para finalizar, se presentan algunos programas básicos que demuestran la aplicación de varias de las instrucciones antes analizadas así como también detalles de la programación en lenguaje ensamblador.

;El siguiente programa realiza la siguiente operación: SUM = NUM1 + NUM2;si el resultado es igual a un número LIM,;realiza la siguiente operación RES = SUM - NUM3.

;************************************************************************;************************************************************************

;Define constantes utilizadas por el programaNUM1 .EQU 05H ;Número 1NUM2 .EQU 02H ;Número 2NUM3 .EQU 03H ;Número 3LIM .EQU 07H ;Límite de Comparación

;************************************************************************;************************************************************************

;El siguiente código representa al programa principal.ORG 0000H ;Inicia en la posición de memoria 0000H

MVI A, NUM1 ;Carga número 1 en el Registro AMVI B, NUM2 ;Carga número 2 en el Registro BMVI C, NUM3 ;Carga número 3 en el Registro cMVI D, LIM ;Carga límite en el Registro DADD B ;Realiza NUM1 + NUM2CMP D ;Compara el resultado de la sumaJZ RESTAR ;Si es igual al límite entonces salta a RESTARHLT ;Caso contrario se detieneRESTAR:SUB C ;Realiza SUM - NUM3HLT ;Detiene al procesador

;************************************************************************;************************************************************************

.END

Page 18: Microprocesador 8085

• 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 programaTIEMPO1 .EQU 03H ;Número de veces que se repie el lazo 1TIEMPO2 .EQU 02H ;Número de veces que se repie el lazo 2

;***************************************************************************************;***************************************************************************************

;El siguiente código representa al programa principal.ORG 0000H ;Inicia en la posición de memoria 0000HMVI A, 01H ;Carga registro de pruebaREPITE:CALL DEMORA1 ;Llama rutina 1RLC ;Rota el acumulador 1 bit a la izquierdaCALL DEMORA2 ;Llama rutina 2RLC ;Rota el acumulador 1 bit a la izquierdaJMP REPITE ;Salta a etiqueta REPITE

;***************************************************************************************;***************************************************************************************

;El siguiente código representa una demora de tiempo de un lazo.ORG 0040H ;Inicia en la posición de memoria 0040HDEMORA1:MVI B, TIEMPO1 ;Carga contador del lazo 1LAZO1: DCR B ;Decrementa por uno le registro BNOP ;No hace nadaJNZ LAZO1 ;Salta si el resultado no es ceroRET ;Regresa al programa principal

;***************************************************************************************;***************************************************************************************

;El siguiente código representa una demora de tiempo de dos lazos.ORG 0060H ;Inicia en la posición de memoria 0060HDEMORA2:MVI B, TIEMPO1 ;Carga contador del lazo 1LAZO3: MVI C, TIEMPO2 ;Carga contador del lazo 2LAZO2: DCR C ;Decrementa por uno le registro CNOP ;No hace nadaJNZ LAZO2 ;Salta si el resultado no es ceroDCR B ;Decrementa por uno le registro BJNZ LAZO3 ;Salta si el resultado no es ceroRET ;Regresa al programa principal

;***************************************************************************************;***************************************************************************************

.END