MICROCONTROLADORES PIC - TEORIA - PARTE 2

RESET, CLOCK, ALIMENTAÇÃO E SET DE INSTRUÇÕES


O OSCILADOR DO PIC

O oscilador ou clock do PIC16F84 pode ser configurado de 4 maneiras distintas, dependendo do uso. Esta configuração é feita via software e é aceita pelo microcontrolador durante sua gravação. O clock determinará a velocidade de operação do microcontrolador. Atualmente o PIC16F84 é distribuído com clock’s de 4MHz, 10MHz e 20MHz. Devemos escolher a freqüência máxima de operação do microcontrolador de acordo com as tarefas que o mesmo irá executar. Na grande maioria dos projetos a versão de 4MHz é mais que suficiente. A figura abaixo mostra os modos possíveis de oscilação.



  • Oscilador RC – O microcontrolador PIC pode oscilar com o uso de uma rede RC. Nesta configuração a velocidade de operação do PIC não é grande e também não é muito precisa, mas para executar tarefas que não necessitem de precisão no “clock” e de grande velocidade de operação, esta opção é a mais simples e pode ser utilizada.

  • Oscilador LP – Esta opção permite ao PIC utilizar um cristal de baixa potência. Sua operação e configuração são iguais ao modo XT.

  • Oscilador XT – Nesta opção o PIC utiliza um cristal comum para realizar seu clock. Esta configuração é a mais utilizada, sendo necessário apenas um cristal e dois capacitores cerâmicos ligados ao PIC.

  • Oscilador HS – A configuração HS deve ser utilizada com cristais ou ressonadores de alta freqüência. Geralmente clock’s maiores que 8MHz utilizam esta configuração.

  • Oscilador externo – Também podemos utilizar um oscilador externo. Neste caso o sinal de clock é inserido no pino OSC1/CLKIN. O pino OSC2/CLKOUT deve ficar aberto (sem conexão).

Na tabela abaixo temos um demonstrativo das freqüências de “clock” alcançadas para as configurações LP/XT/HS. Vale salientar que o PIC divide o clock internamente por 4. Por exemplo, com um cristal de 4MHz o PIC terá um tempo de 1 micro segundo para cada ciclo de máquina. Apesar desta divisão, a velocidade ainda é boa se comparada a outros microcontroladores como 0 8051 (com divisão por até 12), já que para a maioria das instruções o consumo é de apenas um ciclo de máquina.

Tabela – Relação modo/freqüência/capacitores

Modo

Freqüência

Capacitores recomendados

LP

32KHz

200KHz

68pF – 100pF

15pF – 33pF

XT

2MHz – 4MHz

15pF – 33pF

HS

4MHz – 20Mhz

15pF – 33pF


O RESET DO PIC

O PIC possui internamente circuitos que controlam o que chamamos de Power-on reset. Basicamente isso significa que o microcontrolador necessita de poucos (ou nenhum) componentes externos para realizar o start-up. Sempre que ligamos um circuito com o PIC ele aguardará até que a tensão se estabilize para iniciar qualquer processamento. Isso evita que o microcontrolador trave logo no inicio e também economiza espaço na PCI (placa de circuito impresso).

Você necessita apenas de um único componente para realizar o reset do microcontrolador durante o start-up: um resistor, ligado entre o pino de reset e o VCC, com valores entre 560R e 2k2  é mais que suficiente. Você poderá ainda inserir uma chave para reset manual no PIC, ligada entre o pino de reset e o “terra”. Veja a figura abaixo.




Agora você já pode dizer que conhece o clock e também o reset do PIC e poderá assim entender melhor os circuitos a serem apresentados a partir daqui. Note a simplicidade do circuito da figura abaixo. Ele utiliza pouquíssimos componentes: um cristal de 4MHz, dois capacitores cerâmicos de 33pF e um resistor de 1k. Esta configuração será adotada na maioria dos exercícios que serão propostos.



ALIMENTAÇÃO PARA O PIC

A alimentação do PIC pode é feita, geralmente, com uma tensão de 5 V. Para a tolerância, devemos adotar o padrão TTL com a alimentação variando +/- 10% máximos.

Também é possível utilizar tensões de 2.7 V a 3.3 V para alimentar um PIC. Porém isto deve estar previsto para a versão e a mesma só é utilizada em equipamentos portáteis de baixo consumo. Neste caso é recomendável que o clock não ultrapasse 100KHz, para um melhor consumo.


SET DE INSTRUÇÕES

O set de instruções da família PIC16F é pequeno, mas muito poderoso. Ele é composto por 35 instruções e estas são comuns na família 16F, o que permite uma fácil adaptação para outros microcontroladores da mesma família. Os opcode’s são formados por 14 bits, o que permite ao microcontrolador ler em um único ciclo de máquina a maioria das instruções de programa, permitindo um aumento significativo na velocidade de processamento e também na redução do espaço de memória a ser utilizado pelo programa. Na tabela abaixo temos o set de instruções, devidamente comentado.

Para um melhor entendimento da tabela, utilize a seguinte notação:

  • (f) Endereço do registrador

  • (d) “1” para resultado em (f) ou “0” para resultado em (w)

  • (b) bit a ser modificado

  • (k) valor (1 byte) em binário, octal, hexadecimal ou ASCII

  • C” – bit carry no registro Status

  • Z” – bit zero no registro Status

  • DC” – bit carry/borrow no registro Status

Tabela – Set de instruções do PIC16F84

Instrução


Descrição

Ciclos

Status afetado

Instruções com registradores em nível de Bytes

ADDWF

f,d

Soma o conteúdo do registro W com o conteúdo de um registrador F qualquer

1

C,DC,Z

ANDWF

f,d

Operação “E” entre o conteúdo do registro W e conteúdo de um registro F qualquer

1

Z

CLRF

f

Limpa o conteúdo de um registrador F qualquer

1

Z

CLRW

-

Limpa o conteúdo do registrador W

1

Z

COMF

f,d

Complementa o conteúdo de um registrador F qualquer

1

Z

DECF

f,d

Decrementa o conteúdo de um registrador F qualquer

1

Z

DECFSZ

f,d

Decrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero”

1(2)

-

INCF

f,d

Incrementa o conteúdo de um registrador F qualquer

1

Z

INCFSZ

f,d

Incrementa o conteúdo de um registrador F qualquer, pula próxima instrução se “zero”

1(2)

-

IORWF

f,d

Operação “OU” entre o conteúdo do registro W e conteúdo de um registro F qualquer

1

Z

MOVF

f,d

Move o conteúdo de um registrador F qualquer

1

Z

MOVWF

f

Move o conteúdo do registro W para um registrador F qualquer

1

-

NOP

-

Consome um ciclo, sem executar nada

1

-

RLF

f,d

Gira a esquerda o conteúdo de um registrador F qualquer, considerando o “Carry”

1

C

RRF

f,d

Gira a direita o conteúdo de um registrador F qualquer, considerando o “Carry”

1

C

SUBWF

f,d

Subtraí o conteúdo do registro W com o conteúdo de um registrador F qualquer

1

C,DC,Z

SWAPF

f,d

Troca os “nibble’s” de um registrador qualquer

1

-

XORWF

f,d

Operação “OU Exclusivo” entre o conteúdo do registro W e conteúdo de um registro F qualquer

1

Z

Instruções com registradores em nível de Bit

BCF

f,b

Zera um bit de um registrador F qualquer

1

-

BSF

f,b

Seta um bit de um registrador F qualquer

1

-

BTFSC

f,b

Testa um bit de um registrador F qualquer, pula próxima instrução se igual a zero

1(2)

-

BTFSS

f,b

Testa um bit de um registrador F qualquer, pula próxima instrução se igual a “1”

1(2)

-

Operações com Literais e de controle

ADDLW

k

Soma o valor “k” ao registrador W

1

C,DC,Z

ANDLW

k

Operação “E” entre o valor “k” e o registrador W

1

Z

CALL

k

Chama uma sub-rotina representada por “k”

2

-

CLRWDT

-

Limpa o WatchDog Timer

1

TO,PD

GOTO

k

Desvia para o endereco representado por “k”

2

-

IORLW

k

Operação “OU” entre o valor “k” e o registrador W

1

-

MOVLW

k

Move o valor “k” para o registrador W

1

-

RETFIE

-

Retorno de uma interrupção

2

-

RETLW

k

Retorno de uma sub-rotina com valor “k” no registrador W

2

-

RETURN

-

Retorno de uma sub-rotina

2

-

SLEEP

-

Entra em modo “Standby”

1

TO,TP

SUBLW

k

Subtraí o valor “k” do registrador W

1

C,DC,Z

XORLW

k

Operação “OU Exclusivo” entre o valor “k” e o registrador W

1

Z



CONCLUSÃO

Estudar é preciso! Sem uma boa base teórica não se vai longe. Espero que ela ajude tanto aquele que busca conhecimento quanto aquele que se acostumou com o "Control-Chupe" (Control-C, Control-V e olha que lindo... fui eu que fiz!!!! ...cara de madeira!!!).


Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.