TODOPIC

Simuladores, editores de PCB, etc => Ejemplos para simular => Mensaje iniciado por: pocher en 08 de Abril de 2004, 03:33:00

Título: ADC con representación en LCD
Publicado por: pocher en 08 de Abril de 2004, 03:33:00
Codigo:
#include <16F876.h>

#device adc=10      // Conversión con 10 bits
//#device adc=8      // Conversión con 8 bits      
               // Si no se pone ningún device toma 8 bits

#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT

#use delay (clock=4000000)  

#include <LCD.c>

void main( void )
{
  long  valor;    
//  float const resoluc= 5.0/256.0;      // Conversión es con 8 bits
  float const resoluc= 5.0/1024.0;      // Conversión es con 10 bits  
  float voltios;

  setup_adc_ports ( ALL_ANALOG );        // Entrada analógica por RA0
  setup_adc ( ADC_CLOCK_INTERNAL );    // Reloj interno para el ADC
  set_adc_channel ( 0 );             // Canal 0 para convertir

  lcd_init();
 
  while ( 1 )                    
  {
      valor = read_adc();              
     
      lcd_gotoxy(1,1);
          
      voltios= valor * resoluc;    
                              
      printf ( lcd_putc, "%1.2f voltios ", voltios );
     
      delay_ms(200);            // Convierte cada 200ms
  }
}