EJEMPLO ADC

#include <18f4550.H>
#fuses XTPLL,PLL1,CPUDIV1,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#device adc=10
#use delay (clock=48M)
#include <lcd.c>
#byte porta=0xf80
#byte portb=0xf81
#byte portc=0xf82
#byte portd=0xf83
#byte porte=0xf84
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)     //   con esta instruccion evitamos que
#use fast_io(D)     //   se este configurando cada vez que usamos
#use fast_io(E)     //   alguna instruccion de entrada o salida

///////   DEFINICION DE VARIABLES    /////////

int16 dato,dato1;
float vol,vol1;

///////   PROGRAMA PRINCIPAL    /////////

void main (void)
{
set_tris_a(0b000111);
set_tris_D(0b00000000);
Setup_adc_ports(AN0_TO_AN1|VSS_VDD);
Setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();  //INICILIZA LA LCD
delay_ms(100);
lcd_putc("   MODULO ADC"); // DATO A LA LCD

   while (1)
   {
   set_adc_channel(0);
   delay_ms(100);
   dato=read_adc();
   set_adc_channel(1);
   delay_ms(100);
   dato1=read_adc();
   lcd_send_byte(0,0b00000010);
   printf(lcd_putc,"\C1=%4lu",dato);
   printf(lcd_putc,"  C2=%4lu",dato1);
   vol=dato/204.6;
   vol1=dato1/204.6;
   printf(lcd_putc,"\n1=%1.2fv",vol);
   printf(lcd_putc,"  2=%1.2fv",vol1);
  
   }
}

No hay comentarios:

Publicar un comentario