Circuitos del temporizador

Solo disponible en BuenasTareas
  • Páginas : 5 (1239 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de julio de 2010
Leer documento completo
Vista previa del texto
Circuitos del Temporizador

Registro Option

|Número de Bit |7 |6 |5 |4 |
|0 |0 |0 |1:2 |1:1 |
|0 |0 |1 |1:4 |1:2 |
|0 |1 |0 |1:8 |1:4 ||0 |1 |1 |1:16 |1:8 |
|1 |0 |0 |1:32 |1:16 |
|1 |0 |1 |1:64 |1:32 |
|1 |1 |0 |1:128 |1:64 |
|1 |1 |1|1:256 |1:128 |

PSA asigna el divisor de frecuencia a utilizar:

1 = El divisor de frecuencia se le asigna al WDT
0 = El divisor de frecuencia se le asigna al TMR0

TOSE nos indica el tipo de flanco a utilizar en TOCK1:

1 = Incremento de TRMO cada flanco descendente
0 = Incremento de TRMO cada flanco ascendente

TOCS sirve para especificar si lospulsos a utilizar por los temporizadores son internos o externos:

1 = Pulsos introducidos a través de TOCK1 (contador)
0 = Pulsos de reloj interno Fosc/4 (temporizador)

INTEDG es para el tipo de transición (flanco) que utilizará la interrupción externa:

1 = Flanco ascendente
0 = Flanco descendente

RBP0# activa las resistencias Pull-up del puerto B

1 = Desactivadas
0 = ActivadasPrograma para controlar el parpadeo de un led

Datos: Frecuencia del reloj externo = 1 MHz
Led a Controlar = RB7
Número del contador = 16
Tiempo de retardo:
Temporizador = 4 * Tiempo de un pulso de reloj * No. del contador * Rango del divisor
= 4 * 1 microsegundo * 16 * 128 = 8.192 milisegundos

Hardware a conectar en el PIC

Diagrama de flujo

Código delprograma

LIST P=16C84

PUERTAA EQU 0x06
OPTION EQU 0x01
ESTADO EQU 0x03
TMR EQU 0x01

ORG 0 ; Inicio del programa en
; direcci¢n 0

bsf ESTADO,5 ; Banco 1
movlw b 1101 0110 ; Valor a cargar en
; OPTION
movwf OPTION
movlw 0x00
movwf PUERTAB ; La Puerta B salida
bcf ESTADO,5 ; Banco 0clrf PUERTAB ; Las l¡neas de salida
; de PB a 0

parpa bsf PUERTAB,7 ; Enciende el led RB7 = 1
call retardo ; Llamada a subrutina de
; RETARDO
bcf PUERTAB,7 ; Apaga el led, RB7 = 0
call retardo
goto parpa

retardo clrf TMR0 ; TMR0 = 0 y empieza su
; incremento
explora btfss TMR0,4 ; TMR0 =1?
goto explora ; No ha llegado TMR0 a
; 16d
return ; Ha llegado TMR0 al
; valor 16d y retorna
; al programa principal

END

Interrupciones

Las interrupciones son desviaciones del flujo de control del programa que pueden ser originadas por diferenteseventos que no se hallan bajo la supervisión de las instrucciones.

Origen de las interrupciones

Pueden ser generados en forma externa (activando una terminal del microcontrolador) o interna (desbordamiento de un contador).

Proceso de una interrupción en general

En caso de suceder una interrupción ocurren varios eventos:
a) Algún dispositivo hace una petición de interrupción al micro.b) El micro detecta la petición de interrupción
c) Verifica si la interrupción esta habilitada.
d) Detener el programa en curso.
e) Guardar el contenido del PC en la pila.
f) Guardar el contenido de algunos registros importantes como los de status.
g) Deshabilitar interrupciones mientras se corre una interrupción o tener una tabla de prioridad de interrupciones.
h) Cargar el PC con una...
tracking img