TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: diegoda en 20 de Noviembre de 2007, 09:39:22

Título: PIC16F876 manejar teclado y LCD
Publicado por: diegoda en 20 de Noviembre de 2007, 09:39:22
Hola amigos,
Quisiera que me ayuden a hacer funcionar un teclado matricial de 4 lineas y 3 columnas con un PIC16F876.
He logrado mostrar mensajes en un LCD de 2x16 caracteres, pero al conectar un teclado al puertoB donde tengo conectado el display no logro visualizar las teclas que presiono.
Cuando trabajo con el PIC16F84 el conjunto teclado-LCD trabaja bien (como dicen los libros); el problema sucede con el PIC16F876.
Gracias
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: literatronic en 20 de Noviembre de 2007, 09:59:03
Amigo diegoda en qué lenguaje de programación estás trabajando? si es en PBP te puedo ayudar.
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: stk500 en 20 de Noviembre de 2007, 10:03:00
los dos pic tiene diferente Registro amigos asi que buscaste el datasheff de 16F876 y si tiene el compile muestralo aqui, asi te ayudaran mejor y sabra la diferencia de los dos aqui te pongo el link www.ieselpalmeral.org/cms/fileadmin/departamentos/electronica/ASerna/T16F876.DOC
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: Darukur en 20 de Noviembre de 2007, 10:11:57
Fijate que en el PIC16F876 hay muchos perifericos que no estan por defecto apagados, que interfieren con el funcionamiento de los puertos como entradas-salidas digitales.
Presta atencion a los comparadores y al conversor analogico a digital, especialmente a este ultimo que es bastante diferente al resto con respecto a configuracion.

Preguntas:
-Tenes las resistencias anti-colision en tu teclado? (si es q lo compartes al bus con el LCD)
-Realizas pull up/pull down externo o utilizabas el del PIC, si es asi lo debes agregar.

Saludos y suerte.  :)
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: vszener en 20 de Noviembre de 2007, 11:02:04
En el subforo de C, concretamente en el primer post, encontrarás enlaces a ejemplos realizados con teclado y lcd.


Suerte!!! ;)
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: diegoda en 20 de Noviembre de 2007, 11:49:56
Amigo diegoda en qué lenguaje de programación estás trabajando? si es en PBP te puedo ayudar.
Trabajo en lenguaje ensamblador
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: maunix en 20 de Noviembre de 2007, 12:08:11
Amigo diegoda en qué lenguaje de programación estás trabajando? si es en PBP te puedo ayudar.
Trabajo en lenguaje ensamblador

Si al migrar el código no te funciona, debieras ver las diferencias entre ambos pics y buscarle la vuelta.

El 16F876 es un microcontrolador mucho más completo, tal vez te está interfiriendo que no desactivas algún módulo, tal vez tengas los pines como analógicos y los necesites como digitales... en fin.

¿por casualidad usa el código usa el puerto A como entrada?
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: diegoda en 20 de Noviembre de 2007, 12:52:54
Fijate que en el PIC16F876 hay muchos perifericos que no estan por defecto apagados, que interfieren con el funcionamiento de los puertos como entradas-salidas digitales.
Presta atencion a los comparadores y al conversor analogico a digital, especialmente a este ultimo que es bastante diferente al resto con respecto a configuracion.

Preguntas:
-Tenes las resistencias anti-colision en tu teclado? (si es q lo compartes al bus con el LCD)
-Realizas pull up/pull down externo o utilizabas el del PIC, si es asi lo debes agregar.

Saludos y suerte.  :)

Efectivamente, Darukur tengo activado el pull/up del PIC y puestas las resistencias de 2k2 en los pines de entrada del puertoB.
Este puerto está multiplexado con la función de Programación en Bajo Voltaje: RB3/PGM, RB6/PGC y RB7/PGD.
La diferencia con el PIC16F84 es que en el PIC16F876 el pull up es apagado cunado el pin del puerto es configurado como salida, mientras que en el 1ero. no sucedería.
Saludos
Título: Re: PIC16F876 manejar teclado y LCD
Publicado por: diegoda en 20 de Noviembre de 2007, 12:57:42
Amigo diegoda en qué lenguaje de programación estás trabajando? si es en PBP te puedo ayudar.
Trabajo en lenguaje ensamblador

Si al migrar el código no te funciona, debieras ver las diferencias entre ambos pics y buscarle la vuelta.

El 16F876 es un microcontrolador mucho más completo, tal vez te está interfiriendo que no desactivas algún módulo, tal vez tengas los pines como analógicos y los necesites como digitales... en fin.

¿por casualidad usa el código usa el puerto A como entrada?
Uso el puertoB compartido para manejar el bus de datos del LCD y el teclado (8 líneas) y ademas 3 líneas del puertoC para el bus de control del LCD.
Con el 16f84 funciona bien el modulo teclado-LCD; al medir los pines de salida del puertoB veo que se encuentran en 1 lógico y al pulsar una tecla el pin correspondiente se pone a 0 lógico.
En el 16f876 no ocurre lo mismo, ya que al configurar los pines como salida los mismos pierden la propiedad de pull up y entonces veo un 0 lógico.
Será por esto que no funciona?
Gracias