Sei sulla pagina 1di 3

Gua

Ejercicios

EJERCICIOS UTILIZANDO TIMER0


Objetivo: Generar una seal peridica de 1KHz utilizando el Timer0 del PIC16F877A
trabajando a una frecuencia de 4MHz.
Circuito: En la figura 1-1 se muestra la conexin electrnica del microcontrolador que
genera la seal peridica de 1KHz a travs del pin RB2.

Figura 1-1 Circuito electrnico para generar una frecuencia de 1KHz.

Programa 1: Para la ejecucin del programa, se debe de calcular primero el valor que
se ingresar al TMR0. En la figura 1-2 se muestra el cdigo en C.

Solucin:
El perodo

=500uS (nivel alto) + 500uS (nivel bajo)


(

)(

)( )

El conteo se inicia en 6 hasta 255 hay (250 ticks) x 2 x 1us =500uS de tiempo

Curso de Microcontroladores

Figura 1-2 Cdigo en C del uso del Timer0 por lectura del indicador de desbordamiento.

Registros asociados al TMR0: Los registros asociados al TMR0 se muestran en la


figura 1-3.

Figura 1-3 Los registros asociados al TMR0.

Para habilitar la interrupcin del Timer0 se ponen a 1 los bits TOIE y GIE del registro
INTCON. El desbordamiento del registro TMR0 (transicin de 255 a 0) activar el flag T0IF
y si la interrupcin est habilitada, se disparar. El bit T0IF sebe ser limpiado por software.

Curso de Microcontroladores

Nota: Tanto en modo temporizador y contador el circuito Timer0 depende del


oscilador del sistema. Por tanto en modo Sleep el timer0 no operar y
tampoco producir interrupcin.
Programa 2: Para atender el mismo ejercicio se realiz un programa basado en una
funcin de servicio de interrupcin. En la figura 1-4 se muestra el cdigo en C de la
interrupcin por TIMER0.

Figura 1-4 Cdigo en C del uso del Timer0 con interrupcin.

Curso de Microcontroladores

Potrebbero piacerti anche