manual de tecnologia mecanica 2° edição brasileira

158
19/2/2008 1 Microcontrolador PIC Alexandre Cunha Oliveira Petrolina Abril de 2007

Upload: patricio-rech

Post on 22-Mar-2016

230 views

Category:

Documents


4 download

DESCRIPTION

manual de tecnologia mecanica 2° edição brasileira

TRANSCRIPT

Page 1: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 1

Microcontrolador PIC

Alexandre Cunha OliveiraPetrolina Abril de 2007

Page 2: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 2

Microcontrolador PIC

X

Microcontrolador x Microprocessador

Page 3: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 3

Microcontrolador PIC

Microcontrolador PIC – Descrição GeralUtiliza arquitetura Harvard (RISC);

Permite interrupções de origem interna e externa;

O pipeline permite execuções de instruções em um

ciclo, exceto os desvios;

Possui 35 instruções;

Possui blocos periféricos internos.

Page 4: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 4

Microcontrolador PIC

Arquiteturas

Os microcontroladores com arquitetura Havard são chamados de RISC (Reduced Instruction Set Computer)

Os microcontroladores com a arquitetura de Von Neumann são também chamados CISC (Complex Instruction Set Computer)

Page 5: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 5

Microcontrolador PIC

Arquitetura HavardCapacidade de processamento maior, sem

necessidade de elevar a freqüência de clock da CPU.

Separação das memórias de dados e programa: Possibilidade de representar instruções por palavras de mais que 8 bits (Ex 14bits – PIC)

Busca e execução simultânea de instruções.

Page 6: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 6

Microcontrolador PIC

Diagrama de Blocos

Page 7: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 7

Microcontrolador PIC

Unidade Central de ProcessamentoRealiza a extração das instruções, decodificação e

execução.

Page 8: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 8

Microcontrolador PIC

Unidade Lógica AritméticaExecuta as operações de adição, subtração, desloca-

mento e operações lógicas. O PIC 16F877 possui uma ULA de 8bits.

Page 9: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 9

Microcontrolador PIC

Registrador de Status (Estado)

bit 0 C (Carry) Transporte

bit 1 DC (Digit Carry) Transporte de dígito

bit 2 Z (bit Zero) Indicação de resultado igual a zero

bit 3 PD (Bit de baixa de tensão – Power Down)

Page 10: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 10

Microcontrolador PIC

Registrador de Status (Estado)bit 4 TO Time-out (transbordo do Watchdog)

bits 5 e 6 RP1:RP0 (bits de seleção de banco de registros da RAM) – Endereçamento direto.

11 = banco de registros 310 = banco de registros 201 = banco de registros 100 = banco de registros 0

bit 7 IRP (Bit de seleção de banco de registros) -Endereçamento indireto.

1 = bancos 2 e 3 (endereços de 100h a 1FFh)0 = bancos 0 e 1 (endereços de 00h a FFh)

Page 11: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 11

Microcontrolador PIC

Registrador Option

bits 0 a 2 PS0, PS1, PS2 (bits de seleção do divisor Prescaler) - Estes três bits definem o fator de divisão do prescaler.

Page 12: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 12

Microcontrolador PIC

Registrador Option

bit 3 PSA (Bit de Atribuição do Prescaler) – Atribuição do prescaler.1 = prescaler atribuído ao watchdog;0 = prescaler atribuído ao temporizador TMR0.

Page 13: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 13

Microcontrolador PIC

Registrador Option

Page 14: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 14

Microcontrolador PIC

Registrador Optionbit 4 T0SE (bit de seleção de borda ativa em TMR0) –Sinal através do pino RA4/TOCK1.1 = borda de descida;0 = borda de subida.

bit 5 TOCS (bit de seleção da fonte de clock em TMR0)1 = sinais externos (RA4/TOCKI);0 = ¼ do clock interno.

Page 15: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 15

Microcontrolador PIC

Registrador Optionbit 6 INDEDG (bit de seleção da borda de interrupção)– Interrupção através do pino RB0/INT.1 = borda de subida;0 = borda de descida.

bit 7 RBPU (Habilitação dos pull-up nos bits da porta B)1 = resistências de “pull-up” desligadas;0 = resistências de “pull-up” ligadas.

Page 16: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 16

Microcontrolador PIC

Portas A, B, C, D e E

Bit do registrador TRISx = 1 → pino da porta x será uma entrada;Bit do registrador TRISx = 0 → pino da porta x será uma saída;onde x =A, B, C, D, E, para o PIC 16F877.

Page 17: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 17

Microcontrolador PIC

Configuração da Porta A

Pinos 0, 1, 2, 3 e 4 da porta A são declarados como entradas.

Resumo dos registradores associados a porta A

Page 18: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 18

Microcontrolador PIC

Timer

Page 19: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 19

Microcontrolador PIC

Timer 0Contador/Timer de 8 bits;Registrador de contagem de escrita e leitura;Pré-escalonador (divisor de freqüência)

programável;Utiliza sinal de clock interno ou externo;Gera interrupção quando a contagem muda de FF

para 00;Permite selecionar o tipo de transição quando usa

clock externo (Borda de subida ou descida).

Page 20: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 20

Microcontrolador PIC

Timer 0# Modos de contagem

Modo timer - Incrementa a cada ciclo de instrução (sem pré-escalonador).

Modo de contagem - Incrementará a cada subida ou descida do sinal no pino RA4/TOCKL (borda definida pelo bit T0SE - bit 4 do Reg. OPTION).

Registradores associados:

Page 21: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 21

Microcontrolador PIC

Diagrama de Blocos – Timer 0

Page 22: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 22

Microcontrolador PIC

Timer 1Contador/Timer ‘ 16 bits (dois registradores de 8 bits (TMR1H e TMR1L);O par de registradores (TMR1H e TMR1L) incrementa de 0000h a FFFFh e retorna a 0000h (overflow).

# Modos de Operação:Como timer: Timer 1 incrementa a cada ciclo de instrução;Como contador: Timer 1 incrementa a cada transição do sinal de clock externo.

Page 23: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 23

Microcontrolador PIC

Timer 1O modo de operação é determinado pelo bit de seleção de clock, TMR1CS (bit 1 do Reg. T1CON).

Bit 0 (bit TMR1ON – bit de ativação do Timer 1)1 = Timer 1 ativado0 = Timer 1 desativado;

Page 24: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 24

Microcontrolador PIC

Timer 1Bit 1 (bit TMR1CS – bit que seleciona a fonte de clock do Timer 1)1 = Sinal de clock externo (pino RC0/T1OSO/T1CKI (contagem ocorre na borda de subida do sinal) 0 = Sinal interno de clock (Fosc/4).

Bit 2 (bit T1SYNC – bit de sincronização do clock externo)TMR1CS =1

1 = Não sincroniza sinal de clock externo 0 = Sincroniza sinal de clock externo.

TMR1CS =0Não tem efeito

Page 25: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 25

Microcontrolador PIC

Timer 1Bit 3 (bit T1OSCEN– bit de habilitação do oscilador interno do Timer 1) configura-se o PIC para operar com oscilador interno. O mesmo gera um sinal com uma freqüência de ≈ 200KHz (a 4MHz a depender do PIC). 1 = oscilador habilitado0 = oscilador desligado (elimina consumo de energia)

Bits 5-4 (bits de seleção do pré-escalonador do sinal da entrada de clock) –

11 = Escalonamento de 1:810 = Escalonamento de 1:401 = Escalonamento de 1:200 = Escalonamento de 1:1

Page 26: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 26

Microcontrolador PIC

Timer 1Bits 7-6 (bits não usados – lidos como 0)

Page 27: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 27

Microcontrolador PIC

Timer 1Registradores associados ao Timer 1 (modos Timer/Contador)

Page 28: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 28

Microcontrolador PIC

Timer 2Timer de 8 bits com um pré-escalonador e pós-

escalonador. Pode ser usado como a base de tempo no modo PWM

dos módulos CCP. TMR2 é um registra-

dor de escrita e leitura e é apagado em qual-quer evento de reset.

Page 29: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 29

Microcontrolador PIC

Timer 2

Bits 1-0 (bit T2CKPS1 e T2CKPS0 – bit de seleção do pré-escalonador) 00 = Escalonamento de 101 = Escalonamento de 41x = Escalonamento de 16

Registrador de Controle do Timer 2 – T2CON (endereço 12h)

Page 30: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 30

Microcontrolador PIC

Timer 2Bit 2 (bit TMR2ON – bit de ativação do Timer 2).1 = Timer 2 ativado0 = Timer 2 desativado;

Bits 6-3 (bits TOUTPS3:TOUTPS0 – bits de seleção do pós-escalonador) –

0000 = Escalonamento de 10001 = Escalonamento de 20010 = Escalonamento de 3

•••

1110 = Escalonamento de 151111 = Escalonamento de 16

Page 31: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 31

Microcontrolador PIC

Timer 2Bit 7 (bit não usado – lido como 0)

Registradores associados com o Timer 2 (modos Timer/Contador)

Page 32: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 32

Microcontrolador PIC

Captura/Comparação/PWMOs módulos CCP (Captura/Comparação/PWM) são formados por um registrador de 16 bits que pode operar como:

Registrador de captura de 16 bits;Registrador de comparação de 16 bitsRegistrador de “duty-cycle” no modo PWM

Mestre/Escravo.

Page 33: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 33

Microcontrolador PIC

Captura/Comparação/PWMMódulo CCP1O registrador CCP do módulo CCP1 (CCPR1) éformado por dois registradores de 8 bits: CCPR1L e CCPR1H.O registrador CCP1CON controla a operação do CCP1.“Special Event Trigger” é gerado quando no modo comparação ocorre a igualdade entre o CCPR1 e o registrador de comparação.

No “Special Event Trigger” o conteúdo do Timer 1 éresetado.

Page 34: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 34

Microcontrolador PIC

Captura/Comparação/PWMMódulo CCP2O registrador CCP do módulo CCP2 (CCPR2) éformado por dois registradores de 8 bits: CCPR2L e CCPR2H. O registrador CCP2CON controla a operação do CCP2. O “special event trigger” é gerado no modo comparação quando o conteúdo do registrador de contagem do Timer 1 iguala ao conteúdo do registrador de comparação.

“Special Event Trigger” reseta o Timer 1 e pode iniciar uma conversão A/D.

Page 35: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 35

Microcontrolador PIC

Captura/Comparação/PWMModo de operação do módulo CCP e recursos de Timer necessários

Interação entre os módulos CCP

Page 36: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 36

Microcontrolador PIC

Captura/Comparação/PWMRegistradores de Controle CCP1CON e CCP2CON (endereços 17h e 1Dh)

Bits 3-0 (bit CCPxM3: CCPxM0 – bits de seleção de modo de operação) – Estes bits selecionam o modo como operarão os blocos CCP1 e CCP2.

0000 = Modos Captura/Comparação/PWM desligados (reseta módulo CCPx )

Page 37: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 37

Microcontrolador PIC

Captura/Comparação/PWM0100 = Modo captura, a cada 1 transição negativa

(1→0);0101 = Modo captura, a cada 1 transição positiva (0→1);0110 = Modo captura, a cada 4 transições positivas

(1→0);0111 = Modo captura, a cada 16 transições positivas

(1→0);1000 = Modo comparação, seta pino de saída (bit

CCPxIF é setado);1001 = Modo comparação, reseta pino de saída (bit

CCPxIF é setado);1010 = Modo comparação, gera interrupção (bit CCPxIF

é setado, pino CCPx não é afetado);

Page 38: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 38

Microcontrolador PIC

Captura/Comparação/PWM1011 = Modo comparação, ativa “Special Event

trigger”(bit CCPxIF é seta, pino CCPx não é afetado); CCP1 reseta TMR1; CCP2 reseta TMR1 e inicia uma conversão A/D (se módulo A/D habilitado);

11xx = Modo PWM.Bits 5-4 (bits CCPxX:CCPxY – bits menos significativos do PWM) – Estes bits representam os dois bits menos significativos do valor de duty-cycle do sinal PWM.Modo Captura: Não usadoModo Comparação: Não usadoModo PWM: Dois bits LSB do duty-cycle do sinal PWM. Os oito MSB’s são gravados no registrador CCPRxL.

Page 39: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 39

Microcontrolador PIC

Captura/Comparação/PWMModo CapturaO valor de 16 bits do registrador TMR1 é copiado para os registradores CCPR, quando um dos eventos ocorre no pino RC2/CCP1 e/ou RC1/CCP2 (PIC16F877) :

A cada borda de descida do sinal no pino RC2, RC1 (PIC 16F877);

A cada borda de subida do sinal no pino RC2, RC1 (PIC 16F877);

A cada 4 bordas de subida do sinal no pino RC2, RC1 (PIC 16F877);

A cada 16 bordas de subida do sinal no pino RC2, RC1 (PIC 16F877);

Page 40: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 40

Microcontrolador PIC

Captura/Comparação/PWMModo Captura

Quando ocorre o evento de captura, o flag CCP1IF (bit 2 do Reg. PIR1) é setado;

Se uma outra captura ocorrer antes que o valor no registrador CCPR1 for lido, o valor anterior será perdido;

No modo captura os pinos RC2/CCP1, RC1/CCP2 devem ser configurados como uma entrada, setando o bit 1 e 2 do registrador TRISC;

O Timer 1 deve estar operando no modo timer ou no modo contador com sincronização do sinal de clock externo com o clock interno.

Page 41: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 41

Microcontrolador PIC

Captura/Comparação/PWMModo Captura – Diagrama de Blocos

Page 42: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 42

Microcontrolador PIC

Captura/Comparação/PWMModo ComparaçãoO valor do registrador CCPR1 (16 bits) e/ou CCPR2 (16 bits) é (são) constantemente comparado(s) com o valor do registrador TMR1.

Quando os valores se igualam, o pino RC2/CCP1 e/ou RC1/CCP2 é (são):

Ativado(s);Desativado(s);Permanece(m) inalterado(s).

Simultaneamente o flag CCP1IF é setado, gerando uma interrupção, se habilitada.

Page 43: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 43

Microcontrolador PIC

Captura/Comparação/PWMModo ComparaçãoNo modo comparação os pinos RC2/CCP1, RC1/CCP2 e RB3/CCP1 devem ser configurados como saídas.

No modo de comparação pode ser gerado um “Special Event Trigger”.

No módulo CCP1, reseta o par de registradores que forma o TMR1;

No módulo CCP2 reseta o par de registradores que forma o TMR1 e pode iniciar uma conversão A/D (se o módulo A/D está habilitado).

Page 44: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 44

Microcontrolador PIC

Captura/Comparação/PWMModo Comparação

Page 45: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 45

Microcontrolador PIC

Captura/Comparação/PWMRegistradores associados com o Capture, Compare e Timer 1

Page 46: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 46

Microcontrolador PIC

Captura/Comparação/PWMModo PWMO bloco CCPx produz um sinal PWM com uma resolução de até 10 bits.

Um sinal PWM é caracterizado pelo seu período e o “duty-cycle”, que corresponde ao tempo em que o sinal permanece em nível alto.

O período do sinal PWM é especificado pelo registrador PR2: Período PWM = [(PR2) + 1] • 4 • TOSC • (TMR2 prescale value).

Page 47: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 47

Microcontrolador PIC

Captura/Comparação/PWMModo PWMQuando TMR2 é igual a PR2, os seguintes eventos ocorrem:

O TMR2 é apagado;O pino CCP1 é setado (exceto se o duty-cycle do

PWM = 0%, quando o CCP1 não será setado);O PWM duty-cycle é copiado de CCPR1L para

CCPR1H.

O duty-cycle do PWM é definido escrevendo para o registrador CCPR1L (bits mais significativos) e para os bits 5 e 4 do registrador CCP1CON.

Page 48: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 48

Microcontrolador PIC

Captura/Comparação/PWMModo PWMDeterminação do duty-cycle em termos de tempo:Duty Cycle do PWM = (CCPR1L:CCP1CON<5:4>) •Tosc • (TMR2 prescale value)

O novo valor de duty-cycle só é atualizado no CCPR1H, quando os valores dos registradores PR2 e TMR2 coincidirem (ao fim do período PWM).

No modo PWM CCPR1H é um registrador apenas de leitura.

Page 49: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 49

Microcontrolador PIC

Captura/Comparação/PWMModo PWMPasso para ajustar o módulo CCP para funcionar no modo PWM:

Ajustar o período do sinal PWM, escrevendo um valor adequado no registrador PR2;

Ajustar o duty-cycle do sinal PWM, escrevendo um valor adequado para o registrador CCPR1L e para os bits 5 e 4 do registrador CCP1CON;

Configurar o pino RC2/CCP1, RC1/CCP2 como uma saída;Ajustar o valor do pré-escalonador e habilitar o Timer 2

configurando o registrador T2CON;Configurar o módulo CCP1 e/ou CCP2 para operação no modo

PWM;

Page 50: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 50

Microcontrolador PIC

Captura/Comparação/PWMModo PWM

Page 51: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 51

Microcontrolador PIC

Captura/Comparação/PWMRegistradores associados com o PWM e Timer 2

Page 52: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 52

Microcontrolador PIC

CONVERSOR A/DO módulo do conversor A/D possui 8 entradas

analógicas;Um sample-and-hold é conectada a entrada do

conversor A/D a partir de um multiplex 8 x 1; O conversor A/D gera uma palavra binária de 10 bits; O módulo A/D tem duas entradas de tensão de

referência (alta e baixa), selecionadas por software;O módulo conversor A/D pode operar com o PIC

estando no modo SLEEP (utiliza oscilador RC interno.

Page 53: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 53

Microcontrolador PIC

CONVERSOR A/DO conversor A/D possui quatro registradores:

Registrador do byte mais significado do resultado da conversão (ADRESH);

Registrador do byte menos significado do resultado da conversão (ADRESL);

Registrador de controle 0 (ADCON0);Registrador de controle 1. (ADCON1).

Quando a conversão é concluída, o resultado écarregado em ADRES, o bit GO/DONE (bit 2 do Reg. ADCON0) é resetado e o flag de interrupção, bit ADIF, ésetado.

Page 54: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 54

Microcontrolador PIC

CONVERSOR A/DOs canais de entrada analógicos devem ter seus

correspondentes bits TRIS ajustados para que os pinos das portas A e E se comportem como entradas.

Após o período de aquisição a conversão A/D pode ser iniciada conforme os seguintes passos:Configure o módulo A/D;

Configure os pinos de entrada analógica, as tensões de referência e os pinos de I/O digital (ADCON1);Selecione o canal de entrada analógica (ADCON0);Selecione a freqüência do sinal de clock do conversor A/D (ADCON0);Ative o módulo A/D;

Page 55: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 55

Microcontrolador PIC

CONVERSOR A/DConfigure a interrupção do módulo A/D (se desejado);

Reset o bit ADIF;Sete o bit ADIE;Sete o bit GIE;

Aguarde o tempo de aquisição requerido;Inicie a conversão;

Sete o bit GO/DONE (ADCON0);Aguarde o tempo de conversão ter transcorrido;Realize um POLLING no bit GO/DONE, verificando se o seu valor é zero (indicativo de fim de conversão A/D);ou aguarde pela interrupção gerada pelo módulo A/D ao fim da conversão;

Page 56: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 56

Microcontrolador PIC

CONVERSOR A/DLeia o par de registradores (ADRESH:ADRESL), resete o bit ADIF se a interrupção do conversor A/D está sendo utilizada;Para realizar uma nova conversão retorne ao passo 1 ou 2 (antes de uma nova conversão ser iniciada, deve ser aguardado um tempo de 2TAD, que é o tempo de conversão por bit, cujo valor é definido na tabela 1).

Page 57: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 57

Microcontrolador PIC

CONVERSOR A/DO conversor A/D necessita de no mínimo 12 TAD para

realizar uma conversão de 10 bits. A fonte do clock do conversor A/D é selecionada por software entre as possibilidades abaixo:

2Tosc;8Tosc;32Tosc;Oscilador RC interno.

Para uma conversão correta, o clock do conversor A/D deve ser selecionado para garantir um TAD mínimo de 1.6µs.

Page 58: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 58

Microcontrolador PIC

CONVERSOR A/DTAD x Máxima freqüência de conversão

Page 59: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 59

Microcontrolador PIC

CONVERSOR A/DO par de registradores ADRESH:ADRESL comporta 16

bits, assim, o valor convertido de 10 bits pode ser justificado a direita ou à esquerda (bit ADFM).

Os bits extras não utilizados são carregados com “0”(zeros).

Quando o módulo A/D não estiver sendo utilizado, os registradores ADRESH:ADRESL podem ser usados como dois registradores de propósito geral de 8 bits.

Page 60: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 60

Microcontrolador PIC

CONVERSOR A/DJustificação do resultado da conversão A/D

Page 61: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 61

Microcontrolador PIC

CONVERSOR A/DDiagrama de

blocos do conversor A/D

Page 62: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 62

Microcontrolador PIC

CONVERSOR A/DRegistrador ADCON0 - Controla a operação do módulo

A/D (endereço 1Fh).

Bit 0 (bit ADON – bit que ativa o conversor A/D) – Este bit ativa a operação do conversor A/D.

1 = conversor A/D ativado0 = conversor A/D desligadoBit 1 (bit não usado – lido como 0)

Page 63: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 63

Microcontrolador PIC

CONVERSOR A/DBit 2 (bit GO/– bit de status de conversão) – Este bit

indica se uma conversão iniciada já foi concluída.Se ADON =11 = conversão A/D em andamento0 = não há conversão A/D em andamento (esse bit é

automaticamente resetado quando a conversão A/D éconcluída).

Bits 5-3 (bits CHS2:CHS0 – bits de seleção de canal)– Estes bits selecionam a entrada analógica cujo sinal será convertido.

000 = canal 0, (RA0/AN0)001 = canal 1, (RA1/AN1)010 = canal 2, (RA2/AN2)

Page 64: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 64

Microcontrolador PIC

CONVERSOR A/D011 = canal 3, (RA3/AN3)100 = canal 4, (RA5/AN4)101 = canal 5, (RE0/AN5)110 = canal 6, (RE1/AN6)111 = canal 7, (RE2/AN7)

Bits 7-6 (bits ADCS1:ADCS0 – bits de seleção de clock) – Estes bits selecionam a fonte do sinal de clock para o conversor A/D.

00 = FOSC/201 = FOSC/810 = FOSC/3211 = FRC (clock derivado de um oscilador RC)

Page 65: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 65

Microcontrolador PIC

CONVERSOR A/DRegistrador ADCON1 – Configura a função dos pinos das

portas (A e E) (endereço 9Fh)

Bits 3-0 (bits PCFG3:PCFG0 – bits de controle de configuração pás portas A/D) – Este bits configuram os pinos analógicos das Portas A e E.

Page 66: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 66

Microcontrolador PIC

CONVERSOR A/D

Page 67: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 67

Microcontrolador PIC

CONVERSOR A/DBits 6-4 (bits não usados – lido como 0)

Bit 7 (bit ADFM – bit de seleção de formato do resultado da conversão A/D) – Este bit seleciona o formato de justificação do resultado gerado pelo conversor A/D.

1 = Justificação à direita. Os 6 bits mais significativos de ADRESH serão iguais a 0.

0 = Justificação à esquerda. Os 6 bits menos significativos de ADRESL serão iguais a 0.

Page 68: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 68

Microcontrolador PIC

CONVERSOR A/DRegistradores associados com o módulo do conversor

A/D

Page 69: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 69

Microcontrolador PIC

Comunicação SerialComunicação SerialA transmissão bit-serial converte a mensagem em um bit

por vez através de um canal. Os bits individuais são então rearranjados no destino

para compor a mensagem original.

Taxa de Transferência (Baud Rate)Velocidade com que os dados são enviados através de

um canal e é medido em transições elétricas por segundo (Hz).

Na norma EIA232, ocorre uma transição de sinal por bit, e a taxa de transferência e a taxa de bit (bit rate) são idênticas.

Page 70: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 70

Microcontrolador PIC

Comunicação SerialTransmissão Assíncrona x Transmissão SíncronaSistemas síncronos - Canais separados são usados para

transmitir dados e informação de tempo. O canal de temporização transmite pulsos de clock para

o receptor, que indica o instante de leitura do canal de dados.

Sincronização é garantida.

Page 71: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 71

Microcontrolador PIC

Comunicação SerialTransmissão Assíncrona x Transmissão SíncronaEm sistemas assíncronos, a informação trafega por um

canal único. Um oscilador preciso no receptor irá gerar um sinal de

clock interno que é igual (ou muito próximo) ao do transmissor.

Para o protocolo serial mais comum, os dados são enviados em pequenos pacotes de 10 ou 11 bits, dos quais 8 constituem a mensagem.

Quando o canal está em repouso, o sinal correspondente no canal tem um nível lógico ‘1’.

Page 72: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 72

Microcontrolador PIC

Comunicação SerialTransmissão Assíncrona x Transmissão SíncronaUm pacote de dados sempre começa com um nível

lógico ‘0’ (start bit) para sinalizar ao receptor que um transmissão foi iniciada.

O “start bit” inicializa um temporizador interno no receptor avisando que a transmissão começou e que serão necessários pulsos de clocks.

Seguido do start bit, 8 bits de dados de mensagem são enviados na taxa de transmissão especificada.

O pacote é concluído com os bits de paridade e de parada (“stop bit”).

Page 73: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 73

Microcontrolador PIC

Comunicação SerialTransmissão Assíncrona x Transmissão Síncrona

Page 74: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 74

Microcontrolador PIC

Comunicação SerialChecksum e Paridade

Ruídos e distúrbios elétricos momentâneos podem causar mudanças nos dados quando estão trafegando pelos canais de comunicação. Se o receptor falhar ao detectar isso, a mensagem recebida será incorreta. Se um erro pode ser sinalizado, pode ser possível pedir que o pacote com erro seja reenviado, ou prevenir que os dados sejam considerados corretos. Se uma redundância na informação for enviada, 1 ou 2 bits de erros podem ser corrigidos pelo hardware no receptor antes que o dado chegue ao seu destino.

Page 75: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 75

Microcontrolador PIC

Comunicação SerialChecksum e Paridade

O bit de paridade é adicionado ao pacote de dados com o propósito de detecção de erro. Paridade-par (“even-parity”): Bit de paridade éescolhido de modo que o número total de dígitos ‘1’dos dados + bit de paridade seja um número par. Na recepção recalcula-se a paridade e a compara com o bit de paridade recebido. Se houve mudança de bit, a paridade não irá coincidir, e um erro será detectado. Se um número par de bits for trocado, a paridade coincidirá e o dado com erro será validado.

Page 76: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 76

Microcontrolador PIC

Comunicação SerialChecksum e Paridade

Outro método de detecção de erro envolve o cálculo de um “checksum” quando mensagens com mais de um byte são transmitidas pelo canal de comunicação. Um número de checksum é adicionado a seqüência do pacote de dados de tal forma que a soma dos dados mais o checksum é zero. Na recepção os dados são adicionados pelo processador local. Se a soma do pacote der resultado diferente de zero, ocorreu um erro. Na ocorrência de erros é improvável (mas não impossível) que qualquer corrupção de dados resultem em checksum igual a zero.

Page 77: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 77

Microcontrolador PIC

Comunicação SerialMódulo USART do PICO módulo Transmissor Receptor Síncrono Assíncrono

Universal (USART) pode ser configurado como um sistema Full Duplex e opera segundo um padrão de comunicação serial como o RS232

O mesmo módulo pode ser configurado como um sistema Half Duplex síncrono.

O módulo USART pode ser configurado nos seguintes modos:Assíncrono (Full Duplex)Síncrono – Master (Half Duplex)Síncrono – Slave (Half Duplex)

Page 78: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 78

Microcontrolador PIC

Comunicação SerialO módulo é formado pelos seguintes blocos:

Gerador de Baud Rate;Circuito de Amostragem;Transmissor Assíncrono;Receptor Assíncrono.

Transmissor Assíncrono

Page 79: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 79

Microcontrolador PIC

Comunicação SerialReceptor Assíncrono

Page 80: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 80

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Transmissão

(End. 98H)

Bit 0 (bit TX9D– nono bit do dado transmitido) – Este bit pode representar um bit de paridade implementado por software.

Page 81: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 81

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Transmissão

(End. 98H)Bit 1 (bit TRMT – status do registrador de

deslocamento do transmissor da USART) – Este bit indica se o registrador de deslocamento do transmissor da USART está cheio ou vazio.

1 = Registrador de deslocamento vazio0 = registrador de deslocamento cheio

Bit 2 (bit BRGH – seleção de alta taxa de transmissão (High Baud Rate)) – Este bit seleciona uma taxa de transmissão (baud rate) alta.

No modo Assíncrono

Page 82: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 82

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Transmissão

(End. 98H)1 = Alta taxa de transmissão0 = Baixa taxa de transmissão.No modo Síncrono

Não usadoBit 3 (bit não usado, lido como 0)

Bit 4 (bit SYNC – bit de seleção do modo de operação da USART) – Este bit seleciona como a USART operará, no modo assíncrono ou síncrono.

1 = Modo síncrono0 = Modo assíncrono.

Page 83: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 83

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Transmissão

(End. 98H)Bit 5 (bit TXEN– bit de habilitação de transmissão) –

Este bit habilita o módulo de transmissão da USART.1 = Transmissão habilitada0 = Transmissão desabilitada.Nota: SREN/CREN tem prioridade sobre o bit TXEN

no modo síncrono

Bit 6 (bit TX9 – bit de habilitação da transmissão do nono bit) – Este bit habilita a transmissão do nono bit de dados.

1 = Seleciona transmissão de 9 bits0 = Seleciona transmissão de 8 bits.

Page 84: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 84

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Transmissão

(End. 98H)Bit 7 (bit CSRC – bit de seleção da fonte de clock

para a USART) – Este bit seleciona a fonte do sinal de clock quando a USART opera no modo síncrono.

Modo assíncronoNão usado

Modo Síncrono1 = Modo Mestre (clock gerado internamente pelo RG)0 = Modo escravo (clock externo).

Page 85: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 85

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)

Bit 0 (bit RX9D– nono bit do dado recebido) – Este bit pode representar um bit de paridade implementado por software.

Page 86: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 86

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)Bit 1 (bit OERR – bit de erro de “overrun”) – Setado

quando um segundo byte é gravado no registrador de recepção, antes do byte anterior ter sido lido.

1 = Erro de overrun (este bit pode ser apagado resetando o bit CREN)

0 = Não houve erro de overrun.Bit 2 (bit FERR – bit de erro de frame) – Este bit é

setado quando é detectado um erro de frame.1 = Erro de frame (pode ser atualizado lendo o

registrador RCREG e recepção do próximo byte válido

0 = Não houve erro de frame.

Page 87: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 87

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)Bit 3 (bit ADDEN – bit que habilita a detecção de

endereço) – Este bit permite utilizar o nono bit da palavra de dados para identificação de palavras de endereço (RX9 – 1).

Modo assíncrono, bit 9 habilitado 1 = Habilita detecção de endereço, habilita interrupção e

faz leitura do buffer de recepção quando RSR<8> ésetado

0 = Desabilita a detecção de endereço. Todos os bytes são recebidos e o nono bit pode ser usado como bit de paridade.

Page 88: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 88

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)Bit 4 (bit CREN – bit que habilita a recepção no

modo contínuo) – Este bit habilita a USART a receber de forma contínua dados seriais.

Modo Assíncrono1 = habilita recepção contínua0 = Desabilita recepção contínua.Modo Síncrono1 = habilita recepção contínua até o bit CREN ser

resetado (CREN tem prioridade sobre SREN)0 = Desabilita recepção contínua.

Page 89: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 89

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)Bit 5 (bit SREN– bit de habilitação de recepção byte-

a-byte) – Este bit habilita o módulo de recepção da USART a receber dados byte a byte.

Modo AssíncronoNão usado nesse modo

Modo Síncrono (Mestre)1 = habilita recepção byte-a-byte0 = Desabilita recepção byte-a-byte.Nota: Esse bit é resetado após a recepção do byteModo Síncrono (Escravo)

Não usado nesse modo

Page 90: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 90

Microcontrolador PIC

Comunicação SerialRegistrador de Controle e Status da Recepção (End.

18H)Bit 6 (bit RX9 – bit de habilitação da recepção do

nono bit) – Este bit habilita a recepção do nono bit de dados.

1 = Seleciona recepção de 9 bits0 = Seleciona recepção de 8 bits.Bit 7 (bit SPEN – bit de habilitação da porta serial) –

Este bit ativa ou desliga o bloco de comunicação serial.

1 = Porta serial habilitada (configura os pinos RC7/RX/DT e RC6/TX/CK como pinos da porta serial)

0 = Porta serial desabilitada.

Page 91: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 91

Microcontrolador PIC

Comunicação SerialRegistradores associados com a transmissão

assíncrona

Page 92: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 92

Microcontrolador PIC

Comunicação SerialRegistradores associados com a recepção

assíncrona

Page 93: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 93

Microcontrolador PIC

InterrupçõesMecanismo que torna possível responder a “estímulos”

externos ou internos.Através do registrador INTCOM pode-se habilitar as

interrupções de forma individual ou de forma global.

O PIC 16F87X tem as seguintes fontes de Interrupção:Interrupção externa (RB0/INT); Interrupção de Relógio (TM0);Interrupção da porta B (B4-B7);Interrupção por captura e comparação (CCP1 e 2);Interrupção da USART (buffer saída e entrada cheio);Interrupção CCP;

Page 94: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 94

Microcontrolador PIC

InterrupçõesO PIC 16F87X tem as seguintes fontes de Interrupção:

Estouro do relógio TMR1;Estouro do relógio TMR2;Fim de escrita EEPROM;Fim de Conversão A/D;Atividade na SPI ou I2C;Recebimento de dados na Porta Paralela Escrava;Colisão no barramento.

Page 95: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 95

Microcontrolador PIC

InterrupçõesRB0/INT – desencadeada com um impulso ascendente

ou descendente (bit INTDG no registrador OPTION) no pino INT (RB0).

Estouro do contador TMR0 – na passagem de FFh para 00h seta o bit TOIF no registrador INTCON (contador de tempo)

Pinos 4,5,6 e 7 da porta B – devem ser definidos previamente como entradas. A variação de entrada põe “1”no bit RBIF (INTCON). A interrupção pode ser habilitada/desabilitada pondo 1 ou 0 no RBIE (INTCON)

Interrupção por comparação – Pode ser habilitada através dos bits CMIE (reg PIE1<6>) e PEIE (reg INTCON<6>). Utiliza os comparadores C1 e C2

Page 96: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 96

Microcontrolador PIC

InterrupçõesInicialmente deve-se estabelecer quais interrupções

devem estar habilitadas bem como setar o bit GIE (reg INTCON<7>)

Comandos de retorno da interrupção:RETURN;RETLW;RETFIE (põe ‘1’ automaticamento no bit GIE,

permitindo novas interrupções).

Page 97: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 97

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCON

Bit 0 – Flag interrupção de mudança nos bits B4 a B71 – Pelo menos um bit mudou de estado0 – Nenhum bit mudou de estado

Bit 1 – Flag interrupção INT/RB01 – Interrupção externa ocorreu0 – Não ocorreu interrupção externa

Page 98: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 98

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCON

Bit 2 – Flag Timer 0 overflow1 – Contagem mudou de 00h para FFh0 – Não ocorreu overflow na contagem

Bit 3 – Habilita interrupção na mudança nos pinos B4 a B71 – Habilita a interrupção 0 – Desabilita a interrupção

Bit 4 – Habilita interrupção no pino INT/RB01 – Habilita a interrupção 0 – Desabilita a interrupção

Page 99: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 99

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCONBit 5 – Habilita interrupção de Overflow do Timer 01 – Habilita interrupção0 – Desabilita interrupção

Bit 6 – Habilita interrupção dos periféricos1 – Habilita todas as interrupções não mascaradas de periféricos0 – Desabilita todas as interrupções de periféricos

Bit 7 – Habilita interrupção global1 – Habilita todas as interrupções não mascaradas0 – Desabilita todas as interrupções

Page 100: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 100

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1

Bit 0 – Habilita interrupção de Overflow do Timer11 – Habilita interrupção0 – Desabilita interrupção

Bit 1 – Habilita interrupção por igualdade do TMR2 e PR21 – Habilita interrupção 0 – Desabilita interrupção

Page 101: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 101

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1Bit 2 – Habilita interrupção do bloco CCP11 - Habilita interrupção0 – Desabilita interrupção

Bit 3 – Habilita interrupção da SPI1 – Habilita interrupção0 – Desabilita interrupção

Bit 4 – Habilita interrupção de transmissão da USART1 – Habilita interrupção0 – Desabilita interrupção

Page 102: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 102

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1Bit 5 – Habilita interrupção de recepção da USART1 – Habilita interrupção0 – Desabilita interrupção

Bit 6 – Habilita interrupção do conversor A/D1 - Habilita interrupção0 – Desabilita interrupção

Bit 7 – Habilita interrupção da porta paralela escrava1 – Habilita interrupção0 – Desabilita interrupção

Page 103: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 103

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIR1

Registrador PIE2

Registrador PIR2

Page 104: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 104

Microcontrolador PIC

Interrupções - Circuito

Page 105: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 105

Microcontrolador PIC

Configuração Timer 0, 1, 2 e Watch-Dog

Page 106: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 106

Microcontrolador PIC

Registrador Option

bits 0 a 2 PS0, PS1, PS2 (bits de seleção do divisor Prescaler) - Estes três bits definem o fator de divisão do prescaler.

Page 107: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 107

Microcontrolador PIC

Registrador Option

bit 3 PSA (Bit de Atribuição do Prescaler) – Atribuição do prescaler.1 = prescaler atribuído ao watchdog;0 = prescaler atribuído ao temporizador TMR0.

Page 108: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 108

Microcontrolador PIC

Registrador Option

Page 109: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 109

Microcontrolador PIC

Registrador Optionbit 4 T0SE (bit de seleção de borda ativa em TMR0) –Sinal através do pino RA4/TOCK1.1 = borda de descida;0 = borda de subida.

bit 5 TOCS (bit de seleção da fonte de clock em TMR0)1 = sinais externos (RA4/TOCKI);0 = ¼ do clock interno.

Page 110: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 110

Microcontrolador PIC

Registrador Optionbit 6 INDEDG (bit de seleção da borda de interrupção)– Interrupção através do pino RB0/INT.1 = borda de subida;0 = borda de descida.

bit 7 RBPU (Habilitação dos pull-up nos bits da porta B)1 = resistências de “pull-up” desligadas;0 = resistências de “pull-up” ligadas.

Page 111: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 111

Microcontrolador PIC

Registrador OptionSETUP_TIMER_0()Sintax: setup_timer_0 ( mode)

Parâmetros: “mode” pode ser uma ou duas das constantes definidas no arquivo devices .h file. RTCC_INTERNAL, RTCC_EXT_L_TO_H or RTCC_EXT_H_TO_L,

RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64, RTCC_DIV_128, RTCC_DIV_256

Uma constante de cada grupo pode ser usada, unidas pelo operador |

Examples: setup_timer_0 (RTCC_DIV_2|RTCC_EXT_L_TO_H);

Page 112: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 112

Microcontrolador PIC

Timer 1O modo de operação é determinado pelo bit de seleção de clock, TMR1CS (bit 1 do Reg. T1CON).

Bit 0 (bit TMR1ON – bit de ativação do Timer 1)1 = Timer 1 ativado0 = Timer 1 desativado;

Page 113: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 113

Microcontrolador PIC

Timer 1Bit 1 (bit TMR1CS – bit que seleciona a fonte de clock do Timer 1)1 = Sinal de clock externo (pino RC0/T1OSO/T1CKI (contagem ocorre na borda de subida do sinal) 0 = Sinal interno de clock (Fosc/4).

Bit 2 (bit T1SYNC – bit de sincronização do clock externo)

TMR1CS =11 = Não sincroniza sinal de clock externo 0 = Sincroniza sinal de clock externo.

TMR1CS =0Não tem efeito

Page 114: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 114

Microcontrolador PIC

Timer 1Bit 3 (bit T1OSCEN– bit de habilitação do oscilador interno do Timer 1) configura-se o PIC para operar com oscilador interno. O mesmo gera um sinal com uma freqüência de ≈ 200KHz (a 4MHz a depender do PIC). 1 = oscilador habilitado0 = oscilador desligado (elimina consumo de energia)

Bits 5-4 (bits de seleção do pré-escalonador do sinal da entrada de clock) –

11 = Escalonamento de 1:810 = Escalonamento de 1:401 = Escalonamento de 1:200 = Escalonamento de 1:1

Page 115: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 115

Microcontrolador PIC

Timer 1Bits 7-6 (bits não usados – lidos como 0)

Page 116: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 116

Microcontrolador PIC

Timer 2# Timer de 8 bits com um pré-escalonador e pós-escalonador. # Pode ser usado como a base de tempo no modo PWM dos módulos CCP. # TMR2 é um registra-dor de escrita e leitura e é apagado em qual-quer evento de reset.

Page 117: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 117

Microcontrolador PIC

Timer 2

Bits 1-0 (bit T2CKPS1 e T2CKPS0 – bit de seleção do pré-escalonador) 00 = Escalonamento de 101 = Escalonamento de 41x = Escalonamento de 16

Registrador de Controle do Timer 2 – T2CON (endereço 12h)

Page 118: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 118

Microcontrolador PIC

Timer 2Bit 2 (bit TMR2ON – bit de ativação do Timer 2).1 = Timer 2 ativado0 = Timer 2 desativado;

Bits 6-3 (bits TOUTPS3:TOUTPS0 – bits de seleção do pós-escalonador) –

0000 = Escalonamento de 10001 = Escalonamento de 20010 = Escalonamento de 3

•••

1110 = Escalonamento de 151111 = Escalonamento de 16

Page 119: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 119

Microcontrolador PIC

Instruções associadas aos temporizadoresSintax: set_timer0(value) or set_rtcc (value)

set_timer1(value)set_timer2(value)

Parâmetros: Timer 1 - 16 bit int.Timers 0 e 2 - 8 bit int.

Função: Seta o valor no registrador de contagem do timer

Exemplo: // 20 mhz clock, no prescaler, set timer 0 // to overflow in 35usset_timer0(81); // 256-(.000035/(4/20000000))

Page 120: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 120

Microcontrolador PIC

Instruções associadas aos temporizadoresSintax: value=get_timer0() mesmo que: value=get_rtcc()

value=get_timer1()value=get_timer2()value=get_timer3()value=get_timer4()value=get_timer5()

Parâmetros: NenhumRetorna: Timers 1 - 16 bit int.

Timers 0 e 2 - 8 bit int.

Função: Returna o valor de contagem do timerExemplo: set_timer0(0);

while ( get_timer0() < 200 ) ;

Page 121: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 121

Microcontrolador PIC

Configuração Conversor A/D

Page 122: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 122

Microcontrolador PIC

CONVERSOR A/DDiagrama de

blocos do conversor A/D

Page 123: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 123

Microcontrolador PIC

CONVERSOR A/DO conversor A/D possui quatro registradores:

Registrador do byte mais significado do resultado da conversão (ADRESH);

Registrador do byte menos significado do resultado da conversão (ADRESL);

Registrador de controle 0 (ADCON0);Registrador de controle 1. (ADCON1).

Quando a conversão é concluída, o resultado écarregado em ADRES, o bit GO/DONE (bit 2 do Reg. ADCON0) é resetado e o flag de interrupção, bit ADIF, ésetado.

Page 124: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 124

Microcontrolador PIC

CONVERSOR A/DO conversor A/D necessita de no mínimo 12 TAD para

realizar uma conversão de 10 bits. A fonte do clock do conversor A/D é selecionada por software entre as possibilidades abaixo:

2Tosc;8Tosc;32Tosc;Oscilador RC interno.

Para uma conversão correta, o clock do conversor A/D deve ser selecionado para garantir um TAD mínimo de 1.6µs.

Page 125: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 125

Microcontrolador PIC

CONVERSOR A/DTAD x Máxima freqüência de conversão

Page 126: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 126

Microcontrolador PIC

CONVERSOR A/DJustificação do resultado da conversão A/D

Page 127: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 127

Microcontrolador PIC

CONVERSOR A/DRegistrador ADCON0 - Controla a operação do módulo

A/D (endereço 1Fh).

Bit 0 (bit ADON – bit que ativa o conversor A/D) – Este bit ativa a operação do conversor A/D.

1 = conversor A/D ativado0 = conversor A/D desligadoBit 1 (bit não usado – lido como 0)

Page 128: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 128

Microcontrolador PIC

CONVERSOR A/DBit 2 (bit GO/– bit de status de conversão) – Este bit

indica se uma conversão iniciada já foi concluída.Se ADON =11 = conversão A/D em andamento0 = não há conversão A/D em andamento (esse bit é

automaticamente resetado quando a conversão A/D éconcluída).

Bits 5-3 (bits CHS2:CHS0 – bits de seleção de canal)– Estes bits selecionam a entrada analógica cujo sinal será convertido.

000 = canal 0, (RA0/AN0)001 = canal 1, (RA1/AN1)010 = canal 2, (RA2/AN2)

Page 129: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 129

Microcontrolador PIC

CONVERSOR A/D011 = canal 3, (RA3/AN3)100 = canal 4, (RA5/AN4)101 = canal 5, (RE0/AN5)110 = canal 6, (RE1/AN6)111 = canal 7, (RE2/AN7)

Bits 7-6 (bits ADCS1:ADCS0 – bits de seleção de clock) – Estes bits selecionam a fonte do sinal de clock para o conversor A/D.

00 = FOSC/201 = FOSC/810 = FOSC/3211 = FRC (clock derivado de um oscilador RC)

Page 130: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 130

Microcontrolador PIC

CONVERSOR A/DRegistrador ADCON1 – Configura a função dos pinos das

portas (A e E) (endereço 9Fh)

Bits 3-0 (bits PCFG3:PCFG0 – bits de controle de configuração dos pinos A/D) – Este bits configuram os pinos analógicos das Portas A e E.

Page 131: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 131

Microcontrolador PIC

CONVERSOR A/D

Page 132: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 132

Microcontrolador PIC

CONVERSOR A/DBits 6-4 (bits não usados – lido como 0)

Bit 7 (bit ADFM – bit de seleção de formato do resultado da conversão A/D) – Este bit seleciona o formato de justificação do resultado gerado pelo conversor A/D.

1 = Justificação à direita. Os 6 bits mais significativos de ADRESH serão iguais a 0.

0 = Justificação à esquerda. Os 6 bits menos significativos de ADRESL serão iguais a 0.

Page 133: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 133

Microcontrolador PIC

Instruções associadas ao Conversor A/DSintax: setup_adc ( mode);

Parâmetro: mode – Modo analógico para digital. As opções válidas variam entre dispositivos. Opções típicas:• ADC_OFF• ADC_CLOCK_INTERNAL• ADC_CLOCK_DIV_32

Função: Configura o conversor A/D.Exemplo: setup_adc_ports( ALL_ANALOG );

setup_adc(ADC_CLOCK_INTERNAL );set_adc_channel( 0 );

Page 134: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 134

Microcontrolador PIC

Instruções associadas ao Conversor A/DSintax: set_adc_channel ( chan)

Parâmetro: chan é o número do canal selecionado. Os números iniciam em 0 (AN0) e seguem de acordo com o número de canais disponíveis (ver datasheet do dispositivo).

Função: Especifica o canal a ser convertido no próximo READ_ADC. Deve ser respeitado um tempo de amostragem antes de iniciar uma conversão após uma mudança de canal. Em geral 10us é suficiente

Exemplos: set_adc_channel(2);delay_us(10);value = read_adc();

Page 135: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 135

Microcontrolador PIC

Captura/Comparação/PWMOs módulos CCP (Captura/Comparação/PWM) são formados por um registrador de 16 bits que pode operar como:

Registrador de captura de 16 bits;Registrador de comparação de 16 bitsRegistrador de “duty-cycle” no modo PWM

Mestre/Escravo.

Page 136: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 136

Microcontrolador PIC

Captura/Comparação/PWMModo de operação do módulo CCP e recursos de Timer necessários

Interação entre os módulos CCP

Page 137: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 137

Microcontrolador PIC

Configuração Bloco Capture/Compare/PWM

Page 138: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 138

Microcontrolador PIC

Captura/Comparação/PWMRegistradores de Controle CCP1CON e CCP2CON (endereços 17h e 1Dh)

Bits 3-0 (bit CCPxM3: CCPxM0 – bits de seleção de modo de operação) – Estes bits selecionam o modo como operarão os blocos CCP1 e CCP2.0000 = Modos Captura/Comparação/PWM desligados (reseta módulo CCPx )

Page 139: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 139

Microcontrolador PIC

Captura/Comparação/PWM0100 = Modo captura, a cada 1 transição negativa (1→0)0101 = Modo captura, a cada 1 transição positiva (0→1)0110 = Modo captura, a cada 4 transições positivas (1→0)0111 = Modo captura, a cada 16 transições positivas (1→0)1000 = Modo comparação, seta pino de saída (bit CCPxIF é setado)1001 = Modo comparação, reseta pino de saída (bit CCPxIF é setado)1010 = Modo comparação, gera interrupção (bit CCPxIF é setado, pino CCPx não é afetado)

Page 140: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 140

Microcontrolador PIC

Captura/Comparação/PWM1011 = Modo comparação, ativa “Special Event trigger”(bit CCPxIF é seta, pino CCPx não é afetado); CCP1 reseta TMR1; CCP2 reseta TMR1 e inicia uma conversão A/D (se módulo A/D habilitado).11xx = Modo PWMBits 5-4 (bits CCPxX:CCPxY – bits menos significativos do PWM) – Estes bits representam os dois bits menos significativos do valor de duty-cycle do sinal PWM.Modo Captura: Não usadoModo Comparação: Não usadoModo PWM: Dois bits LSB do duty-cycle do sinal PWM. Os oito MSB’s são gravados no registrador CCPRxL.

Page 141: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 141

Microcontrolador PIC

Captura/Comparação/PWMModo Captura

Page 142: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 142

Microcontrolador PIC

Captura/Comparação/PWMModo Comparação

Page 143: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 143

Microcontrolador PIC

Captura/Comparação/PWMModo PWMO bloco CCPx produz um sinal PWM com uma resolução de até 10 bits.

Um sinal PWM é caracterizado pelo seu período e o “duty-cycle”, que corresponde ao tempo em que o sinal permanece em nível alto.

O período do sinal PWM é especificado pelo registrador PR2: Período PWM = [(PR2) + 1] • 4 • TOSC • (TMR2 prescale value).

Page 144: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 144

Microcontrolador PIC

Captura/Comparação/PWMModo PWMQuando TMR2 é igual a PR2, os seguintes eventos ocorrem:

O TMR2 é apagado;O pino CCP1 é setado (exceto se o duty-cycle do

PWM = 0%, quando o CCP1 não será setado);O PWM duty-cycle é copiado de CCPR1L para

CCPR1H.

O duty-cycle do PWM é definido escrevendo para o registrador CCPR1L (bits mais significativos) e para os bits 5 e 4 do registrador CCP1CON.

Page 145: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 145

Microcontrolador PIC

Captura/Comparação/PWMModo PWMDeterminação do duty-cycle em termos de tempo:Duty Cycle do PWM = (CCPR1L:CCP1CON<5:4>) •Tosc • (TMR2 prescale value)

O novo valor de duty-cycle só é atualizado no CCPR1H, quando os valores dos registradores PR2 e TMR2 coincidirem (ao fim do período PWM).

No modo PWM CCPR1H é um registrador apenas de leitura.

Page 146: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 146

Microcontrolador PIC

Captura/Comparação/PWMModo PWM

Page 147: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 147

Microcontrolador PIC

InterrupçõesMecanismo que torna possível responder a “estímulos”

externos ou internos.Através do registrador INTCOM pode-se habilitar as

interrupções de forma individual ou de forma global.

O PIC 16F87X tem as seguintes fontes de Interrupção:Interrupção externa (RB0/INT); Interrupção de Relógio (TM0);Interrupção da porta B (B4-B7);Interrupção por captura e comparação (CCP1 e 2);Interrupção da USART (buffer saída e entrada cheio);Interrupção CCP;

Page 148: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 148

Microcontrolador PIC

Configuração Porta Serial

Page 149: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 149

Microcontrolador PIC

InterrupçõesO PIC 16F87X tem as seguintes fontes de Interrupção:

Estouro do relógio TMR1;Estouro do relógio TMR2;Fim de escrita EEPROM;Fim de Conversão A/D;Atividade na SPI ou I2C;Recebimento de dados na Porta Paralela Escrava;Colisão no barramento.

Page 150: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 150

Microcontrolador PIC

Interrupções - Circuito

Page 151: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 151

Microcontrolador PIC

InterrupçõesInicialmente deve-se estabelecer quais interrupções

devem estar habilitadas bem como setar o bit GIE (reg INTCON<7>)

Comandos de retorno da interrupção:RETURN;RETLW;RETFIE (põe ‘1’ automaticamento no bit GIE,

permitindo novas interrupções).

Page 152: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 152

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCON

Bit 0 – Flag interrupção de mudança nos bits B4 a B71 – Pelo menos um bit mudou de estado0 – Nenhum bit mudou de estado

Bit 1 – Flag interrupção INT/RB01 – Interrupção externa ocorreu0 – Não ocorreu interrupção externa

Page 153: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 153

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCON

Bit 2 – Flag Timer 0 overflow1 – Contagem mudou de 00h para FFh0 – Não ocorreu overflow na contagem

Bit 3 – Habilita interrupção na mudança nos pinos B4 a B71 – Habilita a interrupção 0 – Desabilita a interrupção

Bit 4 – Habilita interrupção no pino INT/RB01 – Habilita a interrupção 0 – Desabilita a interrupção

Page 154: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 154

Microcontrolador PIC

Interrupções - RegistradoresRegistrador INTCONBit 5 – Habilita interrupção de Overflow do Timer 01 – Habilita interrupção0 – Desabilita interrupção

Bit 6 – Habilita interrupção dos periféricos1 – Habilita todas as interrupções não mascaradas de periféricos0 – Desabilita todas as interrupções de periféricos

Bit 7 – Habilita interrupção global1 – Habilita todas as interrupções não mascaradas0 – Desabilita todas as interrupções

Page 155: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 155

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1

Bit 0 – Habilita interrupção de Overflow do Timer11 – Habilita interrupção0 – Desabilita interrupção

Bit 1 – Habilita interrupção por igualdade do TMR2 e PR21 – Habilita interrupção 0 – Desabilita interrupção

Page 156: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 156

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1Bit 2 – Habilita interrupção do bloco CCP11 - Habilita interrupção0 – Desabilita interrupção

Bit 3 – Habilita interrupção da SPI1 – Habilita interrupção0 – Desabilita interrupção

Bit 4 – Habilita interrupção de transmissão da USART1 – Habilita interrupção0 – Desabilita interrupção

Page 157: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 157

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIE1Bit 5 – Habilita interrupção de recepção da USART1 – Habilita interrupção0 – Desabilita interrupção

Bit 6 – Habilita interrupção do conversor A/D1 - Habilita interrupção0 – Desabilita interrupção

Bit 7 – Habilita interrupção da porta paralela escrava1 – Habilita interrupção0 – Desabilita interrupção

Page 158: manual de tecnologia mecanica 2° edição brasileira

19/2/2008 158

Microcontrolador PIC

Interrupções - RegistradoresRegistrador PIR1

Registrador PIE2

Registrador PIR2