Autor Tema: Menu en lcd no sale al leer la Temperatura  (Leído 1520 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado underwol2

  • PIC12
  • **
  • Mensajes: 53
Menu en lcd no sale al leer la Temperatura
« en: 14 de Junio de 2011, 22:33:06 »
hola tengo el siguiente codigo que estoy armando es solo para pruebas de aprendisage el proposito en general es aprender a crear menus y mostrar en lcd .
En micodigo tengo el problema que cuando preciono el boton para leer temperatura  la muestra por pantalla pero cuando preciono el boton de salir  no sale sequeda mostrando temperatura ,los dos primeros menus solo son mensages en pantalla y notiene problemas para salir al mantener precionado el boton de salida.
les agrego el codigo y la simulacion en un .rar
grasias por la colaboracion

codigo:

#include <16F877A.h>
#device adc=10
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT, RESERVED
#use delay(clock=4000000)
#use fast_io(a)
//LIBRERIAS
#include <kbd2.c>
#include <LCD.C>
//VARIABLES
float tem,temp=0;
void main(void)
{//LLAVE DE APERTURA MAIN
programa:
lcd_init();
while(1)
{//LLAVE DE APERTURA DEL WHILE DE INICIO

if(input(pin_a1)==1)//INTERRUCION EXTERNA BOTON A1
{//LLAVE DE APERTURA BOTON A1
menu1:
lcd_putc("\fPRIMER \nMENU");
delay_ms(1000);
lcd_putc("\f");

if(input(pin_a5)==1)//INTERRUPCION EXTERNA DE SALIDA BOTON A5
{//LLAVE DE APERTURA DE BOTON A5 DE SALIDA
break;//SALE AL RESIBIR INTERRUPCION POR EL BOTON A5
}//LLAVE DE CIERRE DE BOTON A5 DE SALIDA
goto menu1;//SALTO AL MENSAGE DE INICIO
}//LLAVE DE CIERRE BOTON A1

if(input(pin_a2)==1)//INTERRUCION EXTERNA BOTON A2
{//LLAVE DE APERTURA BOTON A2
menu2:
lcd_putc("\fSEGUNDO\nMENU");
delay_ms(1000);
lcd_putc("\f");

if(input(pin_a5)==1)//INTERRUPCION EXTERNA DE SALIDA BOTON A5
{//LLAVE DE APERTURA DE BOTON A5 DE SALIDA
break;//SALE AL RESIBIR INTERRUPCION POR EL BOTON A5
}//LLAVE DE CIERRE DE BOTON A5 DE SALIDA
goto menu2;//SALTO AL MENSAGE DE INICIO
}//LLAVE DE CIERRE BOTON A2

if(input(pin_a3)==1)//INTERRUCION EXTERNA BOTON A3
{//LLAVE DE APERTURA BOTON A3
menu3:
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_DIV_2);
set_adc_channel(0);
tem=read_adc();
temp=tem*0.48875;
printf(lcd_putc,"\fTEMPERATURA\nTEMP:%f",temp);
delay_ms(1000);
lcd_putc("\f");
if(input(pin_a5)==1)//INTERRUPCION EXTERNA DE SALIDA BOTON A5
{//LLAVE DE APERTURA DE BOTON A5 DE SALIDA
break;//SALE AL RESIBIR INTERRUPCION POR EL BOTON A5
}//LLAVE DE CIERRE DE BOTON A5 DE SALIDA
goto menu3;//SALTO AL MENSAGE DE INICIO
}//LLAVE DE CIERRE BOTON A3


}//LLAVE DE CIERRE DEL WHILE DE INICIO
goto programa;
}//LLAVE CIERRE DE MAIN
« Última modificación: 14 de Junio de 2011, 23:26:11 por underwol2 »

Desconectado underwol2

  • PIC12
  • **
  • Mensajes: 53
Re: Menu en lcd no sale al leer la Temperatura
« Respuesta #1 en: 14 de Junio de 2011, 23:48:05 »
ya encontre el problema

solucion era seleccionar  el pin analogico queba amedir la temperatura
setup_adc_ports(AN0);

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Menu en lcd no sale al leer la Temperatura
« Respuesta #2 en: 14 de Junio de 2011, 23:49:07 »
hola, dentro de tus if para checar si se presiono el boton en A5 lo quie haces es poner un break, entonces solo sale del if, pero no hace nada, por eso no cambia el mensaje en la lcd.

tambien te falta configurar los pines que vas a usar como entradas y como salidas, ademas mientras tus botones no estan presionados los pines no tienen un estado logico, talvez en la simulacion si lo haga pero si no corriges esto te puede dar problemas al armarlo en hardware
"Nada es imposible, no si puedes imaginarlo"

Desconectado underwol2

  • PIC12
  • **
  • Mensajes: 53
Re: Menu en lcd no sale al leer la Temperatura
« Respuesta #3 en: 15 de Junio de 2011, 00:43:51 »
grasias por la respuesta lo tendre en cuenta 

soy novato y me la paso probando codigos para aprender
ya habia probado este mismo ejemplo con switch y case y tenia el mismo problema no salia de la opcion de lectura de temperatura pero llase porque era que no salia


 

anything