l7 interrupciones

6
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. Interrupción Dirección Reset 0000 Interrupción Externa 0 0003 Timer 0 000B Interrupción 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.

Upload: raul-alejandro-ql

Post on 25-Sep-2015

40 views

Category:

Documents


0 download

DESCRIPTION

interrupciones atmel 8051

TRANSCRIPT

  • 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/