Autor Tema: Ingresar Clave pic  (Leído 1864 veces)

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

Desconectado Rufus

  • PIC10
  • *
  • Mensajes: 14
Ingresar Clave pic
« en: 05 de Febrero de 2019, 13:27:39 »
Buenos dias amigos de todopic. necesito de su ayuda. estoy realizando un despachador de agua. y estoy en la etapa del menu y quiero que al presionar el boton de 5 lts, 20 lts. y ok. durante 5 segundos. me envie a un submenu donde me pide una clave y al ser correcta logre entrar al menu para modificar precios y tiempos de llenado.

que el boton de 5 lts. decremente valor
el boton de 10 lts. incremente valor
el pin de ok. realice el cambio de columna.

y al ingresar los 4 digitos al ser correcto ingreso y si es incorrecto regresar al programa principal.

////////////////////////////////////////////////////////////////////////////////////////////////////
#rom 0x2100={4265} // escribir en la memoria eeprom
char dato[4],clave[4]; //dato: almacena los digitos, clave: es la contraseña
int space;
char contra;
////////////////////////////////////////////////////////////////////////////////////////////////////

void ingresar_clave(){
delay_ms(2000);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Ingresar Clave");
lcd_gotoxy(1,2);
printf(lcd_putc,"*");
lcd_gotoxy(2,2);
printf(lcd_putc,"*");
lcd_gotoxy(3,2);
printf(lcd_putc,"*");
lcd_gotoxy(4,2);
printf(lcd_putc,"*");

contra=0;
space=1;
while(space<5){
if(contra!=0){
      dato[space]=contra
       if (input(pin_B6)==0){
      delay_ms(250);   
      space++;
       }
      lcd_gotoxy(space,2); // posicion i de la segunda linea
      printf(lcd_putc,"%u",contra);

         }
         if(input(pin_B5)==0) 
         {
            delay_ms(250);
            contra++;     
         if(contra==9)
          {
          contra=0;
         }
           }
         
      if(input(pin_B4)==0)
         {
            delay_ms(250);         
            contra--;       
           if(contra==0)   
           {
             contra=9;         
         }
           }
           
         }
         
   for(space=0;space<5;space++)
   clave[space]=read_eeprom(space); //guarda la constraseña  en el vector clave
 
   if( dato[0]==clave[0] &&  dato[1]==clave[1] && dato[2]==clave[2] && dato[3]==clave[3])
   { 
      lcd_putc("\fClave Correcta! ");
      delay_ms(1500);
      menu();
   
   }
   else{
      lcd_putc("\fClave incorecta ");
      lcd_putc("\n      -_-  ");
      delay_ms(2000);
      inicio_programa();
   } 
      }


lo que noto es que al presionar la tecla de corrimiento de columna el el numero que digite anteriomente se repite. ayuda.


 

anything