Sie sind auf Seite 1von 16

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

DEPARTAMENTO ACADMICO DE ELETROTCNICA


CURSO DE ENGENHARIA INDUSTRIAL ELTRICA TECNOLOGIA
EM AUTOMAO INDUSTRIAL

Sistemas Digitais e Microcontrolados


Conversor Analgico para Digital - PIC16F877A
Prof. Amauri Assef
amauriassef@utfpr.edu.br
UTFPR Campus Curitiba
Prof. Amauri Assef

Conversor Analgico para Digital


Caractersticas do mdulo A/D

10 bits de converso
8 canais de entrada
AN0 RA0
AN1 RA1
AN2 RA2
AN3 RA3
AN4 RA5
AN5 RE0
AN6 RE1
AN7 RE2
Tenses de referncia config.
Vref+ (superior)
Vref- (inferior)
UTFPR Campus Curitiba
Prof. Amauri Assef

Conversor Analgico para Digital


Diagrama em bloco do A/D
CHS2:CHS0

PCFG3:PCFG0

PCFG3:PCFG0
UTFPR Campus Curitiba
Prof. Amauri Assef

Conversor Analgico para Digital


Modelo da entrada analgica
Amostragem e reteno sample and hold

UTFPR Campus Curitiba


Prof. Amauri Assef

Conversor Analgico para Digital


Diagrama em blocos do tratamento do sinal analgico

Grandeza fsica
de processo
(temperatura,
umidade,
presso, etc.)

UTFPR Campus Curitiba


Prof. Amauri Assef

Sinal analgico
convertido em
Sinal analgico PIC16F877A
tenso ou
condicionado
corrente
Condicionamento
Transdutor
A/D
do sinal

Conversor Analgico para Digital


Definies

O mdulo conversor analgico-digital (A/D) realiza a converso de uma tenso


analgica em valores digitais, isto , nmeros binrios;
Para o PIC16F877A a converso do valor analgico em digital realizada com
comprimento de 10 bits;
Quanto maior a quantidade de bits maior a resoluo e preciso do A/D
Por exemplo: supondo que a tenso aplicada ao pino de A/D varia entre 0 a 5V
(tenso de fundo de escala), e o conversor possui 8 bits (N), a resoluo de:

Alterando o conversor A/D para 10 bits, temos:

UTFPR Campus Curitiba


Prof. Amauri Assef

Conversor Analgico para Digital


Converso do sinal analgico em digital

Parmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resoluo de 19,61mV/bit
Parmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resoluo de 4,88mV/bit

UTFPR Campus Curitiba


Prof. Amauri Assef

Nveis de Tenso (V)

Representao binria

B0000 0000

19,61m

B0000 0001

...

...

B1111 1111

Nveis de Tenso (V)

Representao binria

B00 0000 0000

4,88m

B00 0000 0001

...

...

B11 1111 1111


7

Conversor Analgico para Digital


Exemplos de clculo para converso A/D

Parmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resoluo de 19,61mV/bit
2,5V = ?

Parmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resoluo de 4,88mV/bit
2,5V = ?
UTFPR Campus Curitiba
Prof. Amauri Assef

5V

2,5V

255
X

X = 127,5 128

5V

2,5V

1023
X

X = 511,5 512
8

Conversor Analgico para Digital


Registradores de 8 bits do mdulo A/D

ADCON0 (A/D Control Register 0):


Controla a operao do mdulo A/D

ADCON1 (A/D Control Register 1):


Configura as funes 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

UTFPR Campus Curitiba


Prof. Amauri Assef

Conversor Analgico para Digital


Registrador ADCON0 (Endereo 1FH Banco 0)

ADCS1:ADCS0: Seleo do clock de converso 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: Seleo do canal analgico
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)

UTFPR Campus Curitiba


Prof. Amauri Assef

GO//DONE: Bit de status da converso A/D

0 conversor A/D em espera

1 converso A/D em progresso

(setar este bit para iniciar converso)


ADON: Bit para ligar o mdulo A/D
0 converso A/D desligado
1 conversor A/D ligado

10

Conversor Analgico para Digital


Registrador ADCON1 (Endereo 9FH Banco 1)

ADFM: Seleo do formato do resultado do A/D


0 justificado esquerda
1 justificado direita

ADCS2: Seleo do clock em conjunto com os bits ADCS1: ADCS0 do registradorADCON0

UTFPR Campus Curitiba


Prof. Amauri Assef

11

Conversor Analgico para Digital


Registrador ADCON1 (Endereo 9FH Banco 1)

PCFG3:PCFG0: Bits de controle de configurao do PORTA e PORTE

UTFPR Campus Curitiba


Prof. Amauri Assef

12

Conversor Analgico para Digital


Registrador ADCON1 (Endereo 9FH Banco 1)

Resultado do A/D justificado

UTFPR Campus Curitiba


Prof. Amauri Assef

13

Conversor Analgico para Digital


Exemplo:
1) Escrever o firmware para mostrar o valor de conversor A/D do canal 0 atravs 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 converso do mdulo AD, canal 0.
Inicialmente piscar o LED do pino RD0 5 vezes com atraso de 1 segundo. Na sequncia,
movimentar o motor de acordo com o resultado da converso (RD1..RD4):
Valor do ADC

Descrio Sentido 1

Valor do ADC

Descrio 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

3) Escrever o firmware para digitalizar o valor analgico do sensor de temperatura LM35 (10mV/C) e
apresentar a temperatura equivalente no LCD 16x2:
UTFPR Campus Curitiba
Prof. Amauri Assef

14

Conversor Analgico para Digital


C1
VDD

15pF

X1
CRYSTAL

C2

ADC_POT
ADC_LM35

15pF

VDD

RV1
50%

U1
13
14
2
3
4
5
6
7

VDD
8
9
10

ADC_POT

R11
10k

1k

OSC1/CLKIN
OSC2/CLKOUT

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

U2

27.0

VOUT

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT

VDD

VDD

33
34
35
36
37
38
39
40

CH_1
CH_2

R9

R10

10k

10k

CH_1

CH_2

15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

PIC16F877A
2

ADC_LM35

LM35

R1

R2

R3

R4

R5

R6

R7

R8

330

330

330

330

330

330

330

330

D1

D2

D3

D4

D5

D6

D7

D8

LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED

UTFPR Campus Curitiba


Prof. Amauri Assef

15

Conversor Analgico para Digital


Exemplo:
1)

unsigned int temp_res;

void main() {
TRISA = 0x01;
TRISD = 0X00;
while(1) {
temp_res = ADC_Read(0); // Le valor de 10 bits da converso
PORTD = temp_res >> 2; // Normaliza em 8 bits
}
}
UTFPR Campus Curitiba
Prof. Amauri Assef

16

Das könnte Ihnen auch gefallen