CHAPA ELECTRONICA CON PIC Y MEMORIA EEPROM

BUENAS HOY LES COMPARTO UN PROGRAMA PARA UNA CHAPA ELECTRONICA LA CONTRASEÑA SE GUARDA EN LA MEMORIA EEPROM, LO QUE SIGNIFICA Q ESA CONTRASEÑA SERA PERMANENTE.
 TIENE 2 OPCIONES DE ABRIR LA CHAPA INGRESANDO LA CONTRASEÑA O MODIFICAR LA CONTRASEÑA QUE TIENE POR DEFECTO QUE TAMBIEN SE ALMACENARA EN EEPROM

ESTA NUEVA CONTRASEÑA SE VA MANTENER GUARDADO DE FORMA PERMANENTE POR EL USO DE LA EEPROM



PARA EL CODIGO CREE 2 LIBRERIAS PARA EL CONTROL DEL LCD Y DEL TECLADO QUE TAMBIEN ESTAN EN LA DESCARGA
APORTES
USD

#include "lcd.c"
#include "keypad.c"
char tecla;
char estado=0,sw=0,aux;
int digito=1,k;
void main()
{
lcd_init(&portd);
keypad_init(&portb);
trise.re0=0;
trise.re1=0;
if(EEPROM_read(0)==255)
eeprom_write(0,'1');
if(EEPROM_read(1)==255)
eeprom_write(1,'5');
if(EEPROM_read(2)==255)
eeprom_write(2,'9');
if(EEPROM_read(3)==255)
eeprom_write(3,'D');
while (1)
{
while (sw==0)
{
lcd_out(1,1,"SISTEMA DE ACCESO");
lcd_out(2,1,"1)ABRIR PUERTA");
lcd_out(3,1,"2)CAMBIAR CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
tecla=0;
while(tecla==0)
tecla=keypad_key_click();
if (tecla=='1' || tecla=='2')
{
delay_ms(500);
lcd_cmd(_lcd_clear);
lcd_out(1,1,"INTRODUZCA");
lcd_out(2,1,"CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
lcd_out(3,1,"# BORRAR");
lcd_cmd(_LCD_FOURTH_ROW);
lcd_cmd(_LCD_UNDERLINE_ON);
if (tecla=='1')
aux=tecla;
else if (tecla=='2')
aux=tecla;
sw=1;
delay_ms(1000);
}
}
while (sw==1)
{
tecla=0;
while(tecla==0)
tecla=keypad_key_click();
if (estado==0 && tecla==eeprom_read(0))
{
estado=1;
lcd_chr(4,1,tecla);
delay_ms(1000);
lcd_out(4,1,"*");
digito++;
}
else if (estado==1 && tecla==eeprom_read(1))
{
estado=2;
lcd_chr(4,2,tecla);
delay_ms(1000);
lcd_out(4,2,"*");
digito++;
}
else if (estado==2 && tecla==eeprom_read(2))
{
estado=3;
lcd_chr(4,3,tecla);
delay_ms(1000);
lcd_out(4,3,"*");
digito++;
}
else if (estado==3 && tecla==eeprom_read(3))
{
estado=4;
lcd_chr(4,4,tecla);
delay_ms(1000);
lcd_out(4,4,"*");
digito++;
}
else
{
lcd_chr(4,digito,tecla);
delay_ms(1000);
lcd_out(4,digito,"*");
digito++;
}
if (digito > 5)
{
delay_ms(1000);
lcd_cmd(_lcd_clear);
lcd_out(1,1,"CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
lcd_out(2,6,"INCORRECTA");
digito=1;
delay_ms(2000);
lcd_cmd(_lcd_clear);
lcd_cmd(_lcd_cursor_off);
sw=0;
}
if (tecla=='#')
{
lcd_out(4,1," ");
digito=1;
estado=0;
lcd_cmd(_LCD_FOURTH_ROW);
}
if (estado==4)
{
delay_ms(1000);
lcd_cmd(_lcd_clear);
lcd_out(1,1,"CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
lcd_out(2,6,"CORRECTA");
if (aux=='1')
{
sw=2;
lcd_out(3,1,"*) ABRIR PUERTA");
}
else if(aux=='2')
{
delay_ms(2000);
lcd_cmd(_lcd_clear);
lcd_out(1,1,"INSERTE NUEVA");
lcd_out(2,6,"CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
lcd_cmd(_lcd_fourth_row);
estado=0;
digito=1;
sw=3;
}
}
delay_ms(100);
}
while (sw==2)
{
tecla=0;
while(tecla==0)
tecla=keypad_key_click();
if (tecla=='*')
{
lcd_out(4,1,"ABRIENDO PUERTA");
late.re0=1;
delay_ms(5000);
late.re0=0;
lcd_out(4,1,"CERRANDO PUERTA");
late.re1=1;
delay_ms(5000);
late.re1=0;
delay_ms(2000);
lcd_cmd(_lcd_clear);
lcd_cmd(_lcd_cursor_off);
sw=0;
estado=0;
digito=1;
}
}
while (sw==3)
{
tecla=0;
while(tecla==0)
tecla=keypad_key_click();
if (estado==0 && tecla !='#')
{
eeprom_write(0,tecla);
lcd_chr(4,1,tecla);
delay_ms(1000);
lcd_out(4,1,"*");
estado=1;
}
else if (estado==1 && tecla !='#')
{
eeprom_write(1,tecla);
lcd_chr(4,2,tecla);
delay_ms(1000);
lcd_out(4,2,"*");
estado=2;
}
else if (estado==2 && tecla !='#')
{
eeprom_write(2,tecla);
lcd_chr(4,3,tecla);
delay_ms(1000);
lcd_out(4,3,"*");
estado=3;
}
else if (estado==3 && tecla !='#')
{
eeprom_write(3,tecla);
lcd_chr(4,4,tecla);
delay_ms(1000);
lcd_out(4,4,"*");
estado=4;
}
if (estado==4)
{
delay_ms(2000);
lcd_cmd(_lcd_clear);
lcd_cmd(_lcd_cursor_off);
lcd_out(1,1,"CONTRASE");
lcd_chr_cp(0b11101110);
lcd_chr_cp('A');
lcd_out(2,8,"CAMBIADA");
delay_ms(3000);
lcd_cmd(_lcd_clear);
estado=sw=0;
digito=1;
}
}
}
}

LINK DE DESCARGA:
DESCAR CODIGO Y SIMULACION

GRUPOS:  PAGINA FACEBOOK  GRUPO FACEBOOK 
WHATSAPP1 
WHATSAPP2  
WHATSAPP3

Comentarios

Entradas populares