Moderadores: andre_luis, 51, guest2003, Renie
antonio escreveu:
#include "16f877A.h"
#device adc=8 //Usa 8 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include<lcd.c>
#use standard_io (D)
#use standard_io (b)
//#use fast_io (B)
void main (void)
{
int medi=0, oldmedi=0;
float temper,i;
// set_tris_b (0x00);
lcd_init(); //Inicia LCD
lcd_putc(" Digital\n"); //Saca texto
lcd_putc(" Termometer"); //Saca texto
delay_ms(300);
lcd_putc("\f"); //Limpia
delay_ms(100);
lcd_gotoxy(14,2); //Acomoda cursor LCD
lcd_putc("oC");
// estes tres parametros não precisam ficar no loop
// claro neste caso, pois uma vez configurados se matem
// e você não esta utilizando por enquanto outras portas AD
// nem tão pouco esta mechendo nas configurações
setup_adc_ports (RA0_RA1_ANALOG_RA3_REF);
setup_adc (adc_CLOCK_INTERNAL); //acende ADC
set_adc_channel (0); // canal a medir RA0
while (1)
{
delay_ms (1000); // média de leitura de 1S
lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpa
medi=read_adc (); // le o canal AD
setup_adc (adc_off); // caramba qual compilador esta utilizando?
// e pra que isso aqui ?
if(medi != oldmedi){ // se diferente da medida anterior
oldmedi = medi; // então oldmedi = novo valor
temper=medi*0.7843; //converte para float "0.7843 ???"
printf(lcd_putc,"%03.1f",temper); //xxx.x °C // printf?
}
if(temper>=25.5)
output_low(PIN_D1);
else
output_high(PIN_D1);
}
}
antonio escreveu:Ola Fabim!
A tensão no pino Vref+ eh de 2V!!
Não..! esta medindo em 8bits olha aqui..,
#include "16f877A.h"
#device adc=8 //Usa 8 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
Usuários navegando neste fórum: Google [Bot] e 1 visitante