Escolar Documentos
Profissional Documentos
Cultura Documentos
03ConversindeAnalgicoaDigitalconlibreraADC.hdeC18|Guasparaprincipiantes
02ModificandolalibreraXLCD
04ConversiondeAnalgicoaDigital
porInterrupcin
03 Conversin de Analgico a
Digital con librera ADC.h
deC18
Continuando con la implementacin de
libreras C18, ha llegado el turno de adc.h,
esta librera nos facilita el trabajo de
conversin A/D ahorrndonos bastante
cdigo.Comosiemprenosbasaremosenel
documento
de
Microchip:MPLAB_C18_Libraries_51297f.
Circuitodeaplicacin
Partimos describiendo el circuito
aplicacinqueeselsiguiente:
de
1/5
26/05/2015
03ConversindeAnalgicoaDigitalconlibreraADC.hdeC18|Guasparaprincipiantes
Libreraadc.hdeC18
Originalmente creada para C18, puede
utilizarseconXC8yMPLABX.Lasfunciones
que la librera proporciona son las
siguientes:
Lasfuncionesqueutilizaremosson:
OpenADC(), se utiliza para configurar el
mdulo AD, requiere tres parmetros de
configuracin: origen de la seal de reloj
para el mdulo AD, la alineacin de la
conversin, y el tiempo de adquisicin de
data:text/htmlcharset=utf8,%3Cdiv%20id%3D%22header%22%20style%3D%22margin%3A%200px%20!important%3B%20padding%3A%201px%3B%2
2/5
26/05/2015
03ConversindeAnalgicoaDigitalconlibreraADC.hdeC18|Guasparaprincipiantes
OpenADC(ADC_FOSC_64&
ADC_RIGHT_JUST&
ADC_16_TAD,
ADC_CH0&
ADC_INT_OFF&
ADC_VREFPLUS_VDD&
ADC_VREFMINUS_VSS,
14);
inicia
el
proceso
de
#include<xc.h>
#include<plib/adc.h>
#include<plib/delays.h>
data:text/htmlcharset=utf8,%3Cdiv%20id%3D%22header%22%20style%3D%22margin%3A%200px%20!important%3B%20padding%3A%201px%3B%2
3/5
26/05/2015
03ConversindeAnalgicoaDigitalconlibreraADC.hdeC18|Guasparaprincipiantes
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include"stdlib.h"
//BitsdeconfiguracinparaFosc=48Mhz
#pragmaconfigPLLDIV=5,CPUDIV=OSC1_PLL2,USBDIV=
#pragmaconfigFOSC=HSPLL_HS,FCMEN=OFF,IESO=OFF
#pragmaconfigPWRT=OFF,BOR=OFF,VREGEN=OFF
#pragmaconfigWDT=OFF,WDTPS=32768
#pragmaconfigMCLRE=ON,LPT1OSC=OFF,PBADEN=OFF
#pragmaconfigSTVREN=ON,LVP=OFF,ICPRT=OFF,XIN
#define_XTAL_FREQ48000000
intresultado;
voidmain()
{
TRISD=0;
PORTD=0;
/*ConfiguracindelmduloAD
*Fosc=64
*Alineacin=derecha
*16TAD
*CanalAN0
*Interrupcindeshabilitada
*VREF+yVREFconectadosaVDDyVSSrespectivamente
*ValordeADCON1=14(CanalAN0analgico,elresto
*/
OpenADC(ADC_FOSC_64&
ADC_RIGHT_JUST&
ADC_16_TAD,
ADC_CH0&
ADC_INT_OFF&
ADC_VREFPLUS_VDD&
ADC_VREFMINUS_VSS,
14);
//Retardode50Tcy
Delay10TCYx(5);
while(1)
{
//Iniciarlaconversin
ConvertADC();
//Esperaparaquesecompletelaconversin
while(BusyADC());
//Capturandoelresultado
resultado=ReadADC();
/*Comoelresultadoesde10bits
*yslosedisponedeunpuertode8bits
data:text/htmlcharset=utf8,%3Cdiv%20id%3D%22header%22%20style%3D%22margin%3A%200px%20!important%3B%20padding%3A%201px%3B%2
4/5
26/05/2015
03ConversindeAnalgicoaDigitalconlibreraADC.hdeC18|Guasparaprincipiantes
57
58
59
60
61
62
63
64
65
66
*paramostrarlo.Elresultadoseconvierte
*ensuequivalentede8bitsdividiendo
*porcuatro.
*/
resultado=resultado/4;
//Mostrandoelresultado
PORTD=resultado;
}
}
data:text/htmlcharset=utf8,%3Cdiv%20id%3D%22header%22%20style%3D%22margin%3A%200px%20!important%3B%20padding%3A%201px%3B%2
5/5