JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 45

if(memoria==4&&input(pin_e2)==1)//LOGICA DE FINAL DE CARRERA PISO 4

{

lcd_gotoxy(1,1);

lcd_putc(" ");

output_low(pin_c7);

output_low(pin_d3);

memoria=0;

}

}

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

void main()

{

lcd_init();

kbd_init();

port_b_pullups(TRUE);

//////////////////////////////////////////////////////////////

do

{

output_high(pin_d3);

}while(input(pin_a5)==0&&input(pin_e0)==0&&input(pin_e1)==0&&input(pin_e2)==0);

output_low(pin_d3);

////////////////////////////////////////////////////////////

do

{

lcd_gotoxy(1,1);

lcd_putc(" BIENVENIDOS ");

delay_ms(1000);

a=0;

lcd_gotoxy(1,1);

lcd_putc("\f DIGITE CLAVE ");

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

{

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

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

{

data[a]=m; //Guarda el valor de la tecla pulsada en un espacio de memoria

a++; //Incrementa a

lcd_gotoxy(a,2);

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

}

}

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

{

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

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

}

42