Title: Interrupts 8085
1- Interrupts - 8085
- Interrupt método que provee el MPU para que las
unidades de I/O le avisen cuando desean
comunicarse con él. - Polling vs. Interrupts
- polling cada cierto tiempo MP pregunta a cada
uno de los I/O si necesita atención - Por ejemplo hasta ahora hemos atendido los
switches y el 7-segment por medio de interrupts. - TOP - - - -
- - - - - -
- IN 00
- - - - - -
- OUT 00
- JMP TOP
- interrupt MP se mantiene haciendo lo suyo y es
interrumpido por el I/O que lo necesite
2- Señales del 8085 relacionadas a Interrupts
- INTR (interrupt request)
- INTA (interrupt acknowledge)
- RST5.5
- RST6.5
- RST7.5
- TRAP
Non-vectored Interrupts
Vectored Interrupts
36. Instrucción RST le indica al micro a donde
está ISR del device. Micro ejecuta ISR y luego
regresa al programa que estaba ejecutando.
Secuencia de eventos para interrupts usando INTR
(non-vectored interrupts)
3. MP decide si va a atender el interrupt.
5. Interface comunica instrucción RST utilizando
el Data Bus
2. Interface activa señal INTR del 8085
D0-D7
DATA BUS
Interface
INTR
1. Input device genera dato o señal que indica
que quiere ser atendido
INTA
8085
4. Al terminar con la instruccion corriente, MP
activa señal de INTA.
Input Device
Instrucción Address del ISR RST 0 C000 RST
1 C008 RST 2 C010 RST 3 C018 RST 4 C020 RST
5 C028 RST 6 C030 RST 7 C038
44. Al terminar con la instrucción corriente, MP
ejecuta ISR correspondiente. Luego regresa al
programa que estaba ejecutando.
Secuencia de eventos para interrupts usando
alguno de los vectored interrupts
3. MP decide si va a atender el interrupt. El
TRAP siempre será atendido.
2. Interface activa señal de vectored interrupt
del 8085
DATA BUS
Interface
RST5.5
1. Input device genera dato o señal que indica
que quiere ser atendido
8085
Input Device
Vectored Int Address del ISR TRAP C024 RST
5.5 C02C RST 6.5 C034 RST 7.5 C03C
5Como el 8085 decide si atender o no un interrupt
Caso 1 Interrupt a través de INTR
llega interrupt a través de INTR
Interrupt Enable Flag
Instrucciones que alterán estado del Interrupt
Enable Flag EI enable interrupt DI disable
interrupt
Comienzo tipico de un programa habilitado para
atender interrupts por INTR LXI SP, C800 EI . .
. . . . .
Enable Interrupt
6Como el 8085 decide si atender o no un interrupt
Caso 2 Interrupt a través de RST5.5, RST6.5
oRST7.5
Interrupt Enable Flag
Y
Cierto
Falso
Interrupt Enable FlipFlop is Set
Interrupt Mask Register
No Atiende
Cierto
Falso
Instrucciones que alterán estado del Interrupt
Mask Register SIM reg A -gt IMR RIM reg A lt-
IMR
Corresponding Interrupt Mask Register Bit 0
Atiende
No Atiende
78085 - Interrupt Mask Register
Mask Set Enable if 0, bits 0-2 ignored if 1,
bits 0-2 effective
MSE
I7.5
I6.5
I5.5
M7.5
M6.5
M5.5
Pending Interrupts, 1 pending Used with RIM
Interrupt Masks, 1 masked 0 available
Not used for interrupt purposes
Comienzo típico de un programa habilitado para
atender vectored interrupts LXI SP, C800 EI MVI
A, (byte que se quiere mover al interrupt mask
register) SIM . . . . . . .
8Triggering levels
Interrupt generado cuando MPU detecta flanco
ascendente en RST 7.5
RST 7.5 Edge triggered
RST 6.5, 5.5, INTR Level- sensitive
Interrupts se siguen generando mientras la señal
esta HIGH
TRAP Level sensitive and Edge triggered
9Multiples I/Os usando linea de INTR
D0-D7
INTR
INTA
8085
INTERFACE 1
INTERFACE 2
INTERFACE 3
I/O 1
I/O 2
I/O 3
.. problemas cuando mas de un I/O genera un INTR
a la vez
10Programmable Interrupt Controller
IR1 IR2 IR3
D0-D7
D0-D7
INTR
INT
INTA
INTA
8085
PIC
INTERFACE 1
INTERFACE 2
INTERFACE 3
- Maneja 8 interrupts por chip (se pueden conectar
hasta 8 para un total de 64 interrupts) - Permite asignar y resolver prioridad entre
interrupts - Dirección de ISR es programable.
- Permite control individual de cada interrupt
(enalbe o disable) - Ejemplo Intel 8259 PIC
I/O 1
I/O 2
I/O 3
11- Subrutinas de Interrupt (ISR)
- Ejemplo Tenemos un input device conectado al
puerto 90 que utiliza el interrupt RST5.5 para
indicarle al MP cuando desea ser leido. - Muestre las instrucciones qe debe poner al
principio de su programa principal para que el
interrupt pueda ser atendido. - Diseñe una subrutina de interrupt que lea el
device. - C000 LXI SP, C800
- C002 EI
- C003 MVI A, 0E
- C005 SIM / habilita interrupt 5.5 /
- C007 TOP . . . . . . .
- . . . . . . . . . . .
- . . . . JMP TOP
12Ejercicios relacionados al 8255 (escoja 2 de
estos) Ejercicio 1 Programe el 809 para que
prenda todos los LEDs de forma intermitente. Ejer
cicio 2 Programe el 809 para que prenda el
primer LED de la izquierda. Luego el segundo y
asi hasta llegar al ultimo de la derecha. El
programa debe repetirse infinitamente. Ejercicio
3 Para que la chicharra del 809 chille, es
necesario enviarle una onda cuadrada cambiando
continuamente el PA de 1 a 0 a 1 LA chicharra
pita con una frecuencia igual a la de la onda
que recibe. Programe el 809 para que haga que la
chicharra pite a una frecuencia de 440Hz.
Ejercicio 4 Programe el 809 para que haga que
la chicharra pite a una frecuencia determinada
por la posición de los switches SW1-SW8.
Mientras mas alto el número representado en los
switches, más alta la frecuencia.
13- Ejercicios para practicar Interrupts
- Ejercicio 1
- Diseñe un programa (utilizando interrupts) que al
recibir un interrupt a través de RST7.5
incremente un conteo y muestre el conteo en los
7-segments. El programa principal de tener un
ciclo infinito para que de tiempo a hacer las
pruebas con el interrupt. - Corra el programa y simule la activación de
RST7.5 usando TP1. - Cambie el programa para que ahora sea el
interrupt RST5.5 el que incremente el conteo. - Corra el programa y simule la activación de
RST5.5 usando TP1. Qué cambios observar con
respecto al caso anterior? A que se deben estos
cambios?
14- Ejercicios para entregar y mostrar funcionando
- Para ambos ejercicios
- Entregue un informe donde muestra
- un parrafo o dos donde discute el algoritmo que
utilizo en el programa. Si desea, puede usar un
flujograma en vez de el parrafo. - el programa que utilizó, en Assembly Language
- Antes del lunes 26 de nov 2001 a las 130pm,
mostrar al profesor los dos programas
funcionando.