Cerradura Electrónica
Enviado por Jeffersonfenix • 3 de Julio de 2015 • Ensayo • 806 Palabras (4 Páginas) • 181 Visitas
Informe
Cerradura Electrónica
1. OBJETIVOS Logrado Falta práctica No logrado
• Analizar el programa y entender su funcionamiento
• Entender el funcionamiento del keypad
• Entender y analizar la configuración y programación del pic, para la realización de una llave electrónica.
• Realizar la simulación en proteus X
X
X
X
2. DIAGRAMA DE OPERACIONES REALIZADAS EN LA PRÁCTICA
bit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;
sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
int dg1=0,dg2=0,dg3=0,dg4=0;//cuatro digitos que utilizaremos para leer la EEprom del pic;
unsigned short k=0,l=0,i=0,numero[4],contrasena[4];
char *text[]="1.ABRIR" ;char *text2[]="2.NUEVA CONTRASENA";char *actual[]="SU CONTRASENA" ;
char *nueva[]="NUEVA CONTRASENA";char errors[]="error"; char a[3];//* Las variables tipo cadena para visualizar en el lcd;
//* ahora dividimos las tareas en funciones.. comenzamos con la primera:
void guardando(){ //* activa el RC1 ;led amarillo que indica que se esta guardando la contraseña nueva;
Lcd_cmd(_Lcd_CLEAR);
Lcd_out(1,1,"guardando" ) ;
PORTC=0b00000010;
delay_ms(1000);
}
void new(){ // *se visualiza en el lcd cuando se ingresa la nueva contraseña;
Lcd_cmd(_Lcd_CLEAR) ;
Lcd_out(1,1,*nueva ) ;
}
void abrir(){ // *activa el RC2, en este caso se prende un led verde que representa un porton abriendo o
cualquier cosa que se pueda activar al ingresar la contraseña correcta;
Lcd_cmd(_Lcd_CLEAR) ;
Lcd_out(1,1,"abriendo" ) ;
PORTC=0b00000100 ;
}
void sucontr(){ //* cuando se pide que ingrese la contraseña.....,;
Lcd_Cmd(_Lcd_CLEAR) ;
Lcd_out(1,1,*actual ) ;
}
//* la siguiente rutina corresponde al teclado...en otro post se explico su funcionamiento.....;
//* observe como cambian los valores de k, l, i; valores que se usan para saber que numero se guardara en la memoria;
//*
void teclado(){
PORTB=0b00000001 ;
if(Button(&PORTB, 4, 20, 1)){k=1;l=1;i++;}
else if(Button (&PORTB, 5, 20, 1)){k=2;l=2;i++ ;}
else if(Button (&PORTB, 6, 20, 1)){l=3;i++ ;}
else
delay_ms(80);
PORTB=0b00000010;
if(Button (&PORTB, 4, 50, 1)){l=4;i++ ;}
else if(Button (&PORTB, 5, 20, 1)){l=5;i++ ;}
else if(Button (&PORTB, 6, 20, 1)){l=6;i++ ;}
else
delay_ms(80);
PORTB=0b00000100;
if(Button (&PORTB, 4, 20, 1)){l=7;i++;}
else if(Button (&PORTB, 5, 20, 1)){l=8;i++;}
else if(Button (&PORTB, 6, 20, 1)){l=9;i++;}
delay_ms(80);
PORTB=0b00001000;
if(Button (&PORTB, 4, 20, 1)){ l=10; i++;}
else if(Button (&PORTB, 5, 20, 1)){l=0;i++;}
else if(Button (&PORTB, 6, 20, 1)){l=12;i++;}
delay_ms(80);
}
void write_lcd(){ //* visualizar en pantalla las cadenas text y text2 a manera de menu;
Lcd_out(1,1,*text) ;
Lcd_out(2,1,*text2) ;
}
...