domingo, 29 de noviembre de 2015

CCS Compiler (PIC C Compiler) - Teclado matricial

TECLADO MATRICIAL (KEYPAD 4x4)

utilizados en el desarrollo de proyectos con microcontroladores PIC y que tienen su aplicación en el ingreso de datos de manera manual por parte del usuario, en aquellos casos en que el empleo de pulsadores simples no es lo más apropiado, ya sea por la presentación final del producto o por la restricción del número de líneas de entrada de los microcontroladores PIC.

El teclado matricial 4x4 está constituido por una matriz de pulsadores dispuestos en filas (A,B,C,D) y columnas (1,2,3,4), con la intención de reducir el número de pines necesarios para su conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador, en lugar de los 16 pines que se requerirían para la conexión de 16 teclas independientes.




LIBRERIA A USAR

El compilador C incluye la librería KBD.c para manejar el teclado 3x4. las funciones que se incorporan son las siguientes:

Kbd.init();   inicializa el sistema debe ser la primera función a ser llamada
Kbd_getc();  devuelve el valor de la tecla pulsada en función a la tabla que se tiene programada.

En el caso que se quiera utilizar un teclado matricial de 4x4, tendremos que modificar la librería KBD.c

Pueden descargar la librería ya modificada para hacer uso con un keypad 4x4.

En los tutoriales se podrá ver como se realiza la programacion para poder usar el teclado, asi como tambien como modificar la libreria KBD.c para usarlo con un keypad 4x4.


Tutorial - Modificacion de Libreria KBD



Tutorial -  Programacion del PIC para uso del keypad 4x4


DESCARGA EL PROGRAMA Y LA SIMULACION EN

EL PROGRAMA

26 comentarios :

  1. mi amigo, esa libreria que nos compartiste, es valida para PIC18F4550?

    ResponderEliminar
    Respuestas
    1. lamentablemente no...es mas facil wizard del c compliler sin librerias directo solo selecionas pic 18f4540 y la frecuencia a 4Mhz..y listo

      Eliminar
    2. Ccs Compiler (Pic C Compiler) - Teclado Matricial
      ~
      Aprendiendoelectrónica >>>>> Download Now

      >>>>> Download Full

      Ccs Compiler (Pic C Compiler) - Teclado Matricial
      ~
      Aprendiendoelectrónica >>>>> Download LINK

      >>>>> Download Now

      Ccs Compiler (Pic C Compiler) - Teclado Matricial
      ~
      Aprendiendoelectrónica >>>>> Download Full

      >>>>> Download LINK NZ

      Eliminar
  2. Asi es, lo probé con ese PIC y me funciona correctamente

    ResponderEliminar
  3. iNTENTO SIMULAR TU CODIGO DEL TECLADO CON EL PIC18F4550 Y NO APARECE NADA EN LA SIMULACIÓN. PUEDES SUBIR EL CODIGO PARA EL 4550 POR FAVOR

    ResponderEliminar
  4. Yo soy principiante en todo esto de los PICs y cada dia me intereso en aprender todos los detalles posibles. Los tutorials 1 al 4 fueron sin problemas pero el #5 no hay forma que compile y trabaje! Yo estoy seguro que todo esta relacionado con las librerias, y auque yo añadí la Kbd4x4_1 todavia recibo alarmas y no compila bien. Alguna ayuda sería genial. Gracias

    ResponderEliminar
  5. Yo soy principiante en todo esto de los PICs y cada dia me intereso en aprender todos los detalles posibles. Los tutorials 1 al 4 fueron sin problemas pero el #5 no hay forma que compile y trabaje! Yo estoy seguro que todo esta relacionado con las librerias, y auque yo añadí la Kbd4x4_1 todavia recibo alarmas y no compila bien. Alguna ayuda sería genial. Gracias

    ResponderEliminar
  6. Hola amigo, esa libreria funciona en el pic 16f876a?

    ResponderEliminar
  7. Gracias me ahorraste tiempo de desarrollo Funciona perfectamente, solo hay que tener cuidado con habilitar los pullups ya que si sólo se utiliza la libreria hay que añadir el codigo !!

    ResponderEliminar
  8. que tal, oye una pregunta, como podria hacerle para conectar un teclado de 6x4? Saludos.

    ResponderEliminar
  9. Pero al igual que todos, ya que lo compilas para el 18f4550, no funciona.

    ResponderEliminar
  10. no me funciona eso esta como mal jajajajaja

    ResponderEliminar
  11. pic16f877a con teclado 4x4 y con dos display de 7 segmentos que cuente unidades y decenas, es decir con las teclas poner ya se 23 o 32, que reconosca el numero 23 o el numero 32 utilizando teclas

    ResponderEliminar
  12. por que no funciona para el pic 18f4550 ??, también lo intente correr, no me marca ningun error pero al momento de mostrar el valor de k, no me muestra nada :(. Hay otros donde se pone el codigo directamente creo que lo hare de esa forma :/

    ResponderEliminar
  13. hola, hice todo igual incluyendo la modificacion de la libreria kbd pero con un pic 18f4550, en el compilador no me muestra error pero en proteus no me muestra nada... me podrias ayudar.. gracias

    ResponderEliminar
  14. ayuda he intentado poner el codigo asi tal omo esta y no simula en proteus simplemente se queda sin hacer nada la pantalla, ya cheque otras librerias para el teclado, no se si sea el simulador o que sera??? uso proteus 8 y uso el pic 18f4550 pero no he logrado poder usar el teclado, que podra ser?

    ResponderEliminar
  15. Para que funcione con el 18f4550 se tiene que conectar un respack 8 en Proteus al teclado, este componente tiene un pin de alimentación y los demás van conectados directo al teclado, no importa el orden y el teclado a su vez al pic.

    ResponderEliminar
  16. Excelente aporte, muchas gracias utilice el respack-8 con el pick 18f4550 con las resistencias pullup desactivadas, y funciono correctamente!!

    ResponderEliminar
  17. Tengo el teclado conectado con el respack-8 con el PIC18f4550 pero no logre que me funciones y no encuentro el error. Alguien podria ayudarme??

    ResponderEliminar
  18. pareciera tonto pero estuve todo el día buscando el error con el pic 18f4550, la solución que encontré fue conectar resistencias, de cada fila a una res, de hay al pin del pic, (las columnas van directo al pic) el codigo que utilice fue el siguiente:

    #include <18F4550.h>
    #fuses XT, NOMCLR,NOWDT
    #use delay(internal = 4m)
    #define use_portb_kbd TRUE
    #define LCD_DATA_PORT getenv("SFR:PORTD")
    #include
    #include

    void main()
    {
    port_b_pullups(true);
    lcd_init();
    kbd_init();
    lcd_putc("keypad");
    char k;
    while (true)
    {
    k=kbd_getc();
    if(k!=0)
    {
    printf(lcd_putc,"\n");
    printf(lcd_putc,"tecla %c ",k);
    }
    }
    }


    ResponderEliminar
  19. Gracias, buen hombre! David Alejando

    ResponderEliminar
  20. una pregunta por utilizaste x=k-48??

    ResponderEliminar
  21. favor suministrarme compilador c gracias

    ResponderEliminar