Professional Documents
Culture Documents
TIMER 0
Timer TMR0
Contador
Timer TMR0
Una
vez que se ha llegado a la cuenta mxima, el timer se desborda (00000000) y se pone a 1 el bit T0IF del registro INTCON (0x0B)
Timer TMR0
Su
de las funciones corresponde a un contador. En este caso el timer cuenta los pulsos que se introducen a travs del pin RA4/T0CK1 El canto de cuenta (subida o bajada) se configura a travs del bit T0SE
T0SE = 1, canto descendente T0SE = 0, canto ascendente
temporizador, el timer cuenta los impulsos provenientes de Fosc/4. Se utiliza para determinar intervalos de tiempos. Los impulsos tienen una duracin de 1 ciclo de mquina (4 ciclos de reloj) Si el cristal es de 4MHz, el timer incrementa su cuenta cada 1s.
este caso el contador debe ser cargado con el valor de los impulsos que se desean contar restados de 256 (valor de desbordamiento)
Ej. Si se quiere contar 20 impulsos, el TMR0 debe ser cargado con un 256 20 236
TMR0 esquema
0x01 (bco 1)
PS2 PS1 PS0 Divisor TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 Divisor WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128
PS2:PS0: 000 Bits seleccin del 001 010 divisor de frecuencia. 011
100 101 110 111
0x01 (bco 1)
0x01 (bco 1)
0x0B
TMR0 temporizador
Para
definir el nmero de cuentas que debe realizar el timer, se utiliza la siguiente ecuacin:
TMR0 temporizador
Ej:
Temp = TCM * DivFrec * (256 TMR0) 500 = 1 * 2 * (256 TMR0) TMR0 = 6 Utilizando un divisor de frecuencia en 2 OBS: Para periodos exactos se debe considerar los tiempos de
TMR0 temporizador
Ej.
TMR0 temporizador
SETP bsf EST,5 clrf PB movlw 0x07 ; b'00000111 movwf TMR0 ; w => OPTION bcf EST,5 movlw 0xff movwf PB call RETARDO clrf PB call RETARDO goto INICIO
INICIO
TMR0 temporizador
RETARDO movlw 0x3d ; d'61 movwf TMR0 ; d'61 ==> TMR0 btfss INTCON,2 goto DESB return
DESB
TMR0 temporizador
Ej:
Realice un programa que entregue por el puerto B, una seal cuadrada de 500s en alto y 300s en bajo.