Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

30/11/2009 #81


Dudas sobre teclado matricial
Buenas Tardes a todos los que estan leyendo:

Tengo una duda que no me deja dormir, y menos cuando tengo que entregar mi proyecto el jueves, hahahaa, bueno la cosa es esta,:

Tengo un teclado matricial 4x3 y su respectivo decodificador, y total, me da el numero en binario, solo del 1 al 9,

Sin embargo, lo que quiero es que al apretar un numero en el teclado matricial, el valor binario (en los leds) se mantenga hasta que aprete otro numero,.

Intenté con un latch de 4 Bits, pero no lo sostiene. El decodificador tiene una salida, que yo nombre: detener, que se esta en ALTO (1) cuando se apreta una tecla, y BAJO, cuando se suelta, o cuando no hay nada apretado, esto para la entrada ENABLE del latch. No se si me puedan ayudar por favor, se los agradeceria bastante, ya no se si no se usar el latch de 4-bit, o hay alguna otra manera de mantener el valor fijo , hasta que otra tecla se aprete. De antemano muchas, muchas gracias.
01/12/2009 #82

Avatar de tecnogirl

Respuesta: Dudas sobre teclado matricial
Lo que describes parece correcto. Prueba por separado el chip latch (puede que este defectuoso). Saludos.
20/12/2009 #83


Respuesta: Teclado matricial pero en el puerto a del PIC 16F877
Podes utilizar resistencias de 270 ohms de las paitas de salida hacia las de entrada y resistencias de 100K de las patitas de entrada hacia atierra, osea de pull-down. ami me funciono perfectamente.
25/02/2010 #84


Temporizador con Teclado Matricial 4x4
Buenas tardes, tengo un problema con un circuito que necesito para la practica de sistemas digitales es un temporizador conectado a un teclado matricial 4x4, realmente no se como hacer eso, el circuito no debe llevar ningun pic ni dada muy avanzado solo estamos limitados a contadores registros bidireccionales y compuertas logicas, de verdad si alguien me pudiese ayudar se lo agradeseria muchisimo; ya he revisado en el foro y no hay ni un diagrama que me ayude con esto, Gracias!!!!!!!!!
25/02/2010 #85


Respuesta: Temporizador con Teclado Matricial 4x4
Hola Ambient

El temporizador para que sería ? como se utilizaría, el temporizador, conectado a un teclado matricial 4x4. ?
Para qué ? Qué función desempeña, el temporizador, con respecto al teclado matricial 4x4 ?.

saludos
a sus ordenes
25/02/2010 #86

Avatar de saiwor

Respuesta: Temporizador con Teclado Matricial 4x4
Lean esto antes de publicar un mensaje aqui.

de verda leiste las normas....

Imágenes Adjuntas
Tipo de Archivo: jpg Dibujo.JPG (21,5 KB (Kilobytes), 375 visitas)
28/02/2010 #87


Respuesta: Temporizador con Teclado Matricial 4x4
hola que tal, es un poco enredado de explicar, la cuestion es la siguiente el temporizador tengo que trabajar a base de contadores 74LS194 son registros bidireccionales de 4 bit su salidas van conectadas a unos contadores, eso jun to con el teclado matricial me harian un supuesto temporizador, como??? alli el dilema, segun lo que entiendo unir las salidas del teclado y mandarlas a las entradas de los registros para que cuando yo introduzca un numero en el teclado este dato lo recibe el registro y de los regisros a los contadores de alli segun el dato introducido este debe contar hacia arriba o hacia abajo.

es enredado lo se por eso pedi ayuda!!!
01/03/2010 #88


Respuesta: Temporizador con Teclado Matricial 4x4
hola ambient

Pues sí que esta muy confuso, sobre todo que por mas que leo tu mensaje no logro descubrir ni imaginarme donde ó cómo se hace un temporizador con ese circuito integrado mencionado en tu mensaje.

saludos
a sus ordenes
03/03/2010 #89

Avatar de tecnogirl

Respuesta: Temporizador con Teclado Matricial 4x4
ambiet dijo: Ver Mensaje
... el temporizador tengo que trabajar a base de contadores 74LS194 son registros bidireccionales de 4 bit su salidas van conectadas a unos contadores, eso jun to con el teclado matricial me harian un supuesto temporizador, como??? alli el dilema, segun lo que entiendo unir las salidas del teclado y mandarlas a las entradas de los registros para que cuando yo introduzca un numero en el teclado este dato lo recibe el registro y de los regisros a los contadores de alli segun el dato introducido este debe contar hacia arriba o hacia abajo ...
ambiet: Tu mismo estas dando la solucion. Efectivamente, el circuito que describes es un tipo de temporizador digital cuyo periodo de operacion depende del valor introducido por el teclado a cada contador (preset o precarga) via el teclado y de la frecuencia del Clock que conectes a la cadena de contadores que hagan un "conteo regresivo".

Saludos
03/03/2010 #90


Respuesta: Teclado matricial pero en el puerto a del PIC 16F877
Estuve revisando alguno de los proyectos que realicé mientras estaba en la U, la respuesta más sensilla a tu pregunta talves la encuentres en el archivo que adjunto, es una aplicación en donde muestro en una LCD la tecla que pulso del teclado.

Espero que te sirva, es muy básico pero te ayudará en proyectos más complicados.
Archivos Adjuntos
Tipo de Archivo: rar tEC.rar (46,7 KB (Kilobytes), 1214 visitas)
12/04/2010 #91


Respuesta: Problemas con la libreria kbd.c de pic-c y teclado matricial
Disculpa por que no checas desde lo simple iniciando prender un led
yo tengo problemas con ese pic dado que no me responde en la simulacion de proteus y con otros pic (como el 16f84) si me responde copiaando el mismo codgo solo que cambiando el #include <18f452.> a <16f84.h>
15/04/2010 #92

Avatar de sammaael

problema con teclado matricial
Hola a todos. Tengo el siguiente problema que me esta rompiendo la cabeza. Tengo una libreria para controlar un teclado matricial 4x3 pero algo extraño esta pasando con el. El problema es el siguiente, Mi programa deberia recoger el valor de la tecla preisonada y mostrarla en el puerto A del pic 16f84A. Cada vez que presiono un tecla sin importar cual sea el unico valor que leo en el puerto A es 9??? La verdad no tengo idea que pasa.
Espero que me puedan ayudar aca dejo el programa principal y la libreria que controla el teclado. Muchas gracias por su ayuda

Código PHP:
;**************************** Librería "TECLADO.INC" ***********************************

    
CBLOCK
    Tecl_TeclaOrden                    
Orden de la tecla a chequear.
    
ENDC

Tecl_UltimaTecla    EQU    d
'11'        Valor de orden de la última tecla utilizada.

Subrutina "Teclado_LeeHex" ************************************************************
;
Cada tecla tiene asignado un número de orden que es contabilizado en la variable
Tecl_TeclaOrdenPara convertir a su valor según el tipo de teclado en concreto se
utiliza una tabla de conversión
A continuación se expone la relación entre el número de orden de la tecla y los
valores correspondientes para el teclado hexadecimal más utilizado.
;
;        
ORDEN DE TECLA:        TECLADO HEXUTILIZADO:
;         
0   1   2            1  2  3 
;         3   4   5             4  5  6 
;         6   7  8               7  8  9 
;         9  10  11             A  0  B 
;
Asíen este ejemplola tecla "7" ocupa el orden 8la tecla "F" ocupa el orden 3 y la
tecla "9" el orden 10.

Si cambia el teclado también hay cambiar de tabla de conversión.
;
Entrada:    En (Wel orden de la tecla pulsada.
Salida:    En (Wel valor hexadecimal para este teclado concreto.
;
Teclado_LeeHex
    call    Teclado_LeeOrdenTecla    
Lee el Orden de la tecla pulsada.
    
btfss    STATUS,C                ¿Pulsa alguna tecla?, ¿C=1?
    goto    
Tecl_FinLeeHex            Nopor tanto sale.
    
call    Tecl_ConvierteOrdenEnHex    Lo convierte en su valor real mediante tabla.
    
bsf        STATUS,C                Vuelve a posicionar el Carryporque la
Tecl_FinLeeHex                        
instrucción "addwf PCL,F" lo pone a "0".
    return
;
Tecl_ConvierteOrdenEnHex            Según el teclado utilizado resulta:
    
addwf    PCL,F
    DT    1h
,2h,3h                Primera fila del teclado.
    
DT    4h,5h,6h                Segunda fila del teclado
    DT    7h
,8h,9h                Tercera fila del teclado.
    
DT    0Ah,0h,0Bh                Cuarta fila del teclado.
Teclado_FinTablaHex
;
Esta tabla se sitúa al principio de la librería con el propósito de que no supere la
posición 0FFh de memoria ROM de programaDe todas formasen caso que así fuera 
visualizaría el siguiente mensaje de error en el proceso de ensamblado:
;
    IF (
Teclado_FinTablaHex 0xFF)
        
ERROR    "Atención: La tabla ha superado el tamaño de la página de los"
        
MESSG    "primeros 256 bytes de memoria ROM. NO funcionará correctamente."
    
ENDIF
    
Subrutina "Teclado_Inicializa" --------------------------------------------------------
;
Esta subrutina configura las líneas del Puerto B según la conexión del teclado realizada
y comprueba que no hay pulsada tecla alguna al principio.

Teclado_Inicializa
    bsf        STATUS
,RP0                Configura las líneas del puerto:
    
movlw    b'01110000'                ; <RB7:RB4entradas, <RB3:RB0salidas
    movwf    PORTB
    bcf        OPTION_REG
,NOT_RBPU        Habilita resistencia de Pull-Up del Puerto B.
    
bcf        STATUS,RP0                Acceso al banco 0.
;    call    Teclado_EsperaDejePulsar
;    return
;
Subrutina "Teclado_EsperaDejePulsar" --------------------------------------------------
;
;
Permanece en esta subrutina mientras siga pulsada la tecla.
;
Teclado_Comprobacion    EQU    b'01110000'

Teclado_EsperaDejePulsar:
    
movlw    Teclado_Comprobacion    Pone a cero las cuatro líneas de salida del 
    movwf    PORTB                    
Puerto B.
Teclado_SigueEsperando
    call    Retardo_20ms            
Espera a que se estabilicen los niveles de tensión.
    
movf    PORTB,W                    Lee el Puerto B.
    
sublw    Teclado_Comprobacion    Si es lo mismo que escribió es que ya no pulsa 
    btfss    STATUS
,Z                tecla alguna.
    goto    
Teclado_SigueEsperando
    
return
;
Subrutina "Teclado_LeeOrdenTecla" -----------------------------------------------------
;
Lee el tecladoobteniendo el orden de la tecla pulsada
;
Salida:    En (Wel número de orden de la tecla pulsadaAdemás Carry se pone a "1" si
;            se pulsa una tecla ó a "0" si no se pulsa tecla alguna.
;
Teclado_LeeOrdenTecla:
    
clrf    Tecl_TeclaOrden            Todavía no ha empezado a chequear el teclado.
    
movlw    b'01111110'                Va a chequear primera fila.
Tecl_ChequeaFila                    ; (Ver esquema de conexión).
    
movwf    PORTB                    Activa la fila correspondiente.
;    
call    Retardo_1ms

Tecl_Columna1
    btfss    PORTB
,4                    Chequea la 1ª columna buscando un cero
    goto    
Tecl_GuardaValor        es cero y por tanto guarda su valor y sale.
    
incf    Tecl_TeclaOrden,F        Va a chequear la siguiente tecla.
Tecl_Columna2                        Repite proceso para las siguientes 
    btfss    PORTB
,5                    columnas.
    goto    
Tecl_GuardaValor
    incf    Tecl_TeclaOrden
,F
Tecl_Columna3        
    btfss    PORTB
,6
    
goto    Tecl_GuardaValor
    incf    Tecl_TeclaOrden
,F

;
Comprueba si ha chequeado la última teclaen cuyo caso salePara ello testea si
el contenido del registro Tecl_TeclaOrden es igual al número de teclas del teclado.
;
Tecl_TerminaColumnas
    movlw    Tecl_UltimaTecla
    subwf    Tecl_TeclaOrden
,W        ; (W) = (Tecl_TeclaOrden)-Tecl_UltimaTecla.
    
btfsc    STATUS,C                ¿C=0?, ¿(Wnegativo?, ¿(Tecl_TeclaOrden)<11?
    goto    
Tecl_NoPulsada            Nose ha llegado al final del chequeo.
    
bsf        STATUS,C                Va a chequear la siguiente fila.
    
rlf        PORTB,W                    Apunta a la siguiente fila.
    goto    
Tecl_ChequeaFila    
Tecl_NoPulsada
    bcf        STATUS
,C                Posiciona C=0indicando que no ha pulsado
    
goto    Tecl_FinTecladoLee        tecla alguna y sale.
Tecl_GuardaValor
    movf    Tecl_TeclaOrden
,W        El orden de la tecla pulsada en (Wy sale.
    
bsf        STATUS,C                Como hay tecla tecla pulsadapone C=1. 
Tecl_FinTecladoLee
    
return 
y el progrma es este

Código PHP:
    INCLUDE    "p16f84a.inc"
    
    
    
CBLOCK    0x0C
    ENDC
        
    ORG    00
    
goto    configuracion
    ORG    05
    
    
configuracion


    call    Teclado_Inicializa
    BSF    STATUS
,RP0
    clrf    PORTA
    BCF    STATUS
,RP0
    
    CLRF    PORTA
    CLRW
    
inicio
    clrf    PORTA
    clrw
    call    Teclado_LeeHex
    btfss    STATUS
,C
    
goto    inicio
    call    Teclado_EsperaDejePulsar
    call    Retardo_100ms
    movwf    PORTA
    call    Retardo_2s
    call    Retardo_2s
    
goto    inicio


    
INCLUDE    "TECLADO3x4.inc"
    
INCLUDE    "RETARDOS.inc"
    
END 
Perdon amigos el abuso pero la verdad que ya me duele la cabeza y no consigo arreglarlo. denuevo muchas gracias

Bueno despues de perder mi ultima neurona que me quedaba encontre cual era el problema
Al parecer la libreria esta correcta... mi problema era que despues de llamar a la rutina Teclado_LeeHex la cual devuelve en W el valor de la tecla pulsada hacia otra llamada a Retardo_100ms la cual tambien ocupa W para realizar una cuenta...
Solucion: Guardar el valor obtenido de la rutina de teclado en una variable y luego utilizarla asi me olvidode lo que pasa con W

mmmmm avergonzado me despido jajjajaj

NOTA: Por buscar un arbol en medio del bosque no vi ninguno...
12/05/2010 #93


Circuito que muestre en un display lo pulsado en un teclado matricial 4x4
Hola a todos soy estudiante de 4to semestre de electrónica y como deber de sistemas digitales necesito elaborar un circuito digital que mediante el uso de un teclado matricial 4x4 y un display de 16 segmentos, visualice en el display de 16 segmentos la tecla que tenga presionada en el teclado matricial 4x4, por favor me podrían guiar como puedo hacerlo, ya que no tengo idea que integrados se necesitan ni para poder armar el circuito en algún simulador.
Desde ya gracias por su ayuda.
12/05/2010 #94


Teclado Matricial PSI
Hola a todos, estoy tratando de utilizar la herramienta KeyPad matrix del Pic Simulator IDE pero no lo logro, en mi codigo escaneo las filas una a una pero aunque presione cualquier tecla el pic de Microcontroller view no se inmuta aunque manda un 1 a un pin si tal tecla se presiona, no veo que la herramienta se configure mas que elegir que pin asignar a las filas y las columnas, que pudiera estar mal?, Gracias de antemano.
13/05/2010 #95


Respuesta: Circuito que muestre en un display lo pulsado en un teclado matricial 4x4
Hola miguelb

En el Software CircuitMaker, que es un simulador, viene un circuito de ejemplo parecido al que estás requiriendo.
Solo hay que cambiar el tipo de Display y decodificador que trae por los que tu requieres. El archivo se llama “4x4.ckt”
Para obtener el software entra a Google.com y busca el: circuit maker 2000, aparecerán barios enlaces, de algunos podrás bajar e instalar ese software en tu PC.

saludos
a sus ordenes
13/05/2010 #96


Respuesta: Problemas con la libreria kbd.c de pic-c y teclado matricial
Hey muchachos.

Quiero hacer una alarma casera, pero no me funciona la libreria del teclado en proteus pero si lo he visto que funciona, quiero saber si sí les ha funcionado en el circuito, creo que hay que descomentarial una linea en la lebreria del teclado para que funcione por puerto B, pero nada.

Espero que me ayuden, Gracias.
13/05/2010 #97


Respuesta: Circuito que muestre en un display lo pulsado en un teclado matricial 4x4
Gracias ya lo encontre en CircuitMaker, pero no se cual es el decodificador a usar para el display de 16 segmentos, me podria ayudar??? y que decodificador esta usando para ese display de 7 segmentos ya que ese no es el 74ls47???
13/05/2010 #98

Avatar de electroandres

Respuesta: Circuito que muestre en un display lo pulsado en un teclado matricial 4x4
sino lo que podrias hacer es diseñartelo, pero ya seria mucho mas trabajo y mas $...
13/05/2010 #99


Respuesta: Circuito que muestre en un display lo pulsado en un teclado matricial 4x4
Hola miguelb

El circuito integrado conectado al Display de 7 segmentos en el circuito que te mencioné (4x4.ckt) no es un decodificador sino un Flip-Flop tipo D cuádruple; el Display es HEXagecimal de 7 segmentos. Nota que solo tiene 4 entradas mientras que el Display BCD tiene 7 entradas.

Creo que no hay un decodificador para Display de 16 Segmentos; aquí mismo, en el foro, alguien recomendó uno en algún tema que trata también de Display de 16 segmentos, lo puedes localizar por medio del buscador del foro.

Pero como tienes un teclado de 4x4 solo puedes obtener resultados del 0 al 15 así que puedes utilizar los de siempre, 7447 ó 7448.

Ve si te sirve el circuito contenido en la imagen adjunta.

saludos
a sus ordenes
Imágenes Adjuntas
Tipo de Archivo: jpg 16 Seg As 7 Seg.jpg (161,3 KB (Kilobytes), 406 visitas)
14/06/2010 #100


Teclado matricial 3x4
Hola!! estoy haciendo un teclado matricial (sin usar pic), y bueno simulando en proteus debo conectar un reloj en una de las entradas de una compuerta AND de dos entradas. En el propetus pues el reloj es un dibujito de pulsos, pero no te dice componentes que utilizaras ni nada.. ahora que lo estoy armando en mi protoboard quisiera saber si puedo usar el N555 (que tengo uno guardado de un montaje anterior) pero no se si servira... y en el caso que si sirva, como lo conecto?? osea me refiero a los pines que trae el 555 con la entrada de la AND. Les agradezco de antemano si me pueden ayudar por favor!!

Andrea Liz
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.