Manejar teclado matricial y mostrar en lcd

Hola necesito ayuda para programar un teclado matricial pero lo quiero manejar con las 6 lineas del puerto a y las dos primeras del puerto e porque tengo el hardware diseñado asi y en todo lado sale como programarlo pero con el puerto b pero de esta forma la necesito y no me sale yo creo q tengo problemas en emular las resistencias de pull up, como las q tiene el puerto b. El micro q uso es el PIC 16f877 y lo estoy programando en lenguaje c.

Espero q me ayuden, desde ya gracias
 
pablex700, ¿cómo te podemos ayudar si no sabemos cuál es tu problema?

Solo dices que no te anda.. ¿pero qué es lo que no te anda? Una tecla? todas las teclas?
 
No tienes por qué emular las resistencias de pull-up, simplemete las colocas por fuera, 10k (o un valor cercano) directo a Vcc. Lo malo de tu diseño es que no podrás trabajar el teclado por interrupciones ya que en el puerto A no existen las interrupciones de RB7-4 así que tendrás que estar siempre verificando si alguien ha pulsado una tecla o no.

De resto, debería de portarse idéntico... Revisa el registro ADCON1 para que tengas todos los pines del puerto A como E/S digitales.

Si no te sirve eso, pues descríbenos mejor tu problema para poder ayudar

Saludos
 
Caballero yo realize el teclado matricial y no fue necesario colocar las resistencias de pull up. pero si unas externas para colocar niveles logicos definidos en las entradas del pic.
Pero te digo que ra0,ra1,ra2,ra3 pueden ir a las columnas y ra5, re0,re1,re2 van a las filas de modo que pudes rotar unos en las filas y preguntar por las columnas.
las columnas deben de ir a tierra con unas resistencias de 10k.
Revisa el registro ADCON1 para que tengas todos los pines del puerto A como E/S digitales.

amigo creo que asi te funcionaria.

saludos
 
De acuerdo con Shougo y ben99. El pic16F877 configura el puerto A por medio del TRISA y ADCON1 (revisa el datasheet).
Respecto al puerto E, creo q no tienes q tocar nada, pero revisalo tambien.

Saludos
 
hola a todos!!!
tengo que hacer un proyecto donde uso un teclado matricial. tengo que usar el 89c51 y no tengo ni idea de como programarlo.
alguien me puede decir como hacerlo o darme algunas pistas sobre el tema???
muchas gracia de antemano :D
 
hola. espero y alguien tenga tiempo para ayudarme. Es que en la clase de digital 2 me pidieron diseñar un teclado matricial utilizando una memoria eprom, y con ttl's pero la verdad no me quedo muy claro el como voy a integrar el teclado al circuito, ahorita estuve viendo el funcionamiento del teclado, y mas o menos me quedo la ideade como funciona, pero nisiquier se como funciona la memoria, espero y me puedan ayudar. Por ciero elteclado es de 4x4.
 
hola esta es la primera vez que escribo, y de verdad e encontrado mucha ayuda en este foro.
Necesito ayuda sobre como trabaja un teclado de matriz y luego, cual integrado de registros puedo usar para que muestre dos digitos en el display, se los agradezco.
esto sin microprocesadores.
 
El teclado matricial tiene tantas salidas/entradas (depende como se lo tome) como NxM botones donde N son las filas y M las columnas. Para ver como se detecta que tecla se ha presionado te dejo este link.

https://www.forosdeelectronica.com/about3531.htmlhttps://www.forosdeelectronica.com/f25/funcionamiento-tablero-matricial-2046/

Si no quieres usar un PIC puedes utilizar el siguiente circuito cuyo elemento fundamental es el 74C922

El tema es que es bastante caro este integrado pero te digo que hay otras formas más baratas pero son muy engorrosas a la hora del cableado.

Saludos y espero que te haya servido.
 

Adjuntos

  • teclado74922_553.jpg
    teclado74922_553.jpg
    11.9 KB · Visitas: 3,100
hay una forma muy mas sencilla para hacerlo ,y solo tienes que usar 2 codificadores y un contador este metodo esta explicado en el libro de sistemas digitals de tocci yo lo hice pero lo adecu para que me mostrara 4 digitos y no tuve problemas .
 
Hola. Me esta haciendo de mucha ayuda este diagrama del teclado matricial, solo que tengo una duda...de cuantos microfaradios son los capacitores. Por su comprension muchas gracias.
 
Hola, soy un novato en electronica y tengo una base muy baja de digital y necesitaria que me orientase alguien con un proyecto de electronica digital. Tengo que ensamblar un circuito que controle el acceso por teclado mediante un codigo de 4 digitos que pueda canviarlo en cualquier momento.

De momento lo unico que he podido averiguar por mis medios, puesto que el profesor no nos ayuda en nada, es que al introducir los 4 digitos con el teclado tengo que convertir el decimal a binario, eso ya no se como hacerlo. Luego supongo que deberia separar cada digito a un comparador que me diga si es correcta o no la contraseña encendiendo un led. Tampoco se como montar esto, porque digo yo que tendre que poner una memoria rom para guardar el codigo correcto a comparar. Como hago para luego poder cambiar este codigo.

Bueno esto es todo por el momento si me puede ayudar alguien se lo agradecere muchisimo, una vez tenga montado lo de antes si me da tiempo ya preguntare como hacer para poner un display para ver los digitos.

GRACIAS

P.D.: No me dejan usar pic's.
 
Buenas!

En varios hilos de este foro he leido que para obtener los datos binarios de cada tecla de un teclado matricial puedo utilizar el 74C922 pero con el teclado que tengo i la conexion que me indica en el datasheet del integrado este, a la salida no obtengo el valor correspondiente. Por ejemplo, donde mi teclado tiene un 1, el integrado me saca un 3 binario.

Este es mi teclado
kb1604.jpg


Si alguien conoce un integrado que coincida con los valores de mi teclado o alguna forma de solucionarlo con el 74C922 le estare agradecido!

Gracias!
 
Ya checaste el datasheet del 74C922 ? ahi esta muy claro.

Este IC tiene 4 filas y 4 renglones llamados Y1 hasta Y4 para los renglones y X1 hasta X4 para las columnas de manera tal que si tu conectas el pin señalado como Y1 en tu primer renglon (teclas 1,2,3,A) y el pin señalado X4 en tu primer columna de izquierda a derecha (teclas 1,4,7 y *) entonces cuando tu oprimas la tecla "1" el IC te respondera con el numero binario 3.
 
Gracias por la respuesta! Seguire provando porque mis numeros van en columnas de 3 i el IC los da en columnas de 4, no se si me explico muy bien.

De todas formas, gracias por tu interes y ayuda!
 
Atrás
Arriba