Escolar Documentos
Profissional Documentos
Cultura Documentos
Temperatura
Temperatura
void convert (float x, char * text) // Converte o nro em ponto flutuante em uma string
{ // +48, converte o algarismo em seu codigo ascii
unsigned int y = x*100;
text[0] = y/10000+48;
text[1] = (y%10000)/1000+48;
text[2] = (y%1000)/100+48;
text[4] = (y%100)/10+48;
text[5] = y%10+48;
}
switch (select)
{
case 1: // Caso select = 1, mostra a temperatura em celsius
temp = (float)valor_ad*((float)500/(float)1023);
convert (temp, text);
lcd_out (1,1, "Temperatura oC");
lcd_out (2,5, text);
break;
case 2: // Caso select = 2, mostra a temperatura em fahrenheit
temp = (float)valor_ad*((float)900/(float)1023)+32;
convert (temp, text);
lcd_out (1,1, "Temperatura oF");
lcd_out (2,5, text);
break;
case 3: // Caso select = 3, mostra a temperatura em kelvin
temp = (float)valor_ad*((float)500/(float)1023)+(float)273,15;
convert (temp, text);
lcd_out (1,1, "Temperatura oK");
lcd_out (2,5, text);
break;
}
}
void main()
{
TRISA = 0xFF; // Configura o porta como entrada
TRISB = 0x01; // Configura o portb como saida, RB0 como entrada
TRISC = 0x00; // Configura o portc como saida
TRISD = 0x00; // Configura o portd como saida
ADCON0 = 0xD5; // Configura o conversor A/D
ADCON1 = 0xC2;