Está en la página 1de 9

UNIVERSIDAD TECNOLGICA DE QUERTARO

CARRERA: MECATRNICA

Ttulo de la prctica: Temporizadores/contadores con interrupciones Asignatura: Sistemas Digitales II Fecha de inicio: 28-09-2011 Prctica #:3 Unidad temtica: Unidad 1 Fecha de entrega: 30-09-2011 Grupo: E-79 No. de participantes recomendados: 3 por equipo Elabor: Jorge C. Guas Noriega. Duracin: 2 hrs. Lugar: Laboratorio de Informtica Revis: Academia de Sistemas Digitales Alumno: Alumno:
Ral Gonzlez Martnez Cristian Medina Vanegas Fernando Meja Snchez

OBJETIVO(S): Realizar la programacin del PIC 16f876A usando el temporizador/contador con interrupciones y probarlo usando el lm555 como generador de pulsos.

INTRODUCCIN Las interrupciones son funciones que se ejecutan cuando se cumple una condicin o cuando un registro ha completado una funcin, stas son muy tiles, ya que permiten dejar de realizar una funcin para iniciar otra de mayor prioridad dejando al final las de menor prioridad.

UTEQ

Marco Terico

Temporizadores/contadores con interrupciones

MARCO TERICO
Las interrupciones se realizan cuando un perifrico, el cual tiene asignado una bandera de interrupcin (IF), realiza una funcin especfica o especial, la cual permite al perifrico hacer la peticin de la interrupcin, sin embargo esta peticin despus se compara con un registro de habilitacin (IE) que permite la interrupcin o la ignora. Los registros necesarios para generar las interrupciones son 5: INTCON (interrupt control): Contiene la habilitacin de las interrupciones generales y el timer0. Para que todas las interrupciones estn habilitadas el bit (7) de este registro debe de estar habilitado. PIE1, PIE2: Son registros que contienen los bits de habilitacin de interruptores de los perifricos. PIR1, PIR2: Registros que contiene las banderas de interrupcin.

En todos los perifricos las forma de pedir la interrupcin es muy diferente, en el caso de los temporizadores contadores estos realizan la interrupcin cuando se realiza el desbordamiento (cuando llega su limite y se reinicia el temporizador), y al ocurrir esto los temporizadores asignan un bit verdadero (1) en el bit de registro donde se encuentra su bandera.

INTCON bit (2)= TIMER0 (se debe de habilitar el bit (7) y el bit (5)). PIE bit (0) y PIR1 bit (0)= TIMER1 (bit de habilitacin y su bandera de interrupcin). PIE bit (1) y PIR1 bit (1)= TIMER2 (bit de habilitacin y su bandera de interrupcin).

Para declarar una interrupcin en mikroC debemos declarar la funcin void interrupt () { } donde se ingresar el cdigo que ejecutar al momento de ocurrir la interrupcin, esta funcin se debe de declarar antes de la funcin principal void main () {} tomado en cuenta que en la funcin main se debe de configurar los registros para permitir las interrupciones aunque se puede realizar en otra funcin.

UTEQ

Desarrollo DESARROLLO

Temporizadores/contadores con interrupciones

Material requerido: Sistema Mnimo con Micro controlador PIC 16f876A Fuente de energa 5 v CD LM555 armado con la configuracin astable Equipo requerido: PC con compilador Programador de PIC

Manejo de temporizadores/contadores con interrupciones.


Instrucciones:

Realizar la programacin del PIC16F876A usando el temporizador/contador con interrupciones usando el TMR0 para tomar el conteo de pulsos provenientes del LM555 a 1 Hz. Se contarn 5 pulsos con el TIMER0 con esto se encender un led y al contar nuevamente 5 pulsos se apagar el led, probar que funcione en el sistema mnimo.

Solucin:

Se realiz el programa en Mikroc se declar el puerto de salida y el de entrada, en este caso se us como la entrada de pulsos el bit 4 del puerto A y se configur como salida al bit 1 del puerto B. Para ver si el programa funciona correctamente, es necesario probarlo en el sistema mnimo en el cual se us un oscilador de 20 MHz y una alimentacin de 5 v cd en la fuente. En la figura 1 se muestra la conexin.

UTEQ

Desarrollo

Temporizadores/contadores con interrupciones

4 MHz

Figura 1. Conexin del PIC 16F876A con el programa de interrupciones

En el programa se configuraron los registros necesarios en TMR0 para recibir los pulsos externos provenientes del lm555 los cuales se reciben en el bit 4 del puerto A en el cual est el registro TOSKI, por lo cual el puerto A se configur como salida excepto el bit 4 que se configur como entrada por medio del registro TRISA .

Figura 2. Registros de INTCONT

UTEQ

Desarrollo

Temporizadores/contadores con interrupciones

Se configur el registro INTCONT para habilitar las interrupciones globales y la interrupcin del TIMER0. En la figura 2 se muestran los registros de INTCONT y a continuacin se muestra el programa que se realiz y fue probado en el sistema mnimo.

void interrupt () { if (INTCON.F2=1) { INTCON.F2=0; /*el bit2 del intcon se pone en cero*/ /*portA.F1 invierte su estado*/ /*depurando la fuente de int.*/

PORTB.F1=~PORTB.F1; TMR0=0xFB; } } void conf() { ADCON1=0x07; CMCON=0x07; TRISA=0x10; TRISB=0x00; PORTA=0x00; PORTB=0x00; option_reg=0x38; INTCON=0xA0; TMR0=0xFB; } void main () { conf (); do { } while(1); }

/*se vuelve a reiniciar en 251=0XFB*/

/*se apagan las seales analgicas*/ /*se apaga el comparador*/ /*se configura el puerto A con .f4 como entrada*/ /*se declara puerto B como salida*/ /*el puerto A se inicia en 0*/ /*el puerto B se inicia en 0*/ /*se establece el Timer0 como un contador con pulsos externos*/ /*se configura la interrupcin*/ /*se inicia el TMR0 en 251=0XFB*/

/*Ciclo infinito de punto ciego para que no regrese hasta el inicio*/

UTEQ

Desarrollo

Temporizadores/contadores con interrupciones

CONCLUSIONES Y COMENTARIOS Cristian Medina Vanegas Con esta prctica se logr ver el funcionamiento del temporizador con interrupciones, los cuales se usan para detener operaciones y realizar otra con mayor prioridad pero al terminar esta se vuelve a tomar la accin que se dej de hacer, en la prctica lo demostramos con el encendido de un led, el cual encenda a los 5 pulsos mandados desde un lm555 usado de forma astable a 1 Hz de frecuencia y se mantena encendido hasta que le llegaban otros 5 pulsos los cuales lo apagaban y esta operacin la realiza de manera constante, se declar como entrada a RA4 el cual recibe los pulsos externos del lm555 y RB1 como salida para encender y apagar el led. Fernando Meja Snchez

En esta prctica aprendimos a hacer programas con una funcin nueva que son las interrupciones, estas son importantes en la programacin en el caso de que estemos haciendo un proceso y tenemos que atender una funcin de mayor prioridad, el proceso debe ser interrumpido para aprender la prioridad. Tambin vimos una cosa nueva, que es el ciclo infinito de punto ciego. Ral Gonzlez Martnez. En esta prctica utilizamos las interrupciones las cuales son muy, importantes en un proceso pues en ocasiones ocurren y se tiene que a tender esta o la ms importante. Al realizar la interrupcin regresa a la parte donde se cre la interrupcin , en la prctica utilizamos el lm555 como generador de pulsos el cual enva 5 pulsos al puerto A y se generaba la interrupcin y cambia el estado de puerto B en donde se encuentra el led, al hacerse la interrupcin se reinicia el ciclo nuevamente.

UTEQ

Desarrollo

Temporizadores/contadores con interrupciones

BIBLIOGRAFA
www.mikroe.com/eng/chapters/view/81/capitulo-3-microcontrolador-pic16f887.html Verle Milan; PIC Microcontrollers - Programming in C; mikroElektronika; 1st edition (2009), Captulo 3: Microcontrolador 16f887, pg. 1. http://www.datasheetcatalog.com/ DataSheets/M16F876A.pdf, pgs. 1-66

UTEQ

UTEQ

UTEQ

También podría gustarte