TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: luisesteban en 06 de Marzo de 2012, 11:19:06

Título: Teclado y LCD
Publicado por: luisesteban en 06 de Marzo de 2012, 11:19:06
Hola:

Estoy practicando con un teclado y un LCD en un PIC 16f876A, al configurarlo me pide una variable donde almacena el resultado y me abre una interrupción por RB4-7.

En este caso la variable la llamo teclado, lo que no se, si almacena ahi el valor del teclado segun tabla y incluso habiendo mas de una pulsacion, en realidad solo pido introducir

valores desde 0 hasta 15. Y por otro lado una vez abierta la interrupción por el propio programa y recorriendo una tabla generada por el mismo, debo de cerrar la interrupción

y esperar en el programa principal que haya otra interrupción por pulsación? ................. Un saludo cordial y gracias a todos los que hacen posible la vida de este foro.
Título: Re: Teclado y LCD
Publicado por: luisesteban en 06 de Marzo de 2012, 12:48:51
Hola:

Para ser mas preciso, envío un programa donde intento posicionar unas bobinas dependiendo de la entrada de un teclado. Asi debo de contar en que bobina se encuentra y

cuando pulsemos de nuevo vaya a la derecha o izquierda dependiendo de donde este mas cerca. Lo raro es que el programa NIPLE que adjunto me da error al ser compilado,

diciendome error en algo de LCD. Si alguien puede saber porque le agradeceria todo su colaboración, como no me permite enviar un NPL le he cambiado la extención a word

adjunto programa, un cordial saludo
Título: Re: Teclado y LCD
Publicado por: luisesteban en 06 de Marzo de 2012, 13:01:12
Pido perdón jejje

Lo envío en rar un saludo
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 08 de Abril de 2012, 14:50:12
Hola Luisesteban, hola a todos por acá. Tengo problemas con esa parte del programa, me da errores de duplicidad de direcciones

y probé las configuraciones que se me ocurrieron, sin éxito. No genera el exe. Si alguien sabe que ocurre y tira idea se lo agradesco. Dejo el NPL,

ASM y el archivo de errores por si lo prueban. Está en Niple 5.6. Nuevamente gracias desde ya y espero una respuesta.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 08 de Abril de 2012, 17:22:54
Pido perdón jejje

Lo envío en rar un saludo

¿No deberias de haber configurado la parte alta del puerto B como entradas, cuando vayas a leer el teclado?
Tienes configurado todo el puerto B como salidas, eso esta bien cuando vas a enviar datos al LCD pero cuando quieras leer la tecla pulsada deberias de reconfigurar la parte alta del puerto B como entradas.
De echo me imagino que por este motivo la interupcion de RB4 a RB7 tampoco te funcionará.
Quizas lo mejor seria configurar inicialmente como entradas(4..7) y cada vez que vayas a escribir en el LCD lo reconfiguras como salida, pero siemprte antes de salir de las rutinas de escritura debes de volver a configurarlo como entradas, de esa forma siempre te saltaria la interrupcion por cambio de estado en RB4 a RB7.

F.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 08 de Abril de 2012, 17:29:12
Hola Luisesteban, hola a todos por acá. Tengo problemas con esa parte del programa, me da errores de duplicidad de direcciones

y probé las configuraciones que se me ocurrieron, sin éxito. No genera el exe. Si alguien sabe que ocurre y tira idea se lo agradesco. Dejo el NPL,

ASM y el archivo de errores por si lo prueban. Está en Niple 5.6. Nuevamente gracias desde ya y espero una respuesta.

Lo mismo que para luisesteban, creo que has tenido la precaucion de configurar la parte alta de RB4 a RB7 como entrada, pero cuando vas a escribir en LCD debes de reconfigurar el puerto alto como salida y antes de salir de la subrutina correspondiente volver a reconfiguarlo como entrada.
Esto es por compartir el teclado y LCD en el mismo puerto y con las mismas lineas.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 08 de Abril de 2012, 23:27:02
Ok Fer, como siempre en la linea y ayudando, se agradece. No me di cuenta antes, pero aunque tarde,23y30 por acá, les deseo unas Felices Pascuas a los que leen y en especial a ustedes. Creí que eso lo manejaba Niple directamente, lo que comentas lo desconocía. Las interrupciones y funciones no las probé aún, jamás compiló, pero te enterarás porque seguro estaré molestando nuevamente. Creo que el algoritmo es correcto, pero seguro con errores como el que me has "desburrado". Mañana trataré de probar este y uno modesto que indica estados por leds, así ambas versiones quedan acá para quienes les sean de alguna utilidad. Un abrazo
Santiago
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 13 de Abril de 2012, 01:21:12
Lo prometido es deuda y aca dejo un teclado cuasi terminado, se pueden cambiar el código de la eeprom, sacar varias funciones, etc., falta optimizar pero ya pinta para útil. Gracias por la ayuda y espero le sirva a alguien. . Codigo inicial 1986, * habilita cambio de codigo, se ingresa 2 veces las 4 cifras y si no marco error valida y resetea. Permite 3 errores en todos los casos. Un abrazo, Santiago
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 13 de Abril de 2012, 01:49:07
Enhorabuena lucegiar :-/ :-/ :-/
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 15 de Abril de 2012, 08:54:09
Gracias Fermín, no seria sin la ayuda del foro y tuya en especial. El alemán de la "azotea" no se que hizo, ya que creí haberte agradecido, se que redacté el mensaje y después no sé porqué no lo he subido, agradeciendo y colgando el NPL para completar la documentación, cosas de la edad; jejejeje. Bueno, acá esta, Un abrazo y ya te estaré molestando por otros temas o este que no está finalizado aún, faltan los display´s.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 29 de Abril de 2012, 01:32:51
Hola a todos en el foro. Bueno, acá de nuevo y con preguntas. He continuado intentando, sin éxito, el teclado con LCD, y me continua dando el bendito error de Direcciones duplicadas o diferentes en segunda pasada o algo así, está en el archivo de errores, y no veo a que se refiere con esto. Al no compilar el .hex no puedo seguir. Niple se encarga de cambiar a salidas RB4-7 cuando inhabilita el teclado, no creo que sea por ahí. y no veo que otra cosa esta mal. Alguien me podrá encaminar a la solución? Desde ya agradezco toda colaboración. Adjunto los archivos para que vean lo que tengo hecho.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 30 de Abril de 2012, 07:29:35
A ver si tengo un poco de tiempo esta tarde-noche y te pùedo decir algo.

F.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 30 de Abril de 2012, 08:17:28
Dentro del programa principal prueba a :


Borrar el 7 bloque donde configuras el led. con esto ya no e da los errores en la generacion del hex. Luego prueba a ver si te funciona el programa.
En caso de que no te funcione prueba a copiar el 2º bloque de la interupcion de RB4-7 en el lugar donde has borrado el bloque anterior.

Los errores te los daba por tenr diferentes configuraciones del lcd.
En caso de que no entiendas lo que te digo hazmelo saber y te adjunto los programas corregidos y compilados.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 30 de Abril de 2012, 10:17:02
Hola Fer, un abrazo.  Te agradezco la gentileza de tu tiempo. Ayer me di cuenta y lo hice y también pude hacerlo compilar, buscando como era eso de 2da pasada en el .asm, era lo que me indicó más posible y efectivamente era. Hasta ver hoy tu mensaje creí que solo era una falla. No alcance a comentarlo pues anduve con líos de veterinarios hasta las 3 am y hoy sigue. No anduvo el prog, no he probado tu 2da indicación, pero en breve lo haré y comento a ti y al foro. Por ahora, al menos, algo más he aprendido.  Ya estaba pensando en una falla de Niple, creo que sería bueno tener un manual de la versión o cercana, tengo de la 4.  Luego subo lo que haga. Gracias Fer.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 30 de Abril de 2012, 17:02:42
¿Como y con que pruebas el programa?
Simulando en proteus por ejemplo o directamente sobre un montaje real.
Si lo haces simulando puiedes ir comprobando el programa paso a paso y ver donde falla.
Si lo haces de manera real, deberias y probando o bien por partes o bien debugueando con algun sistema IDC3 pickit3 o similar.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 01 de Mayo de 2012, 01:30:27
Simulo en Proteus, pero mi PC es la de Manuelita la tortuga, se comunican con "tortubyts", el precio de estar tranqui lo pago dejando al resto de la flia. la P4, corro con solo 800 Mhz. De todo modos algo adelanto y cambie algunas cosas, veo la pantalla con datos iniciales, no ingresa el codigo aun pero con un poco de suerte algún día lo hará, espero. En Proteus uso este esquema. Está acorde al esquema que presenta Niple, y el programa viejo o modificado.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 01 de Mayo de 2012, 01:51:08
El archivo, DSN. Equivoqué la tecla antes y publique antes de tiempo. Tambien simulo con PICSimulator, pero es más lerdo aunque ves la evolución de los registros, si tengo tiempo lo haré.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 01 de Mayo de 2012, 08:26:59
He estado revisando lo que has adjuntado:

1º No veo ningun mensaje en lcd, indicas que ves datos iniciales, en mi caso no por lo que entiende que no debes haber adjuntado el fichero en el que los ves tu.
2º Tenes configurado el oscilador como nterno a 4MZ y en "HS". Lo he cambiado a externo 4MHZ y "XT". Ahora va mucho mas rapido.
3º Para simularlo en proteus puedes ponerlo exterior y xt aunque no dibujes el cristal.
4º Me parece que no tienes el esquema igual que Niple, me parece que tienes intercambidas las filas. salidas de b0->F4; b1->F3; b2->F2 y b3->F1. En Niple van b0->F1; b1->F2; B2->F3 y b3->F4. Comprueba esto.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 01 de Mayo de 2012, 11:47:09
Hola Fer, buen día y Feliz Día del Trabajador, y para aquellos que leen igual. De nuevo por acá. Probé el DSN que te mandé y es correcto, al menos acá me da el

Msje inicial si tecleo unos dígitos, lo baje y probé por si me había equivocado al enviarlo. Dentro del lazo de barrido de filas hay una llamada a una rutina que según

sea el valor del registro asociado debe elegir una de cuatro pantallas posibles, valor que cambia según se trate de acierto, fallo, introducción de código o reintro del

mismo. Mientras escribo veo el error del DSN, botón 9 siempre cerrado, lo cambie y anda rápido, pero hace lo que quiere el y no yo. Durante el dia veré que más

avanzo. Voy a sectorizar el programa para una especie de bebauguear y ver que encuentro.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 02 de Mayo de 2012, 07:55:30
Hola de nuevo:

Acabo de descargar otra vez el programa de nuevo y probar. Lo he mitados un poco con mas detenimiento y:

1º Sigo sin ver nada en el lcd salvo despues de almenos una pulsacion sobre tecla numerica yluego pulsando la tecla F1. En ese momento me aparece elmensaje"Ingresar codigo 0000 F4=Acepta.

2º  No se exactamnete la secuencia  que quieres realizar con el programa de ahi mis dudas. Como por ejemplo que tecla es para cambiar la cable o introducir la primera.

3º Me reitero en lo del post anterior. Tienes cambiadas las lineas de las filas con respecto al esquema que te propone Niple.
4º lo de la tecla "9" que se queda cerrada, al principio a mi me pasaba lo mismo pero a hora no me sucede, te adjunto el DSn de proteus para que pruebes. NO he cambiado nada con respecto al tuyo.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 02 de Mayo de 2012, 12:59:40
Hola Fer, un abrazo. Tienes razón en la distribución de lineas, estaban invertidas, te pido disculpas por la insistencia sin que fuera tozudez, las revise varias veces y no veía el error. Corregido. Lo del Inicio también a mi es la única pantalla que muestra, pero sin necesidad de apretar tecla alguna. El funcionamiento:
Siempre espera una tecla pulsada
1º Compara 4 teclas y si esta bien da paso al resto de las funciones, permitiendo 2 errores antes de borrar los registros.
2º Según la pulsada eliges la acción próxima, sea cambio de estado de biestable. pulso, "cambio de clave", etc..
3º Func1:Para cambiar la clave se ingresan y almacenan 4 dígitos. F2: Se reciben 4 dígitos y se comparan a los almacenados. F3: Si son iguales se cambian los valores existentes en la eeprom, se adquieren los nuevos valores para su comparación con códigos ingresados futuros, se reinician todos los registros y se sale.
Las rutinas LCD son de pedido de código, repetición del mismo, error y acierto, e intentaba que se vieran según el estado de un registro. Revisaré y re emprenderé todo a ver que pasa. Quiero ver de sacar el codigo fuera de la interrupción. Te comento apenas tenga algo hecho.
Aunque sea repetitivo, pero bien merecido, te agradezco tu ayuda enorme.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 03 de Mayo de 2012, 05:42:26
Hola:

Entiendo por lo que dices que lo que quieres realizar es que:
1º Nada mas dar tensión te aparezca la pantalla con ???? para solicitar el número de clave.
2º se introducirá un código de 4 cifras y se validará con F1.
3º Con esto quedaría establecida la nueva clave.
4º Se actúa sobre F2 y se introduce calve de acceso
5º  Una vez tecleados los 4 dígitos actuando sobre F3 se comprobarían los números introducidos con los guardados y si son correctos se hace lo que sea (código correcto9 y si son distintos (código erróneo)

Esperaré tus avanes y si tengo tiempo( estoy muy liado con un proyecto) te echaré una mano en corregir y realizar hasta ver si consigues lo que quieres conseguir.
F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 03 de Mayo de 2012, 06:48:51
Fer: el funcionamiento no difiere en muco del de teclado con indicación de leds, agregué la posibilidad de reescribir un dato si me equivoco, los mensajes y la necesidad de conversión BCD, el oscilador interno para disponer de más pines y algunas funciones en las teclas "F", el resto es igual, no entiendo que pasa. Ya debo ir al trabajo por lo que quedo sin programas para seguir probando hasta el regreso. aun abrazo
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 03 de Mayo de 2012, 14:04:03
Por si te sirve de algo:

1º Te he cambiado las lineas de las filas en el equema del proteus que te adjunto
2º He modificado un poco el programa para intentar ir viendo donde puede estar el(os) fallos. Lo primero que he realizado es dejar dentro de la rutina "Mostrar" el bloque que llama a la subrutina "LCD_codigo_Solicitado" y ver si llega hasta ese punto sin pulsar ninguna tecla y ver que se sale el mensaje de bienvenida.
Hasta ese punto es correcto.

A partir de ahi he añadido el bloque de evalular registro mensajes=1. En está situacion ya no llega a salir el mensaje de bienvenida, pidiendote la clave hasta que al menos no se pulsan 3 teclas numericas mas el F4. En ese momneto es cuando sale dicho mensaje.
Me parece que a partir de ese momento hay algo que no va bien, entiendo que primero deberia de salir el mensaje, ir viendo que numeros se van marcando y despues validando con F4 para introducir la nueva clave.
Si luego añado mas bloques es cuando no hace nada mas.
Por otra parte creo que lo ideal en el programa seria empezar guardar un numero inicial a grabar (ya que entiendo que la EEprom estará vacia) y despues cambiar el numero inicial, pero esto es segun los gustos.
Según vaya disponiendo de tiempo intentaré ir mirando mas cosas.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 03 de Mayo de 2012, 15:15:39
Gracias Fer, te comento que había modificado mi DSN acorde a lo que me indicaste,queda igual al que me enviás, y utilicé RA6 y 7 para dos diodos que me indican en que parte del código esta el programa. Lo probé un poco y se queda por donde indicas y en la rutina validar de donde no sale, pero no he podido dedicar tiempo a profundizar más en el rastreo del error. Te comento algo que he agregado: tecla a bcd 8 bits, según contador copio unidad de este ultimo a uno de los 4 que integran otro bcd de 10 bits, obteniendo así el código completo para mostrar. ¿Es correcto hacer esto?
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 03 de Mayo de 2012, 15:32:53
Fer, me acabo de dar cuenta que parece que no sabes que el código esta escrito en la eeprom desde el principio, al grabarlo, ese es el primer código a ingresar: "1986", el mismo que el de leds, es en el que se basa todo este proyecto y su continuidad. Si abres los registros de la eeprom los veras a partir de "Axh", también en el asm debe verse en el detalle de la memoria. Por eso espera desde el principio un código, de no ser así seria inseguro ya que cualquiera podria meter un password.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 03 de Mayo de 2012, 15:35:35
Tambien estoy muy liado con un proyeco que puedes ver en el subforo de PLC.
de todas formas intentaré segun el tiempo disponible seguir ayudandote. pero para que todos vayamos en la misma direccion sino te parece mal, cada vez que realices algun cambio bien en el programa en el proteus, deberias de adjuntarlo y de esa manera si alguno hacemos algun cambio no erdemos tiempo en buscar las mismas erratas.

F.


P.D. mientras escribia el mensaje has añadido otra respuesta, lo tendré en cuenta.
Título: Re: Teclado y LCD
Publicado por: vesperia en 03 de Mayo de 2012, 17:10:33
lucegiar, como le comentabas a Fer, acabo de ver q usas las direcciones 0Axh hasta 0Dxh de la EEPROM para guardar el código "1986" como valores iniciales. Te comento que por lo menos con el PickIt 2 tuve problemas intentando grabar datos de manera directa en la EEPROM, ya que desplazaba los valores salteando de a una dirección y agregando un 0 entre cada valor. Para hacerlo más claro, para tu caso el programador grabaría:

0Ah: 1
0Bh: 0
0Ch: 9
0Dh: 0
0Eh: 8
0Fh: 0
10h: 6

Aclaro que esto me lo hizo en un PIC18F4620, si alguno conoce una solución le agradecería que me la comentara!
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 04 de Mayo de 2012, 01:57:55
Hola vesperia, gracias por el comentario, que por cierto tendré en cuenta al grabar el PIC, por ahora solo he simulado con Proteus, no me dio problema con el que

indica con leds, igual método, simuló perfecto, pero la realidad es otra cosa. Buscando nuevas alternativas cambie la distribución del algoritmo. Fer debe estar por

acá o estará, por lo que a ambos les dejo lo nuevo, no significa dejar el otro, solo una variante. No pude meter las visualizaciones en las rutinas pues desbordaba el

stack, se clavaba. Este va mejor, si no fuera porque reconoce claves que no ingreso, ingresan sola,  :D :D, mañana veo de que se trata. Fer: no he podido usar tu

arreglo con el nuevo .hex. Acá lo hecho hoy. por si quieren mirarlo y ver que hay. Me voy a la cama, mañana temprano me suena el gallo, el fin de semana espero

concretar esto en placa. Nos escribimos. Un abrazo
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 04 de Mayo de 2012, 02:00:14
Los archivos.  :D :D
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 04 de Mayo de 2012, 05:38:53
Ahora estoy en el curro, al llegar a cas lo reviso un poco.

F.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 04 de Mayo de 2012, 16:27:55
Ya veo que parece que has avanzado.
Ahora se ven mas cosas por el lcd, pero desgraciadamnete me parece que sin control. Como no has adjuntado el fichero fuente, no puedo revisarlo.

No desesperes que me parece que estás avanzando bastante.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 04 de Mayo de 2012, 21:12:04
Mil disculpas Fer, y a todo el que le interese este tema, me olvidé. Lo cuelgo ahora. Te comento que estoy muy desorientado, mete claves y las reconoce, pensé que no cargaba de la eeprom, tecla_1-4 en 0 y no presionado= 0: valido, modifiqué eso cargando sin rutina y "validando"???. Ruido por visualizar y tener activada la int B7-4, modificado: desactivo y activo durante la muestra. Sin teclas presionadas, con código cargado en comparación,  creo que diagrama DSN correcto, también borrando barrido de B0-4, de todos modos me reconoce esos 4 dígitos no ingresados y comparados. Lo que me preocupa es el que digite, sin eso sería posible seguir. Ahora se suma GTIME de Spice que me corta, falta de PC creo, un lío  :x :x. Veré por donde seguir pero estoy muy empantanado.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 05 de Mayo de 2012, 09:04:14
Hola de nuevo:

Mira he descargado el proyecto V6 y mas o menos hace lo que dices. Este finde con un poco mas de tiempo a ver si lo voy revisando. De momento he realizado una prueba para ir delimitando donde puede estar el(os) errores, te cuento lo que he realizado.
He cogido el programa principal, he inhabilitado el bloque de activar las interrupciones y un bloque mas (los puedes ver en color gris), ademas he añadifo un par de bloques al final del escaneo de teclas. De esta forma intentaba ver que se escribian correctamente todos los mensajes de la pantalla principal.

Si lo pruebas ves que es correcto, ahora esta tarde el siguiente paso sera meterme dentro de la interrupcion e ir delimitando las cosas. Te ire informando poco a poco segun veamas cosas.

Te adjunto el fichero de proteus y el niple que he modificado para que lo pruebas si quieres. Dentro del proteus pues una ventana Watch para ver si se incrementa el registro mensaje.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 05 de Mayo de 2012, 11:33:12
Buen dia Fer, gracias por tu comentario. He modificado un poco el .NPL y te lo mando para que lo evalúes,  modifique el visor inicial para que muestre los valores instantáneos de los registros tecla, tecla_1-4(copia de los de eeprom para comparación), temporal_1-4(copia del 1er código para el cambio) y presionadas(conteo de las teclas presionadas). encontrado el error de validación y corregido(positivas<=4???-- positivas>=4). Veras al correrlo que siguen entrando códigos pero ya no los valida. Este ultimo es mi pesadilla,  no veo el origen de los pulsos, pulsadores abiertos por lo que no es de las salidas B0-3, ingresa aun cuando no "barra" esas salidas, ruidos??? no sé.  :(Ya veré que más puedo hacer, ¿deberé dedicarme a la costura? :shock: :shock:. Fuerte abrazo Fer, nos escribimos.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 05 de Mayo de 2012, 17:23:00
Has adjuntado el hex no el npl ;-)

Puedes añadir en la ventana del Watch la(s) varible(s) = tecla y presionadas y ver si los valores cambian sin introducir ninguna pulsacion.
No se si Niple lo hará, pero quizas se poria mirar colocar un pequeño retardo entre detecciones de teclas pulsadas no vaya a ser un efecto de reborte que se producen al abrir y cerrar los contactos de cualquier interruptor, pulsador, tecla,.... Eso o guardar el valor de la tecla pulsada y despues al cabo de un prqueño retardo volver a leerla para comprobar que no se haya producido el efecto descrito.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 05 de Mayo de 2012, 17:49:49
Oye, oye,

Me acabo de dar cuenta de una cosa si estas probando el programa en proteus. En el ultimo esquema he obsevado que la linea de las filas F4 no cambia nunca. Un vistazo mas detallado veo que la entrada al pin D3 del buffer está a la aire. :oops: :shock: :shock: :shock: :shock: :shock: :shock:

Por fa, chequalo haciendo la union con el ultimo programa que has modificado.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 05 de Mayo de 2012, 19:48:51
He comprobado lo que me comentas, tengo todos los pines conectados y cambian de color, igualé tensiones con resistores pullup en b4-7 para estabilizarlas, sigue el problema, definitivamente es la re conexión del teclado pero no se porqué, lo que no encuentro es el modo software o hardware para evitarlo. ¿A ti te entran códigos sin presionar teclas? No creo que sea solo en mi maquina, ¿O sí? ¿Alguien que lea y tenga una idea?
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 05 de Mayo de 2012, 20:15:07
Pues he probado el ultimo hex y:

1º en el lcd me sale: Ingrese acceso presionadas 000
2ºempieza a contar de 1 a 4
3 sale codiogo correcto elija funcion
4º vuelve al paso 1, pero sin incrementar nada

Y ahi se queda por siempre hasta un monton de rato que se para la simulacion

Bueno ahora voy pa la cama que son casi las 2 de la madrugada. Mañana intentaré seguir algo.

De todas formas deberias de indicar de forma detallada y clara (punto a punto) como se va a manejar todo. es decir:

1º Se pone en marcha y se grabala clave en EEmpom
2º Ingresar codigo de acceso
3º Si es correcto elegir funcion con F1, F2, F3 o F4
4º Con F1 se cambia la clave(por ejemplo)
5º Con F2 se resetea ( lo que sea)..............
6º Con F............

y asi sucesivamnete. De esta forma será mas facil seguir el desarrollo del programa.

Bueno seguimos mañana ;-)

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 05 de Mayo de 2012, 22:10:11
Hola Fer. Convencido de que era el .NPL no te detalle el funcionamiento. Lo hago ahora:

0) Carga los valores, almacenados en la eeprom, en tecla_1 a 4.
 
1)Solicita el código de acceso y barre el teclado.

2) Si se ingresó un dígito ingresa en la interrupción y lo compara con el código valido,tecla_1 a 4. Si todos son correctos´, al apretar la 5ta tecla, ves el mensaje de Aceptado y habilita las demás funciones.Si no muestra error de código.Si da error 3 veces borra los registros y vuelve a inicio.

3)Con * seleccionas cambio de código y te pide la primer vez el nuevo código.

4)Ingresados 4 dígitos (código nuevo) los almacena (temporal_1a4) y solicita repetir el codigo.

5) Ingresando 4 dígitos los va comparando con los almacenados en el paso anterior y, si son correctos pasa sin visor a grabar el código nuevo en la eeprom y cargar el nuevo código en tecla_1 a 4 para futuras validaciones, se reset todos los registros. Si no muestra error de código.Si da error 3 veces borra los registros y vuelve a inicio.

- Las funciones adicionales se ejecutan si no elijes cambio de código. Cambiar código al salir lo hace reseteando todo, por lo que debe validarse el código nuevamente para las funciones

- F4 acepta el código ingresado (necesario para poder corregir el 4to valor ingresado), mientras F3 hace que no avance el contador de presionadas y se pueda corregir el valor ingresado.

- Las funcione de cada tecla son elegibles o descartables según necesidad.

- He modificado los mensajes y solo se va en el inicia (único mostrado fuera de valido o no), donde veo: Valxx (codigo valido), tempxx(valor guardado en 1er paso del cambio de código, contxx(numero de tecla pulsada)y Tec xx(valor de la tecla pulzada.
Además he modificado poniendo todos los pines RB0 a 3 a +V, luego habilito la interrupción y barro el teclado, con lo que elimino el valor de cualquier tecla residente durante la interrupción.

El problema está en la re habilitación del teclado, pero no le encuentro la pata a la sota.

Espero no haber olvidado cosas, :-) el alemán no me deja claros en la cabeza.  :5] 
Un abrazo.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 07 de Mayo de 2012, 12:50:08
Al final, ayer luego no pude hacer nada.
Ahora descargo y chequeo.

F.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 07 de Mayo de 2012, 13:23:17
Acabo de probar y por lo que veo que se realiza es que en la pantalla inicial: se presenta el valor (que me supongo que se guarda en la eeprom 1-9-8-6 como primer codigo); en cont ( se ve un incremento de 1 a 4); en temp y tecla el valor de 00 sin cambiar. A continuacion directamente sale el mensaje de error de codigo-espere reinicio y luego vuelta a empezar.

Te pasa a ti lo mismo?

Creo que:  despues de que vieras grabar el codigo, en este caso 1-9-8-6,(primer codigo despues de un reset, me imagino) deberia de cambiar el display y pedir "Introducir codigo" y aqui si quieres y siempre para probar, deberias de ver el valor de la tecla segun vayas introduciendo las pulsaciones de las teclas y validarlo con F4 segun indicas.
Si esta bien dar codigo OK y hacer lo que quieras. si NO es ok dar codigo erroneo. En cualquier momento si quieres cambiar el codigo pulsas "*", mensaje introducir nuevo codigo y guardarlo despues de validarlo con F4.

F.

P.D. seguire mirando mas tarde con mas detenimiento.










Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 07 de Mayo de 2012, 15:25:48
Hola Fer. Acá pasa lo mismo, ese es el problema, que se introducen códigos erróneos constantemente, no sirve de nada frenarlo con "F4" para aceptar, por eso lo dejé en "carrera libre", del otro modo cuando aceptas da error (lógico, no has entrado tú el pass) y carga de nuevo solo el código nuevamente. resulta poco probable poder continuar si el código se auto ingresa, pero estoy seguro que no es el programa que hice, es el 74LS al conectar las columnas a RB4_7 a mi parecer. El 1-9-8-6 lo grabas al quemar el pic, "de fabrica", luego se cambia pero no se recupera jamas, lo sobre escribes y adiós. Tecla y temp siempre son 000 porque es el valor de las teclas si no están presionadas, y porque no se introdujo el 1er código para el cambio respectivamente. Si juegas a pulsar teclas durante el proceso veras que en Tec se refleja su valor cuando le ganas al problema de auto ingreso. Complicado el asunto. desde soft y desde hard he hecho lo que sé para eliminarlo y nada. Sigo en la lucha pero sin ideas ya. Espero que alguien aporte solución a ese problema, del resto creo que está bien encaminado. Un abrazo.

Pdta.: ¿Que posibilidad de que sea Niple el que maneje mal el asunto?
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 07 de Mayo de 2012, 17:09:07
Mañana con mas tiempo le echaré un vistazo con calma
F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 08 de Mayo de 2012, 00:20:48
Hola Fer. Recién fracasé con todo éxito una vez más. Se me dio por probar otro modo de salir de la interrupción con la misma desactivada, mostrar el mensaje que corresponda y habilitar la interrupción posterior a la re inserción del teclado, para lo cual añadí una comparación desde la que hago que pase por el msje, active recién la int. y luego quede barriendo el teclado. Lo mismo auto ingresa códigos. Dejo el NPL que explique mejor que yo. Mañana la sigo.
Título: Re: Teclado y LCD
Publicado por: MGLSOFT en 08 de Mayo de 2012, 00:33:04
Ja..ja!!
Me mato la frase: "Fracase con todo exito"
 :D :D :D :D ((:-)) ((:-)) ((:-)) ((:-))Excelente humor el tuyo!! ((:-)) ((:-))
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 08 de Mayo de 2012, 07:03:43
Gracias MGLSOFT, pero debieras verme cuando recién fracaso,  :5],  :D :D :D. Un  abrazo y un gusto.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 09 de Mayo de 2012, 02:04:20
Ayer hice una pequeña prueba,
realice el  programa principal SOLO, con la rama de mensajes=0, eliminando el resto. Borre todas las subrutinas excepto la de visualizacion inicialy dentro de la interrupcion por RB4... RB7 solo conecte una led parpadeando un segundo una sola vez.
Mas tarde si funcionaba ir añadiendo mas osas.
De esta forma prtendia ir observando si entraba en la rutina de interrupcion. Hasta dond ellegan mis conocimientos de pics y de programacion, solo deberia de entrar en la interrupcion en caso de pulsarse una tecla.
Pues cual fue mi sorpresa que SIN accionar ninguna tecla, está continuamnete interrumpiendo y saltando a la rutina de cambio de estado.

Me da que, hay, hya Niple está haciendo algo raro. Hoy si tengo tiempo voy a estudiar el fichero "ASM" que genera para ver si es NIple el que falla o es proteus.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 09 de Mayo de 2012, 09:39:49
Hola Fermin, ¿como andas? Te comento que creo que es Proteus el culpable de la falla, no estoy seguro aún, pues he simulado el .hex con PicSimulator durante unos minutos y no se produjo, los registros evolucionan acorde a lo esperado en la primer parte de la simulación. No puedo hacer complleta la simulación porque estoy en el yugo laboral, el correr lento y me ocuparía tiempo del que no dispongo acá. En casa veré de darle más, pero deje correr unos 15 min en la primer pantalla y no se mostro cambio en los registros visualizados. Te comento cualquier cosa que logre saber. Fuerte abarzo y el agrdecimiento de siempre para ti. Santiago
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 10 de Mayo de 2012, 19:41:43
Hola. Bueno, creo que esto quedará en espera a la realización de la placa correspondiente. PIC Simulator me hace la primer parte del programa, pero no responde a la tecla (no hace nada cuando la activo) como si no existiese. disparo desde una entrada pero queda trabado aunque se vé correr los registros, quizá porque no entienda que tecla se activo o por lo que sea. Uno se dispara solo (Proteus) y el otro no (PIC Simulator) con lo que el desempate se me ocurre en real. Un abrazo. Santiago.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 12 de Mayo de 2012, 08:25:10
hola lucegiar:

te adjunto unos cambios sobe la ultima version que adjuntaste.
Puedes probar el resultado. ya esta compilado, solo tienes que cargar el hex.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 12 de Mayo de 2012, 10:28:24
 :-/ :-/ Sos un grande Fermín, sensacional, no se como lo hiciste pero no se auto dispara. Si puedes comentarme qué estaba mal o poner el .npl para ver la modificación y aprender de ella te lo agradeceré. El mismo problema se me presentó en una alarma y por interrupción RB4-7 también, lo solucioné guardando el valor de los pines y comparándolos luego, si estaban distintos era una interrupción, acá no me dio buen resultado. Un abrazo. Santiago
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 13 de Mayo de 2012, 18:00:37
Adjunto el proyecto completo.

Practicamnete revisé el ASM generado y corregi algunas cosa que me parece que Niple no hacia muy bien.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 14 de Mayo de 2012, 10:31:33
Gracias Fermín. Ya solicité a Jorge Cano que vea una solución para este tema si así corresponde, ya que , siendo un programa para los que, como yo, no conocen de ansambler, es posible que otros compradores de Niple estén trabados o hayan abandonado un proyecto en la creencia de estar equivocados en su modo de programar. No dudo que para Jorge, como creador del Niple será relativamente fácil encontrar un error si lo hay, y solucionar, a los compradores del mismo, los inconvenientes encontrados. Lamentablemente no puedo continuar este hasta no tener solucionado este inconveniente, no se de ansambler y debería modificar el .asm con cada compilación, imposible para mi. Quedaré a la espera de respuesta y solución para continuarlo. Un abrazo. Santiago
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 14 de Mayo de 2012, 16:49:08
Es la mejor solucion la de intentar contactar con Jorge Cano.
Así si es un error podrá corregirlo y el programa mejorará. No cabe duda que el desarrollo de un programa de estos requiere un gran esfuerzo.

Ya me contaras, el resultado y si necesitas que te compile algun otro dimelo y busco un hueco para realizarlo.

F.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 23 de Mayo de 2012, 00:54:59
Bueno, acá estamos de nuevo, un poco más adelantado el programita. Jorge Cano me solucionó el problema y he podido continuar, falta pulir el código y terminarlo, pero por si a alguien le gusta probar dejo lo hecho hasta hoy. Tiene algunos detalles pero hace su trabajo casi completo.
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 23 de Mayo de 2012, 23:58:10
Hola a todos los que lean este post. Excepto por una lectura inicial del valor mostrado en "tec" en el lcd, esta funcionando bien el desarrollo. Su código inicial 1987, F1

habilitado solicita cambio de código, F2 habilitado resetéa todo para salir cuando se esta en las funciones, F3 resta al conteo de teclas presionadas para sobre

escribirlas en caso de equivoco, F4 acepta lo ingresado cuando se pulsa como 5º carácter, si no es un valor más, 8-9-*y# tienen funciones cuando están habilitadas.

dejo el hex y proteus para simularlo, no pongo el npl para que el que quiera aprender lo desarrolle desde el del post anterior, si lo quieren me lo piden y con gusto se

lo paso. Un abrazo. Santiago
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 24 de Mayo de 2012, 01:55:44
Me alegro que lo hayas conseguido.
Lo echaré un vistazo para ver coo te ha quedado

F.
Título: Re: Teclado y LCD
Publicado por: vesperia en 24 de Mayo de 2012, 14:03:17
Me alegro de q hayas podido solucionar todo y tengas tu proyecto andando! Tuviste problemas grabando el n° 1987 el micro directamente desde el soft de grabación? Yo todavía no pude resolver ese tema en mis programas.. cuando quiero grabar varios valores consecutivos en la EEPROM el asm pareciera estar bien, pero el HEX tiene ceros entre cada valor... alguno tendrá una idea de como solucionarlo? quizas no sea un problema de niple, para compilar estoy usando el mpaswin
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 24 de Mayo de 2012, 15:11:19
Me alegro de q hayas podido solucionar todo y tengas tu proyecto andando! Tuviste problemas grabando el n° 1987 el micro directamente desde el soft de grabación? Yo todavía no pude resolver ese tema en mis programas.. cuando quiero grabar varios valores consecutivos en la EEPROM el asm pareciera estar bien, pero el HEX tiene ceros entre cada valor... alguno tendrá una idea de como solucionarlo? quizas no sea un problema de niple, para compilar estoy usando el mpaswin

¿Con que version estas trabajando?
Título: Re: Teclado y LCD
Publicado por: vesperia en 24 de Mayo de 2012, 17:11:05
Es el mpasm v5.37. El hex output esta seteado en default, procesador directamente elegido en 18F4620, extended mode. Si edito el hex efectivamente hay ceros entre los valores de la eeprom. En el asm generado por niple no aparecen esos ceros en la sección de "DATOS EN MEMORIA EEPROM". Rarisimo... si alguno tiene una idea sería una gran ayuda
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 24 de Mayo de 2012, 17:28:57
Mme referia a la version de Niple. :mrgreen: ;-)
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 24 de Mayo de 2012, 20:24:23
Hola Fermín, vesperia y a quienes nos lean.
Fer: cuando puedas y no antes la revisión y critica, demasiado has hecho para que llegara, no puedo pedir más sin que sea abuso, siempre .
Vesperia: no lo tengo en lo real aún, carezco de entorno de desarrollo para pruebas, lo haré pronto ya que una parte de esto está en algo que me contestarán si lo hago para mi trabajo, como cierre codificado de los baños para profes y empleados, sin beneficio mayor que el placer de realizarlo, tampoco costo. Voy a dejar el npl ultimo, El que quiera lo baja antes o después de probar cambios. Niple 5.6.2 es la que se utilizó para hacerlo. Tiene cambios de contenido ve visores, mensajes, pero en lo basico son iguales. Esta simulado nada más, pero funciona ahí y espero también "en vivo"  :D.
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 25 de Mayo de 2012, 01:47:21
Mme referia a la version de Niple. :mrgreen: ;-)

Me referia a la consulta de Vesperia
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 25 de Mayo de 2012, 09:11:48
Buenos días. Lo sé Fermin, el comentario de versión de Niple era para vesperia por si lo queria editar y tenía dificultad, para tí el agradecimiento  ((:-)).
Vesperia: en el hex veo 01-09-08-06 en las direcciones de la eeprom, lo cual es lógico considerando un registro de 8 bits, si ves 00-01-00-09-00-08-00-06 creo que tendría logica si el registro es de 16 bits conformado desde 2 registros de 8. Espero estar en lo cierto, Fermin o tu seguro me desburrará si es equivoco mi concepto. ¿Es esa tu pregunta? Un abrazo. Santiago
Título: Re: Teclado y LCD
Publicado por: Fer_TACA en 25 de Mayo de 2012, 10:00:26
Si fuese un registro de 16bits opino que seria como indicas.
Título: Re: Teclado y LCD
Publicado por: vesperia en 28 de Mayo de 2012, 14:38:27
ahh.. jaja! mi versión de niple es 5.6.0 Plus, aunq no estoy seguro de si el problema es de niple o de la configuración del mpasm, q entiendo que utiliza algunos datos de configuración del mplab.. Indudablemente lo que ocurre es que al momento de compilar el .hex a partir del .asm toma cada dirección de la eeprom como un registro de 16 bits. Niple usa la instrucción DATA para escribir la eeprom, luego de posicionarse al inicio con un org  0xf00000, pero incluso intente reemplazando el "DATA" por un "DE" (declare eeprom data byte) y sigo teniendo el mismo resultado...

Si a alguno se le ocurre algo, será más q bienvenido! Sino tendré q pegarle un llamado a Jorge..
Título: Re: Teclado y LCD
Publicado por: lucegiar2005 en 28 de Mayo de 2012, 20:10:07
Me ha ocurrido que: habiendo cargado las 4 direcciones consecutivas de la eeprom, y al leerlas para carga, se ven repetidos los registros, vale decir 2 teclas_1, 2 teclas_2, etc., desconozco porqué, pero no afectó la compilación, de hecho en la versión de indicación por leds me dejó tranquilo compilar. Probaste leer la eeprom y modificar el asm poniendo los valores en donde los declaraste en Niple y ver que pasa?  De asm nada por acá, y de los demás tampoco, jajaja :D :D, solo una idea al aire por si pasa un pato. Un abrazo. Santiago