Sie sind auf Seite 1von 6

MICROPROCESADOR 8051

L7.- INTERRUPCIONES

Introduccion.Que es una Interrupcion?


Una interrupcion en Microprocesadores, es como lo dice su palabra una interrupcion que se realiza al proceso que esta
realizando en ese momento el procesador de tal manera que el procesador debe dejar la labor que estaba ejecutando
para atender la interrupcion solicitante, una vez atendida puede retornar al proceso donde lo dejo.
Es como un subprograma, pero puede ser llamado via una interrupcion por hardware y detiene al programa principal en
cualquier ejecucion permitiendole luego retornar a la labor que se estaba ejecutando.
Interrupciones del Microcontrolador
Dependiendo del modelo de microcontrolador se tienen distintas interrupciones, pues esto depende de los recursos con
los cuales cuenta el microcontrolador, esto varia de modelo a modelo. Por ejemplo en el microcontrolador AT89c51
tambien de la familia 8051, este posee los siguientes recursos que solicitan interrupcion
Interrupcion Externa 0
Timer 0
Interrupcion Externa 1
Timer 1
Puerto serie Rx y Tx
Adicionalmente el microcontrolador AT89c52 posee un recurso adicional al at89c51, posee un Timer 2, Ademas de poseer
mas memoria de programa y memoria de datos.
Vector de Interrupciones
cada una de estas interrupciones posee una direccion de memoria de programa a la cual se direcciona para ejecutar el programa que
atendera dicha interrupcion. Las direcciones de interrupcion se denominan ,vector de interrupcionones.

Interrupcin

Direccin

Reset
Interrupcin Externa 0
Timer 0
Interrupcin Externa 1
Timer 1
Puerto Serial Tx y Rx

0000
0003
000B
0013
001B
0023

Timer 2 (Solo At89c52 y superiores)

002B

Activacion de interrupciones
Al energisar el microcontrolador las interrupciones estan desactivadas deben habilitarse manualmente via software,
existe un registro global de interrupciones que habilita la funcion de interrupcion en general. Este registro se denomina
"IE" Interrup Enable.

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

Un otro registro importante es el IP Interrup Priority de prioridad de interrupcin, quien est encargado en caso de que
varias interrupciones se ocasionen al mismo tiempo, dar a cada una determina prioridad para ser atendido primero,
esto configura por software y individualmente cada una de las interrupciones puede ser habilitada o deshabilitada.

Las prioridades con el registro "IP" Interrup Priority

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

Retorno de interrupcin RETI


Como habamos mencionado la interrupcin viene a ser un subprograma que resuelve la solicitud de la interrupcin y al
ser un programa de subrutina debe retornar al programa que estaba corriendo antes de ser activada y atendida la
interrupcin, esta instruccin es RETI, Retorno de Interrupcin.

Hardware.-

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

Software.;
;
;
;
;
;
;

programa:
interrupcion externa 0
Descripcion:
Este programa controla el corrimiento de leds de izquierda
a derecha por el puerto 2, en su programa principal.
al llamado de la interrupciono externa 0, realiza un parpadeo
de los leds de puerto 2 todos prendidos y todos apagados 4 veces.
posteriormente retorna al programa en el corrimiento donde se a quedado.

org 0000h
;---- Interrupcion Reset
ajmp inicio
;---- Interrupcion Externa 0
ORG 0003H
ajmp
interrupcionex0
RETI
;---- Timer 0
ORG 000BH
reti
;---- Interrupcion Externa 1
ORG 0013H
reti
;---- Timer 1
ORG 001BH
reti
;---- Puerto Serial Tx y Rx
ORG 0023H
reti
;---- Timer 2
ORG 002BH
reti

ORG 0030H
interrupcionex0:
push acc
push p2

; guarda acumulador en stack pila


; guarde p2 en stack pila

mov
r3,#00d
; condicion inicial
parpadeo:
acall retardo
mov
p2,#11111111b
; parpadear

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

acall
mov
inc
cjne

retardo
p2,#00000000b
r3
r3,#4d,parpadeo

pop
pop

p2
acc

RETI

; parpadear

; recupera variables para retorno


; a programa principal
; retorno de interrupcion

inicio:
; configuracion interrupciones
setb p3.2 ; condicion inicial
setb EX0
; habilitada la interrupcion externa 0
setb EA
; habilitada la interrupcion Global
; condiciones iniciales
mov
30h,#80h ; contador, valor inicial
derecha:
mov
p2,30h
acall retardo
; rotar
mov
a,30h
rr
a
mov
30h,a
cjne a,#01h,derecha
izquierda:
mov
p2,a
acall retardo
mov
rl
mov

a,30h
a
30h,a

cjne
ajmp

a,#80h,izquierda
derecha

retardo:
mov
r6,#00h
mov
r7,#00h
bucle:
nop
nop
nop
djnz
r6,bucle
djnz
r7,bucle
ret
end

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

Laboratorio.

Simule el circuito y programa en Proteus, presentar como L7A.


Analice el circuito ya simulado y modificar para que la al precionar la interrupcion se genere en el puerto cero un
corrimiento de un led encendido de derecha a izquierda, es decir desde P0.7 a P0.0.

Cuestionario.1.- Explique en sus propias palabras que entiende por interrupcion.


2.- Cuantas interrupciones tiene el AT89C51 o AT89S51, enumere y cite cuales son.
3.- Describa el vector de interrupciones y las respectivas direcciones de interrupcion de cada uno.
4.- Descrina en sus propias palabras los registros IE y el registro IP.

Puede descargar los dems laboratorios y guas de la siguiente pagina web


https://sites.google.com/site/cursodemicrocontroladores8051/

CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico

Das könnte Ihnen auch gefallen