Manejar teclado matricial y mostrar en lcd

#22
Saludos.
Una tecla por lo regular no dá el valor que tiene marcado en el plastico. Por ejemplo la tecla ESC de un teclado de pc te va a dar un numero hexadecimal ya que ESC no es un valor numerico en si mismo.
Lo importante en un teclado es que cada tecla te dé un valor diferente entre cada una y dé el mismo valor siempre que teclees la misma.
Ya en tu programa debes leer el valor que te dá dicha tecla y hacer lo que quieras con ese valor. Puedes por ejemplo dar el valor 01h a la tecla que te entrega 03h; o el valor que tu quieras para lo que te sirva.
 
#23
hola a todos lo miembros de la comunidad electronica, es la primera vez que visito la pagina y pues al estar perdiendome en ella, me agrado esta parte ya que tengo tambien que realizar un circuito, el cual nunca me habia encontrado. El circuito que se muestra me parece muy practico pero costoso (de todas maneras es muy bueno), creo yo ,si publicaran otro circuito integrado que sea barato y cubra las necesidades que satisfase el actual seria genial. Asi que te invito CUSCO que nos muestres el circuito que tienes, ya que de alguna manera nos ayudaras a conocer una posible solucion a nuestro problema. Confio en ti.
de todas maneras si encuentro una forma de utilizar un circuito que ayude a proporcionar datos a partir de una matriz se los enviare.
 
#26
buenas tardes, tengo un proyecto que me exije que utilice un teclado numerico(0 a 9) o pulsadores para que se muestren en dos display el numero pulsado, el numero es de 2 digitos.
las condiciones son las siguientes:

1. al ser pulsado el numero debe mostrarse en el display.
2. al mostrarse debe mantenerse el numero en el display; es decir, no se debe mantener pulsado para que se muestre el numero.
3. al ingresar otro numero pues simplemente se borra el anterior y queda el que se ingreso, es decir; que no debe haber otro sistema que me borre los display.
4. debo utilizar registros. compuertas. etc
(no puedo usar switch)

como seria si hubiese un boton que me borrara los display
muchas gracias y espero una pronta respuesta
 
#28
Hola, hace tiempo hice un proyecto que creo cumplia con los requerimientos del tuyo. Utilice un 74147 que es un decodificador de prioridad de decimal a BCD, dos registros D de cuatro bits cada uno, un monoestable 74LS122, un flip-flop J-K en modo complemento (J=K=1), una compuerta OR de 4 entradas (puedes usar tres compuertas OR de dos entradas para hacer una de cuatro) y dos 74LS47/48. Cada una de las salidas del 74147 las enviamos a la OR y al mismo tiempo a las entradas de los dos registros D, cuyas entradas las colocamos en paralelo (A con A, B con B, etc). Como el 74147 no puede detectar el cero, el pulsador cero lo conectamos directamente a la OR, la OR aplica un pulso al monoestable 74LS122 cada vez que se oprime uno de los 10 pulsadores, el 74LS122 a su vez le aplica un pulso al J-K para que se complemente, el pulso del 74LS122 se aplica a ambos registros tipo D para que almacenen el numero en sus entradas, el complemento del J-K sirve para direccionar el pulso del monoestable de un registro a otro, asi los un registro a la vez recibe los pulsos del monoestable. Se puede usar un resistor y un capacitor para restablecer los registros cuando se encienda el circuito.
Nota: El 4511 es un decodificador de BCD a 7 seg/ latch y driver para display catodo comun.
 
#29
Hola estoy buscando la manera de realizar un teclado matrical de 4 x 3 y no he encontrado ningun diagrama quisiera saber si es posible hacerlo y donde puedo encontrar un diagrama o si es necesario comprarlo
 
#33
hola a todos estoy recien llegado a esto de los microcontroladores, pero me encargaron que hiciera esta proyecto, que consisten en que introduciendo una contrasena con el teclado matricial active o desactive una carga mediante un circuito externo de potencia, todo el proceso se debe visualizar en la lcd

quiero pedir ayuda a ver si me ueden ayudar con unas rutinas en c

espero su respuesta, ya que ando un poco urgido por esto utiliz pcw ccs

gracias companeros electronicos
 
#35
A una compañera le voy a hacer un pwm controlado por teclado [0-9,enter] y display lcd 16x2 en un pic 16f877a o si lo quieres en atmel tambien se puede, mañana voy con ella a comprar las cosas.
 
#36
YouTube - Proyecto Lcd 2.0 con teclado.
Esta rutina la utilizo yo para el teclado.
solo quitale la parte que dice if(sound) eso es para que emita un sonido cuando la presiones, y
la parte donde dice time es para saber cuanto tiempo tardarse en cada tecla

>aqui va conectado el teclado
Código:
#define r1 pin_b4
#define r2 pin_b5
#define r3 pin_b6
#define r4 pin_b7

>>>

int keypad(int sound, int time)
{
   
  output_e(0x01); 
  
     if (input (r1))
        {
        if (sound)
        {
        beep(100,200,50);}
        
        delay_ms(time);
        return 1;}
     if (input (r2))
        {
        if (sound)
        {
         beep(100,200,50);}
        
        delay_ms(time);
        return 4;}

     if (input (r3))
        {
        if (sound)
        {
        beep(100,200,50);}
        
        delay_ms(time);
        return 7;}

     if (input (r4))
{
        if (sound)
        {
       beep(100,200,50);}
        
        delay_ms(time);
        return 10;}
  output_e(0x02);       
 
     if (input (r1))
        {
        if (sound)
        {
         beep(100,200,50);}
        delay_ms(time);
        return 2;}
     if (input (r2))
        {
        if (sound)
        {
         beep(100,200,50);}
       delay_ms(time);
        return 5;}
     if (input (r3))
        {
      if (sound)
        {
         beep(100,200,50);}
         delay_ms(time);
        return 8;}
     if (input (r4))
        {
      if (sound)
        {
         beep(100,200,50);}
      delay_ms(time);
        return 11;}
  output_e(0x04);
  
     if (input (r1))
        {
      if (sound)
        {
       beep(100,200,50);}
        delay_ms(time);
        return 3;}
     if (input (r2))
        {
if (sound)
        {
        beep(100,200,50);}
        delay_ms(time);
        return 6;}
     if (input (r3))
        {
       if (sound)
        {
         beep(100,200,50);
        }
        delay_ms(time);
        return 9;}
     if (input (r4))
     {
         if (sound)
        {
         beep (100,200,50);
        }
        delay_ms(time);
        return 12;}
        
        return 0;
        }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
y este un ejemplo de como lo utilizo en mi programa
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
while(true)
   {
   switch(keypad(1,100))
   {
   case 1:
   lcd_putc("\f|777|  ATRAS ");
   lcd_putc("\n Jugar al 777 ");
   opcion=1;
   break;
   case 3:
   lcd_putc("\f 777  |ATRAS| ");
   lcd_putc("\nRegresar al Menu");
   opcion=2;
   break;
   case 12:
   switch(opcion)
   {
   case 1:
   progress2(2,50);
   siete();
   case 2:
   return;
   default:
   break;
   }
   default:
   
   break;
   }
   
   }
 
#37
mira primero que todo di vas a utilizar un micro para ello es sencillo por ejemplo para el 16f877 empleas las interrupciones del puerto rb para saber que tecla del teclado matricial se pulso, luego vas almacenando cada valor en la eeprom y al final comparas y ademas debes tener uina tecla que te permita cambiar la clave y cuyo valor guardas en la eeprom de forma que cuando se pulse una tecla el micro sepa que es para cambiar la clave y no para introducirla como tal
 
#38
bueno lo puedes hacer con compuertas... bueno para pasar de dedimal a BCD puedes utilizar el integrado 7447 para display anodo comun o el 7448 para catodo comun... tienes q utilizar memorias puedes hacerlas con compuertas (And) retroalimentandolas o puedes utilizar flip-flop... el comparador lo puedes hacer con compuertas exnor y and... o puedes utilizar el HD74Ls85 es un comparador... y le agregas el led de bueno
 
#39
hola , quisiera saber si el 74C922 elimine el problema de rebote mecanico que produce los pulsadores del teclado matricial y si es asi por favor si pudiecen explicar los pines del 74Cp22 como por ejemplo el pin 5 (oscillator) el pin 6 (keybonce mask) el pin 12 (data available) y el pin 13 (output enable)
 
#40
Hola amigos, tengo muchas dudas del teclado, al conectarlo al chip segun el circuito de cusco, no logro q me muestre los datos q necesito, q debo hacer en este caso compañeros? tengo otra duda, por que debo conectar las salidas del teclado a una and de 4 entradas y a una 7400?