Cordial saludo
bueno gente resulta q enfrento un control de acceso sencillo, las caracteristicas serian las siguientes:
* El acceso esta restringido a tres usuarios, identificados por medio de un menú del siguiente
estilo:
Seleccione el Usuario
[1] [2] [3]
*Luego de seleccionar el usuario, este deberá ingresar su clave, la cual debe ser numérica de
cuatro dígitos. Durante esta etapa, el usuario posee un tiempo restringido para ingresar su
clave y que debe ser visualizado en el LCD. En caso que el usuario no ingrese a tiempo su
clave, se considera un intento de ingreso fallido. El usuario dispondrá de tres intentos para
ingresar la clave correcta, luego de los cuales se debe producir una indicación sonora y un
mensaje de rechazo en el LCD. Si por el contrario el usuario ingresa la clave correcta, debe
producirse una indicación sonora y mostrar en el LCD un mensaje de bienvenida.
*Cuando el usuario haya exitosamente ingresado, tendrá a su disposición un menú que le
permita salir de la aplicación o cambiar su clave.
* Se debe realizar además el monitoreo del estado de la alarma por medio del computador. Se
debe visualizar en el hyperterminal, el usuario y su numero de intentos realizados y los
estados de la alarma.
lo q no entiendo muy bien es como visualizar el tiempo del timer en el LCD.
supongo q es el programa seria mas viable si hago todo con las estructuras switch y el uso de funciones (q de esto no tengo idea)
por ejemplo para el primer punto haría algo parecido a lo siguiente:
tecla=kby_getc
swtich (tecla)
{
.
.
}
y ya dentro de cada caso hacer lo que deba que seria ingresar clave, cambiar o salir del programa.
para lo relacionado a las claves tengo el siguiente ejemplo q es de otro programa pero supongo q me sirve
#rom 0x2100={'7','2','3'} //posicion 0 1 y 2 de la Eeprom con los datos
//7,2, y 3 respectivamente
void main() {
char k;
int i;
char data[3], clave[3]; //Matrices para guardar clave y datos
lcd_init();
kbd_init();
port_b_pullups(TRUE);
while (TRUE) {
i=0; //posición de la matriz
printf(lcd_putc,"\fpulsar tecla 1\n"); //Para primer dato
while(i<=2){ //Para tres datos
k=kbd_getc(); //Lee el teclado
if (k!=0) //Si se ha pulsado alguna tecla
{data[i]=k; //se guarda en la posicion correspondiente
i++; //de la matriz
printf(lcd_putc,"\fpulsar tecla %u\n",i+1); //Siguiente dato
}
}
for (i=0;i<=2;i++) { //Pasa datos de eeprom a la matriz clave
clave[i]=read_eeprom(i);}
if ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2]))
{ printf(lcd_putc,"\fPuerta Abierta"); //Compara los datos con la clave
output_high(PIN_A0); //Si es igual da pulso al relé
delay_ms(500);
output_low(PIN_A0);}
else printf(lcd_putc,"\fPuerta Cerrada"); //Clave erronea
delay_ms(1000);
}
}
algun consejo...o estoy muy perdido???
Estuve viendo el proyecto del compañero zagoaristides, que hace gran uso del switch y las funciones, pero como no soy muy diestro esto del C, prefiero tratar de hacerlo yo mismo y entenderlo