Microcontroladores pic

Disponível somente no TrabalhosFeitos
  • Páginas : 14 (3297 palavras )
  • Download(s) : 0
  • Publicado : 7 de abril de 2012
Ler documento completo
Amostra do texto
m icrocontroladores PIC

Temporizadores

Temporizadores
Os temporizadores deste PIC, podem ser descritos sucintamente. Há apenas três temporizadores/contadores
totalmente independentes, mas dados como TMR0, TMR1 e TMR2. Mas não tão simples quanto isso.

Temporizador TMR0
O temporizador TMR0 permite uma panóplia de aplicações práticas. É bastante conveniente, e simples, de
usar, paragerar pulsos de duração arbitrária, medição do tempo, ou para contar pulsos externos. Isto tudo
quase sem limitações.

O TMR0 é um temporizador/contador de 8 bits, com as seguintes funcionalidades:



Temporizador/contador de 8 bit;



Divisor de 8 bit, partilhado com o Watchdog;



Fonte de relógio interna, ou externa, programavel;



Interrupção por fim de contagem (255 -> 0);•

Selecção do flanco do relógio externo.

A figura abaixo representa o TMR0 com todos os bits que determinam a sua operação. Estes bits são armazenados no registo OPTION_REG.

ant ónio sé rgio se na
ww w.se na en g.com :: pr ojec t os e s oluç ões em ele c t r ó n i c a
+ 351 .96 70 33 20 9

93

m icrocontroladores PIC

Temporizadores

Temporizador TMR0

Registo OPTION_REGRBPU - Bit de habilitação dos Pull-ups da PORTB
0 - Os pinos da PORTB podem ser ligados a resistências de Pull-up
1 - As resistências de pull-up estão desactivadas

ant ónio sé rgio se na
ww w.se na en g.com :: pr ojec t os e s oluç ões em ele c t r ó n i c a
+ 351 .96 70 33 20 9

94

m icrocontroladores PIC

Temporizadores

INTEDG - Bit de selecção do flanco da Interrupção
0 -Interrupção no flanco descendente no pino INT
1 - Interrupção no flanco ascendente no pino INT

T0CS - Bit de selecção do relógio do TMR0
0 - Relógio interno (Fosc/4)
1 - Relógio através dos pulsos no pino RA4

T0SE - Bit de selecção do flanco de incrementação do TMR0
0 - Incrementa no flanco ascendente no pino RA4
1 - Incrementa no flanco descendente no pino RA4

PSA - Bit de atribuição doDivisor
0 - Divisor atribuido ao TMR0
1 - Divisor atribuido ao Watchdog

PS2, PS1, PS0 - Bit de selecção da taxa de divisão


A taxa de divisão é ajustada, combinando estes três bits. Como se pode ver na tabela abaixo, a mesma
combinação dos bits, atribui diferentes taxas para o TMR0 e para o Watchdog, respectivamente.
PS2
0
0
0
0
1
1
1
1

PS1
0
0
1
1
0
0
1
1

PS0
0
10
1
0
1
0
1

TMR0
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256

WDT
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128

A função do bit PSA, é descrita nas duas figuras abaixo:

ant ónio sé rgio se na
ww w.se na en g.com :: pr ojec t os e s oluç ões em ele c t r ó n i c a
+ 351 .96 70 33 20 9

95

m icrocontroladores PIC

Temporizadores

Função do bit PSA = 0

Função do bitPSA = 1

Como se vê, o estado lógico do bit PSA determina qual a atribuição do divisor: se para o TMR0, se para o
Watchdog.

ant ónio sé rgio se na
ww w.se na en g.com :: pr ojec t os e s oluç ões em ele c t r ó n i c a
+ 351 .96 70 33 20 9

96

m icrocontroladores PIC

Temporizadores

Também, é de valor acrescentar:



Quando o divisor é atribuido ao TMR0, qualquer escrita nomesmo vai também limpar o divisor;



Quando o divisor é atribuido ao Watchdog, a instrução CLRWDT vai limpar ambos o divisor e o WDT;



Escrever para o registo TMR0, usado como temporizador, não dá o início de qualquer contagem, mas sim
após dois ciclos de relógio. Então é necessário ajustar o valor escrito no registo TMR0;



Quando o microcontrolador é posto em modo Sleep, ooscilador é desligado. O overflow (fim de contagem,
255->0) não pode acontecer, pois não há pulsos para contar. É por esta razão que, a interrupção por overflow do TMR0, não pode “acordar” o microcontrolador;



Quando usado como contador de pulsos externos, sem divisor, a duração mínima do pulso, ou pausa,
deverá ser de 2 Tosc + 20ns. Tosc é o periodo do oscilador interno;



Quando...
tracking img