Mucho mejor, aquí tienes un programa en xc8
h t t p s://www.geekfactory.mx/tutoriales/tutoriales-pic/teclado-matricial-con-pic/
Hay cosas que cambiaría, pero es por gustos míos. La configuración de los puertos (para hacerlos entradas o salidas) las pondrías afuera de la función que crearon para leer las teclas.
Eso es porque consume líneas de código y tiempo de ejecución; con solo hacerlo una vez alcanza. Se justifica si; por necesidad, hay que cambiar la configuración de los puertos.
Lo que tienes que hacer ahora, es agregar las indicaciónes al compilador (el pic a usar, las librerías del LCD, ect) Luego, lees el teclado llamando a la función keypad_read() por ejemplo keypad_read(tecla);
No olvides de declarar a tecla como uint16_t
Una vez recuperado la tecla presionada, para saber eso, chequea que tecla es diferente a 0 por ejemplo:
if (tecla !=0)
Dentro del if, incluye la función printf para imprimir en el LCD
Presta atención la configuración del teclado. No conectes al LCD en el mismo puerto del teclado; y para ello configurar correctamente los pines de conexión del LCD en la función.