pic 18f45xx - ies luis de .el módulo conversor analógico-digital (adc) del pic 18f4550 dispone

Download PIC 18F45XX - IES LUIS DE .El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone

Post on 26-Jul-2018

213 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • PIC 18F45XX

    El mdulo ADC(Analog Digital Converter)

  • 1. Caractersticas generales

    El mdulo conversor Analgico-Digital (ADC) del pic 18F4550 dispone de 13 entradas y es capaz de medir la tensin analgica en cada una de ellas y convertirla en un valor digital de 10bits.

    Los pines susceptibles de ser configurados como entradas analgicas son: PORTA(5)=> AN0:RA0, AN1:RA1, AN2:RA2, AN3:RA3,AN4:RA5 PORTB(5)=> AN8:RB2, AN9:RB3, AN10:RB1, AN11:RB4, AN12:RB0 PORTE(3)=> AN5:RE0, AN6:RE1, AN7:RE2

    Los registros asociados al conversor ADC son: ADRESH: Contiene la parte alta de la conversin ADRESL: Contiene la parte baja de la conversin ADCON0: Registro de control 0 del ADC ADCON1: Registro de control 0 del ADC ADCON2: Registro de control 0 del ADC

  • 2. Diagrama de bloques del conversor

  • 3. El registro de control ADCON0

  • 4. El registro de control ADCON1

    El registro ADCON1 es el encargado de configurar las entradas como analgicas o digitales y fijar la tensin de referencia del conversor.

    Para configurar todas las entradas como analgicas:ADCON1=0x0F;

    Para configurar RA0 y RA1 como entradas analgicas y el resto digitales:ADCON1=0x0D;

  • 5. El registro de control ADCON2

    ADFM: Justificacin del valor de la conversin Derecha/Izquierda

    ACQT2:ACQT0 Ajuste del tiempo de adquisicin.

    ADCS2:ADCS0Frecuencia de trabajo del conversor.

  • 6. Funciones de configuracin del ADC en C18

    Para poder utilizar estas funciones hay que aadir en el programa principal la lnea: #include

  • 7. La funcin OpenADC()

    Para configurar el ADC se utiliza la funcin:OpenADC(clk_source,result_justification,time_select,channel,int,vref,config_port);

    Donde:

  • 7. Ejemplo de configuracin del ADC en C18 (I) Configurar el ADC como:

    * Seal de reloj del conversor FOSC/2* Justificacin de la conversin a la derecha* Tiempo de conversin de 2 veces el TAD (tiempo de adquisicin ~2,4us)* Canal de muestreo '0'* Deshabilitamos las interrupciones* Tensin de referencia Vdd/Vss* RA0/AN0 y RA1/AN1 como entradas analgicas. Configuracin en C18: unsigned char config1=0,config2=0,configport=0; config1 = ADC_FOSC_2 & ADC_RIGHT_JUST & ADC_2_TAD ; config2 = ADC_CH0 & ADC_INT_OFF & ADC_REF_VDD_VSS ; portconfig = ADC_2ANA ; OpenADC(config1,config2,portconfig);

    Una vez configurado el ADC para realizar la conversin: ConvertADC(); // Comienza la conversin while(BusyADC()); // Espera a que termine la conversin resultado= (unsigned int) ReadADC(); // Guardar resultado en la variable

    Cuando ya no se necesite el conversor: CloseADC();

  • 7. Ejemplo de configuracin del ADC en C18 (II)

    Para realizar la lectura de dos entradas analgicas debemos fijar el canal SetChanADC(n) y realizar la conversin ConvertADC(). Para cada uno de los canales. Una vez conseguido el valor del canal seleccionado es posible cambiar el canal para obtener otro valor con la funcin:SetChanADC(n); // Donde n puede ser: ADC_CH0, ADC_CH1,.....

    Tambin se puede utilizar una nica funcin para seleccionar el canal y realizar la conversin:SelChanConvADC(n); // Donde n puede ser: ADC_CH0, ADC_CH1,.....

    Cuando ya no se necesite el conversor:CloseADC();

  • 8. Simulacin en Proteus

    En Proteus (Isis) podemos utilizar el componente potencimetro (POT-HG) que incluye:

    Editar el componente Conectar segn la figura

  • 9. Programa de ejemplo

    Disear un programa que configure como entrada analgica el pin RA0 y muestre en el lcd el valor ledo por el conversor y su valor en voltios.

  • Solucin en C18 (l)

  • Solucin en C18 (II)

  • Solucin en C18 (III)

  • Simulacin en Proteus

    Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16