Upload
raul-alejandro-ql
View
40
Download
0
Embed Size (px)
DESCRIPTION
interrupciones atmel 8051
Citation preview
CURSO DE MICROCONTROLADORES 8051 | Raul Alejandro Quispe Larico
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 0000 Interrupcin Externa 0 0003
Timer 0 000B Interrupcin Externa 1 0013
Timer 1 001B Puerto Serial Tx y Rx 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 ; guarda acumulador en stack pila push p2 ; 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 retardo mov p2,#00000000b ; parpadear inc r3 cjne r3,#4d,parpadeo pop p2 ; recupera variables para retorno pop acc ; a programa principal RETI ; 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 a,30h rl a mov 30h,a cjne a,#80h,izquierda ajmp 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/
https://sites.google.com/site/cursodemicrocontroladores8051/