Módulo Timers - PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa
Introdução O PIC16F877A possui três módulos timers: Módulo Timer 0. Módulo Timer 1. Módulo Timer 2. Podem ser utilizados como temporizadores ou como contadores (exceto timer 2).
Introdução Temporizador. 8 e 16 bits
Introdução Contador. Pulsos externos (via pinos) são utilizados para incrementar o valor do registrador. O tempo não é determinado, apenas eventos são contados.
Módulo Timer 0 Características. Registrador de 8 bits. Pode ser lido ou escrito. Prescaler de 8 bits configurado via software (compartilhado com o watchdog timer). Seleção de clock interno ou externo. Interrupção no overflow de FFh para 00h. Seleção de borda do clock externo.
Módulo Timer 0 Registradores associados. TMR0 Registrador utilizado para marcar o tempo (temporizador) ou contar eventos (contador) – Bancos 0 e 2. INTCON Habilitar e sinalizar interrupções TMR0 – Todos os bancos. OPTION_REG Configuração do timer0 – Bancos 1 e 3.
Módulo Timer 0 OPTION_REG.
Módulo Timer 0 INTCON.
Módulo Timer 0 Interrupção TMR0. Gerada quando ocorre um overflow de FFh para 00h no registrador TMR0. O overflow seta o bit TMR0IF de INTCON. A interrupção ocorre se TRM0IE for setado. O bit TMR0IF deve ser zerado via software. Esta interrupção não pode “acordar” o processador de um SLEEP, pois o timer é desligado durante um SLEEP.
Módulo Timer 0 Exemplo: Temporizador 0 - Assembly.
Módulo Timer 0 Exemplo: Temporizador 0 - Assembly.
Módulo Timer 0 Exemplo: Temporizador 0 – Linguagem C.
Módulo Timer 1 Temporizador/contador de 16 bits. Dois registradores de 8 bits – TMR1H E TMR1L. Podem ser lidos e escritos. Interrupção no overflow de FFFFh – 0000h, se a interrupção TRM1 estiver habilitada.
Módulo Timer 1 Registradores associados. Configuração de Timer1.
Temporizador ou contador Módulo Timer 1 T1CON. Temporizador ou contador
Módulo Timer 1 Exemplo temporizador 1 - Assembly.
Módulo Timer 1 Exemplo temporizador 1 - Assembly.
Módulo Timer 1 Exemplo temporizador 1 – Linguagem C.
Módulo Timer 2 Temporizador de 8 bits com prescaler e postscaler. Pode ser lido e escrito. Possui um registrador de período PR2. TRM2 incrementa de 00h até PR2 e retorna para 00h.
Módulo Timer 2 Registradores associados.
Módulo Timer 2 T2CON.
Módulo Timer 2 Exemplo temporizador 2 – Linguagem C.
Módulo Timer 2 Exercício em grupo: faça um programa em assembly equivalente ao programa em C do exemplo anterior.