Autor Tema: Duda con eeprom pic16f887  (Leído 3476 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Vala220805

  • PIC10
  • *
  • Mensajes: 18
Duda con eeprom pic16f887
« en: 25 de Octubre de 2016, 17:07:32 »
Buen dia
Quiero hacer un codigo que sirva como tipo cerradura con un lcd y un teclado matricial. El problema que tengo es que quiero hacer el codigo de manera en que pueda guardar una contraseña en la eeprom, para despues al introducir la contraseña con el teclado comparar ambas, la cuestion es que, no se de que manera puedo mandar esa contraseña a la eeprom.
Ojala puedan ayudarme con mi duda, no se si me explique muy bien, pero espero su respuesta.
Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Duda con eeprom pic16f887
« Respuesta #1 en: 25 de Octubre de 2016, 17:11:11 »
Usualmente vas a tener una funcion que lee posicion a posicion la EEPROM ( 8 bits a la ves )

Difiere demasiado segun el compilador que uses, sin saber que compilador usas uno no te puede indicar mas cosas.

Desconectado Vala220805

  • PIC10
  • *
  • Mensajes: 18
Re:Duda con eeprom pic16f887
« Respuesta #2 en: 25 de Octubre de 2016, 17:21:42 »
Usualmente vas a tener una funcion que lee posicion a posicion la EEPROM ( 8 bits a la ves )

Difiere demasiado segun el compilador que uses, sin saber que compilador usas uno no te puede indicar mas cosas.

Gracias por responder, uso el MPLAB, de hecho conozco el codigo basico para leer y escribir eeprom, al menos solo lo he usado en un programa que lee la memoria del pic, la incremente, y la vuelve a guardar para que al resetear el pic aparezca la memoria incrementada. lo que no logro razonar bien aun es como podria leer desde un puerto, mandarlo al eeprom y guardarlo

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Duda con eeprom pic16f887
« Respuesta #3 en: 25 de Octubre de 2016, 17:54:38 »
Tenes que dividir el problema...

Uno es tomar el valor del puerto. Lo mas seguro es que estes buscando hacer algun teclado 4x4 o 4x3.

http://www.electronicoscaldas.com/800-thickbox_default/teclado-4x4-matricial-membrana-27899.jpg
https://cdn.shopify.com/s/files/1/0557/2945/products/membrane-keypad-4x4.jpg?v=1410756064

Es la forma mas facil, de tener 10 botones al menos para ingresar la contraseña.

Por una parte, vas a tener que hacer un programa que leea eso.. Y que guarde el valor presionado en una variable.

-----

Otras partes pueden ser:

Un loop que pida el numero , guarde el numero en varios registros si usas ASM o ( un array si estas usando C), y al final cuando esten todos los numeros puestos, proceder a comparar con otro array o conjunto de registros.

Como veras no hable nada de leer o grabar la EEPROM, para leerla la podes leer apenas arranca el micro y guardarla en la RAM. Luego si deseas escribirla procedes a escribir en la EEPROM y reemplazar el valor en la RAM.
Como decia si lo tenes en un array, podes enviar uno por uno los valores a la EEPROM, suponete que tu contraseña es de 4 digitos. Por lo tanto tendrias esto:

Código: C
  1. unsigned char Contrasenia[4],i;
  2. bool Coincide;
  3.  
  4. // Cargo los datos
  5. for(i=0;i<4;i++)
  6. {
  7.    Contrasenia[i] = Leer_teclado();
  8. }
  9.  
  10. // Compruebo
  11. Coincide = true;
  12. for(i=0;i<4;i++)
  13. {
  14.    if(Contrasenia[i] != leer_eeprom(i))
  15.    {
  16.        Coincide = false;
  17.        break;
  18.    }
  19. }
  20.  
  21. // Son iguales?
  22. if(Coincide)
  23. {
  24.     //Doy paso
  25. }
  26. else
  27. {
  28.     // Paso denegado
  29. }

Para grabar podes hacer lo mismo, suponete que tenemos que grabar lo que esta en Contrasenia..

Código: C
  1. for(i=0;i<4;i++)
  2. {
  3.     grabar_eeprom(i,Contrasenia[i]);
  4. }


Espero haberte dado una idea... Pero si ya hiciste lo del LCD + teclado, haciendo como una cerradura, entonces deberias ser capaz de hacer esto.
Tal ves se te complique un poco en el tema de crear un menu para el LCD o cuando grabarlo.

Desconectado Vala220805

  • PIC10
  • *
  • Mensajes: 18
Re:Duda con eeprom pic16f887
« Respuesta #4 en: 26 de Octubre de 2016, 00:17:06 »
Gracias KILLERJC, si me ayudo lo que me dices, y si sera algo complicado hacer lo del menu, pero investigare mas a fondo, por cierto estoy usando lenguaje ensamblador, se que es mas facil usar C, pero quiero aprender asm. nuevamente muchas gracias