# Teclado 4x4 en el puerto D del pic16f877a....ccs c



## japifer (Jun 24, 2009)

hola a todos bueno consulto una ves mas en este foro por el siguiente problema que me estoy enfrentando hace mas de una semana, por ende e tenido que acudir a ustedes, bueno mi problemas es el siguiente:
antes que todo estoy usando el pic16f877a y estoy programando en el compilador de CCS C, bueno estoy tratando de manejar un teclado 4x4 en el puerto D del pic, y por que no uso otros puertos ? por que ya los tengo ocupados, pero no me funciona nada e intentado casi de todo lo que esta en mi imaginacion pero nada, no logro optener un dato del teclado e echo el barrido eso de que dejo las columnas como entradas y ago unbarrido por las filas y tampoco me sale, bueno si alguien me pudiese ayudar con la programacion de este teclado seria de verdad grandioso, bueno que esten bien salu2.


PD=(el puerto D no tiene resistencia pull ups  >;(   ).


----------



## DRACON (Jun 26, 2009)

hola q tal japifer capaz podria ayudarte si me pusieras tu programa del teclado y asi ver en q estas fallando yo e realizado lo mismo pero en ves del puerto D use el B por las resistencias pull ups
y las interrupciones para el puerto voy a buscar el archivo y luego te estare comentando 

Saludos............


----------



## troniks89 (Nov 11, 2009)

Que pues  dracon me interesa el teclado por el puerto B, con interrupciones. no se si puedas subir el archivo de tu codigo. Saludos.


----------



## ingdenis1 (Feb 24, 2010)

dracon a mi tambien me interesa por el puerto b podrias subir el archivo porfas


----------



## josb86 (May 23, 2012)

existe alguna libreria modificada para utilizar un teclado 4x4 en el puerto D de un pic 18f4550.


----------



## josb86 (Jun 4, 2012)

Aquí les coloco unas librerías para manejo de teclados 4X4, la librería original es llamada kdb2.c que trabaja en el puerto B yo la modifique un poco y ahora trabaja con el puerto D.

#include <16f877.h>
#use delay(clock=4000000)
#fuses xt,noprotect,nowdt
#include <kbd_portd.c> //libreria manejo TECLADO 4X4 puerto d
#include <lcd.c> //libreria manejo lcd 4 bits
#use fast_io(B)
#use fast_io(D)


///PROGRAMA
void main(void)
{
char c,limit; //variable donde se almacena tecla pulsada
signed char i;

   lcd_init(); //inicializa lcd

   lcd_putc(" Tecla:" ); //presentacion
   lcd_gotoxy(8,1); //donde se va a mostrar tecla
   delay_ms(500);
   lcd_putc("\f");

   for(i=0;i<16;i++){ //bucle...
      do{ //espera hasta...
         c=kbd_getc();
      }
      while(c==0); //...pulsar una tecla

     printf(lcd_putc,"%c",c);
   limit=i+1;
   } //...infinito

}


----------

