Buenas tardes colegas, hice este menu en pic c compiler, al probarlo fisicamente y en simulacion, si entra en las opciones pero yo quiero que se quede dentro de la opcion hasta que presione un boton y en la misma LCD 20x4 abajo salga "Regresar" (uso 3 botones , entrar, arriba y abajo) ya que regresa inmediatamente, alguien podria decirme como hacerle? de ante mano muchas gracias.
Este es el codigo
float V=0;
int B=1;
void main()
{
setup_adc_ports(0000);//AN0=0 parra el voltaje
lcd_init(0x4E,20,4);
do
{
if (!input(pin_B2)==0)//B2 aBAJO
{
B--;
delay_ms(10);
}
if(!input(pin_B4)==0) //B4 abajo
{
B++;
delay_ms(10);
}
if(B>4)
{
B=1;
}
//aqui comienz la seleccion del menu//
if(B==1)
{
printf(lcd_putc,"\f");
printf(lcd_putc,"opcion1<=");
lcd_gotoxy(1,2);
printf(lcd_putc,"opcion2");
lcd_gotoxy(21,1);
printf(lcd_putc," opcion3");
lcd_gotoxy(21,2);
printf(lcd_putc," opcion4");
delay_ms(200);
//este es el tercer boton para seleccionar//y en el cual se ejecuta lo elegido//
if(!input(pin_B3)==0) //B3 entrar
{
//datos aqui
printf(lcd_putc,"\f");
}
}
if(B==2)
{
printf(lcd_putc,"\f");
printf(lcd_putc,"opcion1");
lcd_gotoxy(1,2);
printf(lcd_putc,"opcion2<=");
lcd_gotoxy(21,1);
printf(lcd_putc," opcion3");
lcd_gotoxy(21,2);
printf(lcd_putc," opcion4");
delay_ms(200);
//este es el tercer boton para seleccionar//y en el cual se ejecuta lo elegido//
if(!input(pin_B2)==0) //B2
{
//datos aqui
printf(lcd_putc,"\f");
}
}
if(B==3)
{
printf(lcd_putc,"\f");
printf(lcd_putc,"opcion1");
lcd_gotoxy(1,2);
printf(lcd_putc,"opcion2");
lcd_gotoxy(21,1);
printf(lcd_putc," opcion3<=");
lcd_gotoxy(21,2);
printf(lcd_putc," opcion4");
delay_ms(200);
//este es el tercer boton para seleccionar//y en el cual se ejecuta lo elegido//
if(!input(pin_B2)==0)//B2
{
//datos aqui
printf(lcd_putc,"\f");
}
}
if(B==4)
{
printf(lcd_putc,"\f");
printf(lcd_putc,"opcion1");
lcd_gotoxy(1,2);
printf(lcd_putc,"opcion2");
lcd_gotoxy(21,1);
printf(lcd_putc," opcion3");
lcd_gotoxy(21,2);
printf(lcd_putc," opcion4<=");
delay_ms(200);
//este es el tercer boton para seleccionar//y en el cual se ejecuta lo elegido//
if(!input(pin_B2)==0) //B2
{
//datos aqui
printf(lcd_putc,"\f");
}
}
}while(TRUE);
}
float voltimetro()
{
int16 VIN;
//float V;
set_adc_channel(0);//Habilita canal 0
delay_us(20);
//lcd_gotoxy(2, 1);
VIN = read_adc();//Lee canal 0
V = (5*VIN/1023.0);//Conversion de binario a Volt
return V;
}