Guia de utilização Apresentacao_ADC_PIC16F877A.pdf
1. 1
UTFPR – Campus Curitiba
Prof. Amauri Assef
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA
CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA – TECNOLOGIA
EM AUTOMAÇÃO INDUSTRIAL
Sistemas Digitais e Microcontrolados
Conversor Analógico para Digital - PIC16F877A
Prof. Amauri Assef
amauriassef@utfpr.edu.br
2. Conversor Analógico para Digital
2
UTFPR – Campus Curitiba
Prof. Amauri Assef
Características do módulo A/D
10 bits de conversão
8 canais de entrada
AN0 – RA0
AN1 – RA1
AN2 – RA2
AN3 – RA3
AN4 – RA5
AN5 – RE0
AN6 – RE1
AN7 – RE2
Tensões de referência config.
Vref+ (superior)
Vref- (inferior)
4. Conversor Analógico para Digital
4
UTFPR – Campus Curitiba
Prof. Amauri Assef
Modelo da entrada analógica
Amostragem e retenção – sample and hold
5. Conversor Analógico para Digital
5
UTFPR – Campus Curitiba
Prof. Amauri Assef
Diagrama em blocos do tratamento do sinal analógico
Transdutor Condicionamento
do sinal
A/D
PIC16F877A
Grandeza física
de processo
(temperatura,
umidade,
pressão, etc.)
Sinal analógico
convertido em
tensão ou
corrente
Sinal analógico
condicionado
6. Conversor Analógico para Digital
6
UTFPR – Campus Curitiba
Prof. Amauri Assef
Definições
O módulo conversor analógico-digital (A/D) realiza a conversão de uma tensão
analógica em valores digitais, isto é, números binários;
Para o PIC16F877A a conversão do valor analógico em digital é realizada com
comprimento de 10 bits;
Quanto maior a quantidade de bits maior a resolução e precisão do A/D
Por exemplo: supondo que a tensão aplicada ao pino de A/D varia entre 0 a 5V
(tensão de fundo de escala), e o conversor possui 8 bits (N), a resolução é de:
Alterando o conversor A/D para 10 bits, temos:
7. Conversor Analógico para Digital
7
UTFPR – Campus Curitiba
Prof. Amauri Assef
Conversão do sinal analógico em digital
Parâmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 19,61mV/bit
Parâmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 4,88mV/bit
Níveis de Tensão (V) Representação binária
0 B’0000 0000’
19,61m B’0000 0001’
... ...
5 B’1111 1111’
Níveis de Tensão (V) Representação binária
0 B’00 0000 0000’
4,88m B’00 0000 0001’
... ...
5 B’11 1111 1111’
8. Conversor Analógico para Digital
8
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplos de cálculo para conversão A/D
Parâmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 19,61mV/bit
2,5V = ?
Parâmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 4,88mV/bit
2,5V = ?
5V → 255
2,5V → X
X = 127,5 ≈ 128
5V → 1023
2,5V → X
X = 511,5 ≈ 512
9. Conversor Analógico para Digital
9
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registradores de 8 bits do módulo A/D
ADCON0 (A/D Control Register 0):
Controla a operação do módulo A/D
ADCON1 (A/D Control Register 1):
Configura as funções do PORTA e PORTE, e como o resultado será armazenado
ADRESH (A/D Result High Register):
Parte alta do resultado do A/D
ADRESL (A/D Result Low Register):
Parte baixa do resultado do A/D
10. Conversor Analógico para Digital
10
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON0 (Endereço 1FH – Banco 0)
ADCS1:ADCS0: Seleção do clock de conversão do A/D
em conjunto com o ADCON1
00 - Fosc/2
01 - Fosc/8
10 - Fosc/32
11 – Frc (clock derivado do oscilador interno RC)
CHS2:CHS0: Seleção do canal analógico
000 – canal 0 (AN0)
001 – canal 1 (AN1)
010 – canal 2 (AN2)
011 – canal 3 (AN3)
100 – canal 4 (AN4)
101 – canal 5 (AN5)
110 – canal 6 (AN6)
111 – canal 7 (AN7)
GO//DONE: Bit de status da conversão A/D
0 – conversor A/D em espera
1 – conversão A/D em progresso
(setar este bit para iniciar conversão)
ADON: Bit para ligar o módulo A/D
0 – conversão A/D desligado
1 – conversor A/D ligado
11. Conversor Analógico para Digital
11
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
ADFM: Seleção do formato do resultado do A/D
0 – justificado à esquerda
1 – justificado à direita
ADCS2: Seleção do clock em conjunto com os bits ADCS1: ADCS0 do registradorADCON0
12. Conversor Analógico para Digital
12
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
PCFG3:PCFG0: Bits de controle de configuração do PORTA e PORTE
13. Conversor Analógico para Digital
13
UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
Resultado do A/D justificado
14. Conversor Analógico para Digital
14
UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo:
1) Escrever o firmware para mostrar o valor de conversor A/D do canal 0 através dos LEDS
conectados no PORTD. Utilizar Fosc/2 e dividir o valor lido por 4 para condicionar o resultado em
8 bits:
2) Escrever, simular e testar o firmware para ler o resultado da conversão do módulo AD, canal 0.
Inicialmente piscar todos os LED do PORTD 5 vezes com atraso de 0,5 segundo. Na sequência,
movimentar o motor de passo de acordo com o resultado da conversão (RC0,RC3,RC4 e RC5):
3) Escrever o firmware para digitalizar o valor analógico do sensor de temperatura LM35 (10mV/°C) e
apresentar a temperatura equivalente no LCD 16x2:
Valor do ADC Descrição – Sentido 1 Valor do ADC Descrição – Sentido 2
<= 0,5V 4 passos de 4ms 2,5V < e <= 3,0V Motor parado
0,5V < e <= 1,0V 4 passos de 8ms 3,0V < e <= 3,5V 4 passos de 32ms
1,0V < e <= 1,5V 4 passos de 16ms 3,5V < e <= 4,0V 4 passos de 16ms
1,5V < e <= 2,0V 4 passos de 32ms 4,0V < e <= 4,5V 4 passos de 8ms
2,0V < e <= 2,5V Motor parado > 4,5V 4 passos de 4ms