pues lo del post
post #11 me funciono bien, alli mismo comente que si funciono a la perfeccion, lo que comente arriba es lo del proyecto completo que subiste ya con el teclado donde pusiste en le puerto B el display en el C el teclado...
Ahí mencionaste que funcionaba por el puerto B.
Lo que yo verifique ahora, es que ese mismo programa funciona también por el puerto D.
Lo cual quiere decir que los programas y el PIC no tienen problema para usar la pantalla por el puerto D.
Este proyecto que modificaste no lo haz cargado en tu pic que te acaban de traer ?
Si, y funciona sin problemas, incluso tampoco tengo problemas al grabar el PIC con protección.
Aclaro que utilicé WinPic800 con el JDM por ICSP para grabar el PIC.
Cómo no tengo un teclado matricial 4x4, hice las pruebas conmutando los pines del puerto B.
Por ejemplo para la clave inicial que es 12345, entonces hago lo siguiente...
Para el número 1 se conmuta RB0 con RB4
Para el número 2 se conmuta RB0 con RB5
Para el número 3 se conmuta RB0 con RB6
Para el número 4 se conmuta RB1 con RB4
Para el número 5 se conmuta RB1 con RB5
Así consigo la secuencia de la clave 12345, y los mensajes se muestran correctamente en la pantalla.
Las rutinas trabajan bien, y no existen problemas, por eso te digo que cambies el PIC.
En la corrección anterior no quité las variables que no se usan.
Y la rutina para leer la clave inicial en la EEPROM, estaba mal y no funcionaba.
Es decir, siempre al iniciar, la clave sería 12345, con este nuevo cambio se guarda la clave cambiada.
Y al desconectar el PIC, o dar un reset, se lee la clave que se guardó últimamente.
Adjunto el programa con los nuevos cambios, y usando optimización de código.
Notas:
.- Como no puedes grabar el PIC con protección de datos en EEPROM, cambie el fuse por CPD_OFF
.- Para borrar los datos de la EEPROM en la simulación, ir al menú Debug/ Reset Persistent Model Data
.- Si tu PIC está dañado, estos cambios no harán que funcione.
Saludos.