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

  • PIC 18F45XXEl mdulo ADC(Analog Digital Converter)
  • 1. Caractersticas generalesEl 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:RE2Los 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 ADCON1El 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 ADCON2ADFM: Justificacin del valor de la conversin Derecha/IzquierdaACQT2:ACQT0 Ajuste del tiempo de adquisicin.ADCS2:ADCS0Frecuencia de trabajo del conversor.
  • 6. Funciones de configuracin del ADC en C18Para 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 ejemploDisear 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 ProteusPgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16
  • Publicaciones Similares