JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 32

lcd_putc("\f");

i=0; // i igual a cero

lcd_gotoxy(1,1);

lcd_putc("DIGITE CLAVE"); //Imprime este mensaje

while(i<=3) //siempre que i sea menor o igual a 3

{

k=kbd_getc(); //Se obtiene el valor de la tecla pulsada

if (k!=0) //Si ka es diferente de nulo

{

data[i]=k; //Guarda el valor de la tecla pulsada en un

//Espacio de memoria

i++; //Incrementa i

lcd_gotoxy(i,2);

lcd_putc('*'); //se imprime * en representacion de un caracter

}

}

for (i=0;i<=3;i++) //Ciclo para guardar la clave en moria en una nueva variable

{

clave[i]=read_eeprom(i);//Lee la clave guardada en memoria y la guarda en una nueva variable

//Para luego comprobarla con la clave ingresada por el usuario

}

if ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2])&&(data[3]==clave[3])) //comparacion de la clave ingresada

//Con la clave guardada en memoria

{

lcd_gotoxy(1,1);

printf(lcd_putc,"BIENVENIDO \n");

printf(lcd_putc,"AL NIVEL 1");

output_high(PIN_C0); //El PIN C0 se pone en ALTO

delay_ms(1500);

lcd_gotoxy(1,1);

printf(lcd_putc,"\fPUEDE INGRESAR");

delay_ms(3000); // Espera 2 segundo

printf(lcd_putc,"\fCERRANDO PUERTA");

delay_ms(2000); // Espera 2 segundo

output_low(PIN_C0); //El PIN C0 se pone en BAJO

}

else

{

printf(lcd_putc,"\fCLAVE INCORRECTA"); //Si las claves no son iguales se imprime este mensaje

output_high(PIN_C3); //El PIN C3 se pone en ALTO

delay_ms(2000); // Espera 2 segundo

output_low(PIN_C3); //El PIN C3 se pone en BAJO

}

item=0; //item se iguala a cero con el fin de que se devuelva al primer caso de item

}

break;

////////////////////////////////NIVEL DOS///////////////////////////////////////////////////////////////////////////////////

29