#include <16f877a.h>
#fuses hs,nowdt
#use delay(clock=11059200)
#include <lcd.c>
#define use_portb_kbd TRUE
#include <kbd.c>
#rom 0x2100={'1','2','3','4'}
void main()
{
int i;
char tecla=0;
char datos[4],clave[4];
lcd_init();
kbd_init();
port_b_pullups(true);
ciclo:
for(i=0;i<=4;i++) clave[i]=read_eeprom(i);
tecla=0;
while(tecla==0) tecla=kbd_getc();
lcd_putc("\fINTRODUCIR CLAVE\n");
tecla=0;
for(i=0;i<4;i++)
{
while(tecla==0) tecla=kbd_getc();
delay_ms(150);
datos[i]=tecla;
lcd_putc(" *");
tecla=0;
}
if (tecla=='#')
if((datos[0]==clave[0])&&(datos[1]==clave[1])&&(datos[2]==clave[2])&&(datos[3]==clave[3]))
{
lcd_putc("\fPUERTA ABIERTA");
output_high(pin_a0);
delay_ms(3000);
output_low(pin_a0);
}
else
{
lcd_putc("\fCLAVE ERRONEA");
delay_ms(3000);
}
goto ciclo;
///// } [COLOR="esta llave de mas es el problema [/COLOR]
if (tecla=='*') [COLOR="Red"]desde aqui me salen los 100 errores [/COLOR]:cry:
{
lcd_putc("\f CLAVE ACTUAL\n");
tecla=0;
for(i=0;i<4;i++)
{
while(tecla==0) tecla=kbd_getc();
delay_ms(150);
datos[i]=tecla;
lcd_putc("*");
tecla=0;
}
if((datos[0]==clave[0])&&(datos[1]==clave[1])&&(datos[2]==clave[2])&&(datos[3]==clave[3]))
{
lcd_putc("\fNUEVA CLAVE\n");
for(i=0;i<4;i++)
{
while(tecla==0) tecla=kbd_getc();
delay_ms(150);
write_eeprom(i,tecla);
lcd_putc("*");
tecla=0;
}
lcd_putc("\fCLAVE MODIFICADA\n");
delay_ms(1000);
}
else
{
lcd_putc("\fCLAVE ERRONEA");
delay_ms(3000);
}
}
goto ciclo;
}