You are on page 1of 41

www.mecatronicadegaragem.blogspot.

com

Aula 16
Perifricos Analgicos
Microcontroladores PIC18 Programao em C

Prof. talo Jder Loiola Batista

Universidade de Fortaleza - UNIFOR


Centro de Cincias Tecnolgicas - CCT
E-mail: italoloiola@unifor.br

Jan/2011

www.mecatronicadegaragem.blogspot.com

Conversor A/D

www.mecatronicadegaragem.blogspot.com

Conversor A/D

www.mecatronicadegaragem.blogspot.com

Conversor A/D

www.mecatronicadegaragem.blogspot.com

Conversor A/D

www.mecatronicadegaragem.blogspot.com

Conversor A/D

www.mecatronicadegaragem.blogspot.com

Tenso de Referncia

A diferena entre as tenses


aplicadas em VREF+ e VREF-,
determina a faixa de tenso que ser
convertida em digital.

www.mecatronicadegaragem.blogspot.com

Conversor A/D
 Resoluo da converso:
 Ex.: (5V 0V) / 256 = 19,53mV

 Nmero de bits para representar o

sinal digital:
 Ex.: 8 bits, pois 2^8 = 256

www.mecatronicadegaragem.blogspot.com

Tempo de Aquisio
 O PIC18F4520 no mnimo 2,4us para um Vin com RS=2,5k

(mximo recomendado pelo fabricante), temperatura de 85


C;
 Por segurana, sugere-se um tempo de aquisio mnimo de
10us;

www.mecatronicadegaragem.blogspot.com

Tempo de Aquisio
 Para calcular o tempo de aquisio exato

para uma determinada aplicao, deve-se


consultar o datasheet do PIC18F4520, no
qual encontra-se uma frmula que permite
efetuar com exatido o clculo do tempo de
aquisio.

10

www.mecatronicadegaragem.blogspot.com

Conversor A/D do PIC18F4520


 O PIC18F4520 possui um mdulo conversor A/D

com 13 entradas analgicas que podem ser


chaveadas para ter acesso, uma de cada vez, ao
conversor;
 O conversor A/D do PIC18F4520 possui uma
resoluo de 10 bits;
 O conversor A/D pode operar mesmo com o PIC no
modo SLEEP;
 Para isso, o sinal de clock do conversor A/D (CAD)
deve ser derivado do oscilador RC interno do PIC;

11

www.mecatronicadegaragem.blogspot.com

Registradores FSR de Converso A/D


 Existem trs registradores no PIC18F4520

envolvidos com o recurso de converso A/D:


 ADCON0
 Controla a operao do mdulo conversor A/D;
 ADCON1
 Configura a funo dos pinos de entrada do conversor;

 ADCON2
 Configura a origem do clock, a aquisio programada e a
justificao;

12

www.mecatronicadegaragem.blogspot.com

Registradores SFR de Converso A/D

13

www.mecatronicadegaragem.blogspot.com

Registradores ADCON0

14

www.mecatronicadegaragem.blogspot.com

Registradores ADCON0

15

www.mecatronicadegaragem.blogspot.com

Registradores ADCON1

16

www.mecatronicadegaragem.blogspot.com

Registradores ADCON2

17

www.mecatronicadegaragem.blogspot.com

Resultado de uma converso


Para dar incio a converso, necessrio setar
o bit G0/DONE (ADCON0<2>);
2. Quando a converso for finalizao, o bit
G0/DONE apagado automaticamente pelo
hardware;
3. Sendo tambm setado automaticamente, o bit
ADIF (PIR<6>);
4. A amostra resultante estar disponvel nos
registradores ADRESH:ADRESL;
1.

18

www.mecatronicadegaragem.blogspot.com

Resultado de uma converso


6. O resultado da converso do PIC18F4520 de 10

bits, mas estar disponvel em 2 registradores de 8


bits;
7. A sobra de bits permitiu aos projetistas deslocar o
resultado para esquerda ou para direita,
procedimento
denominado
justificao
do
resultado;

19

www.mecatronicadegaragem.blogspot.com

Justificao do Resultado
 ADFM (ADCON2<7>)

20

www.mecatronicadegaragem.blogspot.com

Passos para a converso A/D


1.

Configurao do mdulo A/D


 Configurar
 Pinos de entrada analgica
 Tenses de referncia
 Pinos de I/O digital (ADCON1)

Selecionar o canal de entrada analgica


(ADCON0)
3. Selecionar a freqncia do sinal de clock do
conversor A/D (ADCON2)
4. Justificar o resultado da converso (ADCON1);
5. Ligar o mdulo A/D
2.

21

www.mecatronicadegaragem.blogspot.com

Passos para a converso A/D


5.

Se necessrio, configurar a interrupo do


mdulo A/D
A. Reset o bit ADIF
B. Sete o bit ADIE
C. Sete o bit GIE

Aguardar o tempo de aquisio (10us);


7. Iniciar a converso:
6.

 Setar o bit GO/DONE (ADCON0<2>)

8.

22

Aguardar o tempo de converso

www.mecatronicadegaragem.blogspot.com

Passos para a converso A/D


 verificando se o valor do bit GO/DONE zero

(sinalizando o fim de converso A/D);


 ou aguardar pela interrupo gerada pelo mdulo
A/D ao fim da converso;

Ler o par de registradores (ADRESH:ADRESL);


10. Aguardar no mnimo 2 x TAD para dar incio a
uma nova converso;
11. Limpar o bit ADIF se a interrupo do conversor
A/D estiver sendo utilizada;

9.

23

www.mecatronicadegaragem.blogspot.com

Interrupo do Conversor A/D


 Para habilitar a interrupo do conversor A/D

sem os nveis de prioridade:


1. Ligar a chave geral de interrupo, setando-se o

bit GIE (INTCON<7>);


2. Habilita a interrupo dos perifrico, setando-se
o bit PEIE (INTCON<6>);
3. Ligar a chave individual do mdlo de conversor
A/D, setando-se o bit ADIE (PIE1<6>);
4. A flag de fim da converso deve ser apagada
manualmente dentro da funo de tratamento da
interrupo.
24

www.mecatronicadegaragem.blogspot.com

Esquema Eltrico

25

www.mecatronicadegaragem.blogspot.com

Conversor A/D (Cdigo-fonte)


 LCD_8bits.h
Arquivo cabealho com as definies dos pinos utilizados como
via de dados, vias de controle e os prottipos das funes;

 LCD_8bits.c
Arquivo que contm as funes de acesso ao LCD;

 Main_35.c
Arquivo principal responsvel por exibir a cada segundo no LCD o
texto seguinte, em que o x representa o valor da tenso aplicada
no pino AN0 convertida em graus Celsius;
Temp = xx,x C
26

www.mecatronicadegaragem.blogspot.com

Display LCD / Funes


Funo
IniciaLCD
TestPixelsLCD

Inicializa LCD controller


Acende todos os pixels do LCD

EscInstLCD

Envia instruo para o LCD

EscDataLCD

Escreve um caractere na posio apontada pelo cursor

EscStringLCD
EscStringLCD_ROM
TesteBusyFlag
Pulse
_Delay100us
_Delay5ms
27

Descrio

DelayFor20TCY

Escreve uma string lida na memria de dados a partir


da posio apontada pelo cursor
Escreve uma string lida na memria de programa a
partir da posio apontada pelo cursor
Verifica se o LCD controller est ocupado executando
alguma instruo
Aplica pulso de para leitura ou escrita no LCD
Delay de 100us
Delay de 5ms
Delay de 20 ciclos de instruo do oscilador

www.mecatronicadegaragem.blogspot.com

LCD_8bits.h

Conversor A/D (Cdigo-fonte)


Identificador que impede a definio a seguir seja duplicada se o arquivo
cabealho foi includo em outro arquivo-fonte associado ao projeto.

28

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) 1

29

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 2

NL: Define o nmero


de linhas que estaro
ativas;

30

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 3


So utilizadas para
gerar a base de tempo
exigida pelo LCD

Precisam que o arquivo


cabealho delay.h seja
includo no projeto.

Desenvolvida
para
freqncia de clock
de 8Mhz.

31

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 4


Verifica se o LCD
est ocupado
executando alguma
instruo ou se ele
est livre;

32

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 5


Verifica se o LCD
est ocupado
executando alguma
instruo ou se ele
est livre;

Verifica se o LCD
est ocupado
executando alguma
instruo ou se ele
est livre;

33

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 6


Envia para o LCD a
string lida na memria
de dados que ser
exibida no display a
partir
da
posio
apontado pelo cursor;

Envia para o LCD a


string lida na memria
de programa que ser
exibida no display a
partir
da
posio
apontado pelo cursor;

34

www.mecatronicadegaragem.blogspot.com

LCD_8bits.c

Conversor A/D (Cdigo-fonte) - 7


Funo que acende
todos os pixels do
display do LCD;

Escreve cursor na
primeira linha

Posiciona cursor na
segunda linha

Caractere com todos


os pixels acesos

35

www.mecatronicadegaragem.blogspot.com

Main_35.c

Conversor A/D (Cdigo-fonte) - 1

36

www.mecatronicadegaragem.blogspot.com

Main_35.c

Conversor A/D (Cdigo-fonte) - 2

37

www.mecatronicadegaragem.blogspot.com

Main_35.c

Conversor A/D (Cdigo-fonte) - 3

38

www.mecatronicadegaragem.blogspot.com

Main_35.c

Conversor A/D (Cdigo-fonte) - 4

39

www.mecatronicadegaragem.blogspot.com

Main_35.c

Conversor A/D (Cdigo-fonte) - 5

40

www.mecatronicadegaragem.blogspot.com

Prxima Aula

Aula 17
Perifrico de Comunicao

41

You might also like