TET424
RESUMEN
El objetivo de la investigacin es familiarizarse con los
cada uno de estos conceptos y aplicaciones de las
interrupciones y temporizadores en microcontroladores
PIC, cual es la funcin que cumplen y en base a esto
definir la programacin de cada una de sus subrutinas,
ya que a su vez estos constituyen un tema de gran
importancia en los sistemas digitales.
I. INTRODUCCIN
Interruptiones
Se puede decir que una interrupcin es un evento que
hace que nuestro microcontrolador deje de realizar las
tareas especficas para la que se program y al mismo
tiempo se dirija a este acontecimiento, para luego volver
a las acciones que normalmente fue programado.
Temporizadores
Los temporizados su opcin ms notoria es la de medir el
tiempo entre dos eventos y a partir de esto establecer
tareas a tiempos regulables. En cada uno de los PICs
podemos encontrar uno o varios timers internos esto
variara de tipo de PIC con el que estemos trabajando.
Se puede ver que la configuracin de los timers se basa
en los ciclos del oscilador. Que por defecto la seal que
van a contabilizar los timers corresponde a la frecuencia
del oscilador dividida por cuatro. Por lo tanto en realidad
cuentan ciclos mquina, no ciclos de reloj.
II. MARCO TEORICO
Interrupciones en microcontroladores
[1]Las interrupciones son cambios de trayectorias del
flujo de un programa causadas por agentes externos de
mayor prioridad. Cuando esto ocurre, el microcontrolador
detiene el programa en curso, almacena la direccin en la
cual se ha detenido y salta a un vector de interrupcin
previamente definido en el programa.
[2]Principales fuentes de interrupcion en los
microcontroladores:
Pin INT, cambio en los terminales del puerto B
(RB7:RB4).
Overflow en los temporizadores.
Cambio en el comparador.
Fin de escritura en la memoria EEPROM de datos.
Relacionadas con el Puerto Paralelo Esclavo, con la
USART, con el fin de conversin A/D y en general con
los mdulos perifricos con que puede contar una MCU.
Gestin de interrupciones mediante registros:
INTCON: registro general de control y estado.
En funcin de los perifricos disponibles por una MCU:
PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las
interrupciones de cada perifrico.
PIR1 y PIR2 (Peripheal Interrupt Flag Registers)
identifican el perifrico que interrumpe.
[3]Para el trabajo con las interrupciones en la mayora de
los PICs debemos trabajar en el registro INTCON
(Interrupt Control Register)
TET424
TIME0
Las caractersticas del TIME1, TIME2 son similares a
las del TIME0 simepre hay de llevar de la mano revisar
el datta sheet del integrado para mayor seguridad de
como es el trabajo de estos puertos.
[6]Este puede funcionar de dos maneras:
Contador de pulsos externos
Temporizador para calcular intervalos de
tiempo.
En el caso que dicha seal provenga del reloj interno de
instrucciones (Fint), el Timer0 se utiliza para generar
interrupciones peridicas a travs de una cuenta
programada. Ya que conocemos la frecuencia de
funcionamiento y en base a un valor cargado en el
contador del timer podemos temporizar eventos.
En el caso que dicha seal sea de una fuente externa al
microcontrolador (Fext), es especialmente til para
contar el nmero de pulsos que dicha seal genera en el
TET424
tiempo ya que cada pulso de dicha seal incrementa el
TMR0.
[2]Caractersticas principales:
Contador temporizador de 8 bits
Accesible mediante operaciones de lectura y escritura.
Incorpora un prescaler de 8 bits programable por Sw.
Reloj interno o externo.
Seleccin del flanco del reloj externo
Puede producir una interrupcin al desbordarse
REGISTRO OPTION_REG
Carga y temporizacin
[8]En modo temporizador el Timer 0 incrementa su
cuenta en cada ciclo de instruccin. Este modo sirve para
generar temporizaciones y bases de tiempo de la misma
forma que los retardos por software, sin embargo las
temporizaciones con el Timer 0 pueden ser ms exactas
y adems se cuenta con la ventaja de que el mdulo
puede trabajar mediante interrupciones as que el
programa puede ejecutar otras instrucciones mientras se
realiza la temporizacin.
La temporizacin que se puede obtener con este mdulo
se obtiene de la siguiente relacin:
Temporizacin = [(256 - precarga)*PS+2]*Tinstruccion
Donde:
Precarga = Valor que se le asigna al registro TMR0 al
comenzar la temporizacin
PS = Pre escalador. Si est asignado al watchdog tomar
el valor de 1
Tinstruccin = 4/frecuencia de oscilaciny la
temporizacin est dada en segundos.
TET424
btfss
STATUS, Z ; contador virtual a 0?
goto RECARGA
; si no es 0, recarga el tmr0.
; poner aqui el codigo de la rutina; recargamos contador
virtual;
movlw T0AUXVAL ; recarga registro auxiliar
movwf T0AUX
RECARGA
; recargamos Timer0 y borramos la interrupcion;
movlw
T0VALUE
movwf TMR0
; recargamos el timer0
bcf INTCON, T0IF ; indicamos interrupcion ya servida
retfie ; fin de interrupcion
;****** PROGRAMA PRINCIPAL ******
INICIO
clrwdt ; recomendacion de microchip antes de reasignar
el prescale
bsf STATUS, RP0
; cambiamos al banco 1
movlw OPTIONV
movwf OPTION_REG ; configuramos timer0
bcf
STATUS, RP0 ; cambiamos al banco 0
movlw T0VALUE ; cargamos el timer0
movwf TMR0
movlw T0AUXVAL ; cargamos contador virtual
movwf T0AUX
bsf INTCON, T0IE ; habilitamos interrupcion por
Timer0
bsf
INTCON, GIE ; habilitamos interrupcion
general
MAIN goto $ ; bucle principal
End
III. CONCLUIONES
TET424
E&sig=41woMI7HvQqcAtHCikoYLlSeldY&hl=es419&sa=X&ved=0ahUKEwiVn5Wu0p3NAhXEPB4KHff
XCw8Q6AEIPTAI#v=onepage&q=aplicaciones%20tem.
[ltimo acceso: 09 06 2016].
[
galeon, leo-tronics, [En lnea]. Available:
6 http://galeon.com/leo-tronics/TutorialTimer0.pdf. [ltimo
]
acceso: 09 05 2016].
[
microchip, ww1.microchip.com, 2013. [En lnea].
7
Available:
] http://ww1.microchip.com/downloads/en/DeviceDoc/35007
C.pdf. [ltimo acceso: 09 06 2016].
[ anonimo, Circuitos Electronicos, 15 04 2011. [En lnea].
8 Available: http://www.circuitoselectronicos.org/2011/04/el] temporizador-timer-0-en-los.html. [ltimo acceso: 09 06
2016].