Guia de Timers e Pinagem do Microcontrolador 8051
Classificado em Eletrônica
Escrito em em
português com um tamanho de 6,56 KB
Modos de Operação dos Timers/Counters
Modo 0: O registro de contagem é configurado como um registro de 13 bits. Quando se faz a transição do valor máximo de contagem — (THx.7 THx.6 ... THx.1 THx.0 TLx.4 TLx.3 ... TLx.0) = 1111111111111 — para zero, é ativada a flag de interrupção (TF0, para x = 0 ou TF1, para x = 1).
Modo 1: É análogo ao modo 0; porém, neste caso, utilizam-se os 16 bits do registro de contagem (par TH/TL, com THx.7 ... THx.0 TLx.7 ... TLx.0); isto é, a flag de interrupção é ativada quando se faz a transição de FFFFH para 0000H em TH/TL. Num ciclo de contagem, podem detectar-se até 65.536 eventos (contagem de 0 a 65.535).
Modo 2: O registro de contagem é configurado como um registro de oito bits. A existência de overflow em TL (oito bits) provoca a ativação da flag de interrupção e a recarga automática deste registro com o conteúdo de TH. Isto é, só é possível contar até 256 eventos; porém, a execução de instruções específicas para reiniciar ciclos de contagem é desnecessária.
Modo 3: Quando o Timer/Counter 0 é programado para funcionar no modo 3, o par de registros TH0/TL0 é configurado como um conjunto de dois registros independentes. As flags TF0 e TF1 são controladas pelos registros de contagem do timer 0, respectivamente, TL0 e TH0. O timer 1 fica disponível para controlar algumas operações, como a escolha do ritmo de transmissão de dados através do porto série. O controle das flags de interrupção processa-se do modo seguinte:
- O timer 0 funciona como no modo 2, mas sem recarga automática; isto é, quando existe overflow em TL0, apenas é ativada a flag TF0.
- A flag TF1 é ativada quando existe overflow em TH0 (contagem com oito bits) e este registro é incrementado ao ritmo de 1/12 da frequência do oscilador, quando for TR1 = 1; isto é, os eventos que provocam o incremento de TH0 são transições do sinal TR1 · relog. O símbolo "." representa a função AND lógico e "relog" é um sinal (trem de impulsos) com frequência igual a fosc/12.
Em qualquer dos modos de funcionamento permitidos, a contagem de eventos nos registros TH e TL pode ser controlada interna ou externamente. No modo de controle interno, a contagem é desbloqueada por software quando se impõem as condições TRx = "1" e Gate = "0"; no modo de controle externo, a contagem é desbloqueada mediante a imposição do estado Gate = "1" por software e do nível low no pino \INTx por hardware. Ambos os modos de controle — interno e externo — podem ser utilizados independentemente de se contarem eventos detectados num pino (T0 ou T1) ou transições do sinal acima designado por relog.
Pinagem e Funções dos Pinos
- VSS: Ligação à massa.
- VCC: Alimentação.
- XTAL1 e XTAL2: Entrada e saída do inversor do oscilador interno.
- RST: Entrada de reset, ativada no estado high.
- ALE (Address Latch Enable): Saída que suporta os impulsos gerados pelo processador, assinalando a validação dos oito bits menos significativos dos endereços em operações de acesso à memória externa. Também pode ser usada para excitar entradas de clock de periféricos.
- \PSEN (Program Store ENable): Saída usada para aceder à memória externa de programa; esta memória é acedida quando surgem impulsos (nível low) naquela linha.
- EA (External Access enable): Entrada que permite selecionar o bloco de memória de programa (interna ou externa) com endereços baixos (0000H a 1111H). Nas versões do processador que possuem memória de programa interna, esta entrada deve ligar-se a Vcc quando se deseja usar aquela memória, e à massa quando se pretende utilizar memória externa.
- P0.7 a P0.0: Porto 0, de entrada e saída de dados, bidirecional. Este porto não está disponível quando se usa memória de programa externa, pois os seus pinos são utilizados para transferir dados (D7 a D0 do data bus) e endereços (A7 a A0 do address bus). Em operações de acesso à memória externa de programa ou de dados, os endereços e os dados são multiplexados no domínio do tempo; a desmultiplexagem é realizada no exterior do processador em dispositivos controlados pela saída ALE.
- P1.7 a P1.0: Porto 1, bidirecional. É o único porto cujos pinos são dedicados exclusivamente para entrada e saída de dados.
- P2.7 a P2.0: Porto 2, bidirecional que, nas operações de acesso à memória externa, suporta os oito bits mais significativos do endereço (A15 a A8).
- P3.7 a P3.0: Porto 3, bidirecional. Em alternativa, todos os pinos deste porto podem ser usados para fins específicos:
- RxD (P3.0): Entrada de dados no modo de transmissão série.
- TxD (P3.1): Saída de dados no modo de transmissão série.
- \INT0 (P3.2): Entrada de excitação da interrupção externa 0.
- \INT1 (P3.3): Entrada de excitação da interrupção externa 1.
- T0 (P3.4): Entrada de excitação do Timer 0.
- T1 (P3.5): Entrada de excitação do Timer 1.
- \WR (P3.6): Saída de controle para operações de escrita em memória externa.
- \RD (P3.7): Saída de controle para operações de leitura de memória externa.
Todos os portos são bidirecionais e podem ser usados como entradas ou saídas; as operações de transferência de dados podem processar-se bit a bit ou byte a byte. Contudo, convém notar que a utilização de qualquer linha de um porto como entrada implica que o último valor escrito no respectivo latch interno tenha sido "1". Todos os portos, exceto o P0 (que apresenta uma configuração do tipo open-drain), apresentam as saídas ligadas a Vcc através de pull-ups internos e podem excitar até quatro entradas do tipo LS-TTL (oito, no caso do Porto 0).