Está en la página 1de 4

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

//AUTOR:JORGE ARTURO RODRIGUEZ HERNANDEZ


//TITLE;CONTRASENA
//DATE:18/JUNIO/'09
///////////////////////////////////////
//CONFIGURACION///////////////////
#include<16f887.h>
#fuses INTRC_IO,NOWDT,NOLVP,MCLR,NOPROTECT,NOPUT
#use delay(clock=8000000)
#include<LCD.C>
int
int
int
int
int

LEER_TECLADO;
TECLADO[]={"0123456789#*"};
UNO,DOS,TRES,CUATRO;
UNO_P,DOS_P,TRES_P,CUATRO_P;
GOA,i;

void config(void){
write_eeprom(0x04,1);
write_eeprom(0x05,2);
write_eeprom(0x06,3);
write_eeprom(0x07,4);
set_tris_a(0x01);
set_tris_c(0x00);
setup_comparator(NC_NC_NC_NC);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(sAN0);
output_low(PIN_C0);
lcd_putc("\fCOMPILED ON\n");
lcd_putc(__DATE__);
delay_ms(2000);
}
ADC(int VALOR_ADC){
NO_PULSADO:
delay_ms(10);
VALOR_ADC=read_adc();
if(VALOR_ADC>140){
goto NO_PULSADO;
}
else if(VALOR_ADC<24){
VALOR_ADC=1;

}
else if(VALOR_ADC<43){
VALOR_ADC=2;
}
else if(VALOR_ADC<60){
VALOR_ADC=3;
}
else if(VALOR_ADC<74){
VALOR_ADC=4;
}
else if(VALOR_ADC<88){
VALOR_ADC=5;
}
else if(VALOR_ADC<98){
VALOR_ADC=6;
}
else if(VALOR_ADC<108){
VALOR_ADC=7;
}
else if(VALOR_ADC<114){
VALOR_ADC=8;
}
else if(VALOR_ADC<122){
VALOR_ADC=9;
}
else if(VALOR_ADC<128){
VALOR_ADC=0;
}
else if(VALOR_ADC<137){
VALOR_ADC=10;
}
else if(VALOR_ADC<140){
VALOR_ADC=11;
}
return(VALOR_ADC);
}
void ESCRIBIR_PASSWORD(void){
for(i=0;i<=3;i++){
delay_ms(500);
LEER_TECLADO=ADC(LEER_TECLADO);

write_eeprom(i,LEER_TECLADO);
lcd_putc(TECLADO[LEER_TECLADO]);
}
delay_ms(500);
}
void CAMBIAR(void){
lcd_putc("\fESCRIBE AHORA\n");
ESCRIBIR_PASSWORD();
UNO=read_eeprom(0x00);
DOS=read_eeprom(0x01);
TRES=read_eeprom(0x02);
CUATRO=read_eeprom(0x03);
write_eeprom(0x04,UNO);
write_eeprom(0x05,DOS);
write_eeprom(0x06,TRES);
write_eeprom(0x07,CUATRO);
lcd_putc("\fCAMBIADO");
delay_ms(1000);
}
void CHEKAR(void){
UNO=read_eeprom(0x00);
DOS=read_eeprom(0x01);
TRES=read_eeprom(0x02);
CUATRO=read_eeprom(0x03);
UNO_P=read_eeprom(0x04);
DOS_P=read_eeprom(0x05);
TRES_P=read_eeprom(0x06);
CUATRO_P=read_eeprom(0x07);
}
void main(void){
lcd_init();
config();
AGAIN:
do{
lcd_putc("\fCHANGE->(*)\n");
lcd_putc("ENTER-->(#)");

GOA=ADC(GOA);
switch (GOA){
case 10:
lcd_putc("\fPASSWORD:\n");
ESCRIBIR_PASSWORD();
goto CHEK;
case 11:
lcd_putc("\fESCRIBE EL\n");
lcd_putc("PASSWORD 1ERO");
delay_ms(800);
lcd_putc("\fTYPE NOW\n");
ESCRIBIR_PASSWORD();
CHEKAR();
if(UNO==UNO_P && DOS==DOS_P &&
TRES==TRES_P && CUATRO==CUATRO_P){
lcd_putc("\fCORRECTO");
delay_ms(1000);
CAMBIAR();
}
else
lcd_putc("\fINCORRECTO");
delay_ms(1000);
break;
}
}while(TRUE);
CHEK:

CHEKAR();
if(UNO==UNO_P && DOS==DOS_P && TRES==TRES_P &&

CUATRO==CUATRO_P){
lcd_putc("\fCORRECTO");
output_high(PIN_C0);
}
else
lcd_putc("\fINCORRECTO");
delay_ms(3000);
output_low(PIN_C0);
goto AGAIN;

También podría gustarte