Não estou conseguindo fazer. Segue meu programa:
O esquema de ligação é o mesmo !
// Pinagem do display LCD
sbit LCD_RS at RD1_bit;
sbit LCD_EN at RD2_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISD1_bit;
sbit LCD_EN_Direction at TRISD2_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
// Pinagem do display LCD
// Inicio Caracter Especial
const char character[] = {31,31,31,31,31,31,31,31};
void character_cheio(char pos_row, char pos_char) {
char i;
Lcd_Cmd(64);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 0);
}
const char character1[] = {7,5,7,0,0,0,0,0};
void character_ponto(char pos_row, char pos_char) {
char i;
Lcd_Cmd(73);
for (i = 0; i<=7; i++) Lcd_Chr_CP(character1[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 1);
}
// Fim Caracter Especial
// DECLARAÇÃO DE VARIÁVEIS
int temp1; float temp1_float; char temp1_conv[7];
int temp2; float temp2_float; char temp2_conv[7];
int temp3; float temp3_float; char temp3_conv[7];
char posicao_menu = '0';
void funcao_temperatura(){
character_cheio(1,1);character_cheio(1,2);character_cheio(1,3);
character_cheio(1,17);character_cheio(1,18);character_cheio(1,19);character_cheio(1,20);
lcd_out(1,5,"TEMPERATUAS"
lcd_out(2,1,"TEMP1:"
character_ponto(2,19);
lcd_out(2,20,"C"
lcd_out(3,1,"TEMP2:"
character_ponto(3,19);
lcd_out(3,20,"C"
lcd_out(4,1,"TEMP3:"
character_ponto(4,19);
lcd_out(4,20,"C"
while(1){
temp1 = adc_read(0);
temp1_float = ((temp1 * 0.0049) / 0.01);
IntToStr(temp1_float,temp1_conv);
lcd_out(2,13,temp1_conv);
temp2 = adc_read(1);
temp2_float = ((temp2 * 0.0049) / 0.01);
IntToStr(temp2_float,temp2_conv);
lcd_out(3,13,temp2_conv);
temp3 = adc_read(2);
temp3_float = ((temp3 * 0.0049) / 0.01);
IntToStr(temp3_float,temp3_conv);
lcd_out(4,13,temp3_conv);
}
}
void main(){
// ADCON1 = 0x00; //define pinos como digital
CMCON = 7; //desliga comparadores internos
TRISD = 0; // 0 Define pino como saída
TRISA = 1; // 1 Define pino como entrada (leitura do LM35)
TRISB = 1; // 1 Define pino como entrada (leitura dos push button)
Lcd_Init(); // inicializa display LCD
lcd_cmd(_LCD_CLEAR); // limpa display
lcd_cmd(_LCD_CURSOR_OFF);// cursor off
lcd_out(1,1,"Henrique de Berthem"
delay_ms(1000);
lcd_cmd(_LCD_CLEAR); // limpa display
lcd_cmd(_LCD_CURSOR_OFF);// cursor off
funcao_temperatura();
}