• Viernes 15 de Noviembre de 2024, 13:28

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - neo_zgz

Páginas: [1]
1
Microcontroladores / Configuracion De Lcd Bajo 16f876
« en: Lunes 28 de Febrero de 2005, 21:03 »
Haber tengo los 3 pines de configuracion del lcd conectados al puerto A para que me funcione, pero tengo entendido que se pueden conectar al puerto C, cosa que me vendria bien para meter un sensor por el puerto A.

La cuestion es que rutinas tengo k poner para que el control lo haga este puerto C.

2
Microcontroladores / Sobre El Adc Del 16f876
« en: Domingo 27 de Febrero de 2005, 01:05 »
Wenas peña, haber si me podeis ayudar, resulta que quiero hacer un sensor de CO2, y necesito usar este convertidor, el programa es calcado a un termometro, pero en este caso un sensor de CO2 y no uno de temperatura.

Pues la cuestion es haber si me podeis poner un ejemplo de programa en C para visualizar en un LCD la temperatura recibida por un lm35(ya os digo k es calcado al k necesito).

Os puedo comentar que he hexo este programa

#include  <16F876.h>
#use delay(clock=4000000, RESTART_WDT)
#include  <lcd2.c>
int Medir_Temperatura(int porta);
void Visualizar_Temp(temp);

main()
{
int temp;
lcd_init();
setup_adc_ports(RA0_RA1_ANALOG_RA3_REF); //configura RA0 RA1 como entrada
//analogicas y RA3 la Vref
//si utiliza 8 bits el ADC seria el calculo 256/vref*Valor del conversor
while(1){

temp=Medir_Temperatura(0);
Visualizar_Temp(temp);

/*temp=Medir_Temperatura(1);
Visualizar_Temp_xy(8,2,temp);*/

delay_ms(250);
}

}

int Medir_Temperatura(int)
{
int temp;
setup_adc(adc_clock_internal);
set_adc_channel(0); //configura el adc para que se centre en la patilla
//de A que le indiquemos (0=A0 1=A1...)
delay_us(20);
temp = read_adc();
setup_adc(adc_off);
return temp;
}
void Visualizar_temp(temp)
{
printf (lcd_putc,"%u", temp);
}

y otro que tengo orientado pero que era un voltimetro digital es este

#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 <LCD2.c>



void main( void )
{
  float  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--*
  }
}

Páginas: [1]