Está en la página 1de 2

#include <16F877A.

h>
#fuses HS
#use delay (clock=20M)
#define LCD_DB4 PIN_D4
#define LCD_DB5 PIN_D5
#define LCD_DB6 PIN_D6
#define LCD_DB7 PIN_D7
#define LCD_RS PIN_D2
#define LCD_E PIN_D0
#include <lcd1.c>
#include <teclado.c>
#rom 0x2100={'1','2','3','5'} // escribir en la memoria eeprom
int i,j=0; // contador
char k; // lectura del teclado
char dato[4],clave[4]; //dato: almacena los digitos, clave: es la contrase�a
void main(){
lcd_init(); //
kbd_init(); //
port_b_pullups(TRUE); // resistencias o internas del pic
for(;;){
lcd_putc("\f CERADURRA "); //
lcd_putc("\n PERZ Y COLLAO ");
delay_ms(1000);
lcd_putc("\f INGRESE CLAVE ");
output_low(PIN_D0);
output_low(PIN_D1);

i=0;
while(i<4){
k=kbd_getc(); // leer la tecla presiono
if(k!=0){
dato[i]=k;
i++;
lcd_gotoxy(i,2); // posicion i de la segunda linea
lcd_putc('*');
}
}

for(i=0;i<4;i++)
clave[i]=read_eeprom(i); //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("\f CLAVE CORRECTA! ");
lcd_putc("\n ADELANTE !! ");
output_high(PIN_D0);
output_low(PIN_D1);
delay_ms(2000);

}
else{
lcd_putc("\fCLAVE INCORRECTA ");
lcd_putc("\n -_- ");
j++;
if(j==3){
lcd_putc("\fINABILITADO ");
lcd_putc("\n -_- ");
delay_ms(60000);
j=0;
}
output_high(PIN_D1);
output_low(PIN_D0);
delay_ms(2000);

}
}
}

También podría gustarte