Autor Tema: teclado 4x4 con el pic 18f4550  (Leído 8869 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pipipi

  • PIC12
  • **
  • Mensajes: 91
teclado 4x4 con el pic 18f4550
« en: 12 de Agosto de 2009, 16:40:41 »
Hola amigos del foro:

Tengo un problemita, estoy relizando una aplicacion con un teclado matricial 4x4 e trabajado con el teclado pero con mplab y me gustaria implementarlo con ccs(complilador), e estado tratando de sacar adelante mi aplicacion con unos ejemplillos que e encontrado en el foro pero la verdad no he podido tener nada en claro.

La idea es manipular el teclado y el dato teclado mandarlo a una lcd de 2x16.

Lo que necesito es si me pueden postear algun ejemplo para el manejo del teclado y decirme donde puedo encontrar la biblioteca para el mismo. El taclado lo debo manejar con interrupcion en el puerto b y tambien sin interrupcion

Por su atancion y comprencion muchas gracias.
Espero sus respuestas

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: teclado 4x4 con el pic 18f4550
« Respuesta #1 en: 12 de Agosto de 2009, 17:45:09 »
Esta es una rutina que utilizo yo para detectar mediante interrupción:


Código: C
  1. char Tecla;
  2. char Teclas[17]={'7','8','9','/',
  3.                  '4','5','6','x',
  4.                  '1','2','3','-',
  5.                  '.','0','=','+',' '};
  6.  
  7. #int_RB
  8. void  RB_isr(void){
  9.    Tecla=Teclas[Test_Teclado()];
  10.    .
  11.    .
  12. }
  13.  
  14. int Test_Teclado(void){
  15. int i,k,Filas;
  16.    Filas=0x0E; //xxxx1110.
  17.    output_b(Filas);
  18.    i=0;
  19.    for(k=0;k<4;k++){
  20.       if(input(PIN_B4)==0){break;}
  21.       i++;
  22.       if(input(PIN_B5)==0){break;}
  23.       i++;
  24.       if(input(PIN_B6)==0){break;}
  25.       i++;
  26.       if(input(PIN_B7)==0){break;}
  27.       i++;
  28.       shift_left(&Filas,1,1);
  29.       output_b(Filas);   //Trasladamos el 0 a siguiente Pin.
  30.    }
  31.    output_b(0xF0);
  32.    return(i);
  33.  
  34. }
No contesto mensajes privados, las consultas en el foro

Desconectado pipipi

  • PIC12
  • **
  • Mensajes: 91
Re: teclado 4x4 con el pic 18f4550
« Respuesta #2 en: 12 de Agosto de 2009, 17:49:15 »
ok

pero una pregunta mmmmmmm. esta es solo la libreria no?
tendria que hacer el programa principal?
a y otro pregunta. MMMM. como lo manejaria sin interrupcion?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: teclado 4x4 con el pic 18f4550
« Respuesta #3 en: 12 de Agosto de 2009, 17:57:54 »
 :D Si, eso es solo la función, que tu lo aplicaras como quieras, lo unico que utilizo:

Código: C
  1. #use fast_io(b)

y configuro el tris:

Código: C
  1. set_tris_b(0xF0);


Para hacerlo por poleo podrías ejecutar Tecla=Teclas[Test_Teclado()]; cada 10ms por ejemplo, y si Tecla es distinto a ' ' o Test_Teclado!=16 se ha presionado una tecla.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado pipipi

  • PIC12
  • **
  • Mensajes: 91
Re: teclado 4x4 con el pic 18f4550
« Respuesta #4 en: 13 de Agosto de 2009, 10:28:22 »
Hola Suki:

Voy a probar lo que me estas sugiriendo haciendo algunas pruebas.
Te cuento como me fue vale, y de ante mano muchas gracias.

Saludos


 

anything