Autor Tema: Hola, saludos. Soy nuevo en este foro, y requiero de ayuda.  (Leído 148 veces)

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

Desconectado Monopolyo

  • PIC10
  • *
  • Mensajes: 4
Hola, saludos. Soy nuevo en este foro, y requiero de ayuda.
« en: 09 de Abril de 2021, 18:18:39 »
Hola saludos, tengo un proyecto para la universidad, y requiero de ayuda.

Necesito hacer que un teclado 4x3 escriba letras, pero no sé como hacerlo, solo logro hacer que escriba numeros, estoy trabajando en el entorno CCS COMPILER

Esto es lo que llevo de codigo, ¿podrían ayudarme porfaaaaaaaa?  :lol: :lol: :lol:

Dejo anexado la foto de como se ve.

//Objetivo, lograr escribir letras mediante un keypad 4x3 y se muestre en un LCD

#include <16f877a.h>
#fuses NOWDT,XT,PUT,NOPROTECT,BROWNOUT,NOCPD,NOWRT,NODEBUG
#use delay (clock=4M)

#define use_portd_lcd true        //puerto para el LCD
#define use_portb_kbd true        // puerto para el teclado 4x3

#include <lcd.c>                 //se carga libreria del LCD
#include <kbd.c>                 //se carga libreria de teclado
#include <stdio.h>               //carga modo estandar de puertas de entrada y salida

   int dato;

void main()
{

   int i;
   char k;  //variable caracter
   
   lcd_init();                 //se inicia el lcd
   kbd_init();                 //se inicia el teclado
   
   port_b_pullups(true);                 //se activan las resistencias del puerto B
   
   lcd_putc("\f Inserte nombre\n");                 //inicia lectura de teclado
   
   while(i<16)
   {
      k=kbd_getc();              //se le asigna el valor a la variable k leida por teclado
     
      if(k!= 0)             //si la tecla es presionada
      {
         dato=k;
         i++;
         lcd_gotoxy(i,2);
         lcd_putc(k);
      }
     
   }
   
}

Desconectado Eduardo2

  • PIC18
  • ****
  • Mensajes: 473
Re:Hola, saludos. Soy nuevo en este foro, y requiero de ayuda.
« Respuesta #1 en: 09 de Abril de 2021, 19:44:10 »
Necesito hacer que un teclado 4x3 escriba letras, pero no sé como hacerlo, solo logro hacer que escriba numeros, estoy trabajando en el entorno CCS COMPILER
....

Ese teclado devuelve lo que hay en la matriz
Código: C
  1. char const KEYS[4][3] = {{'1','2','3'},
  2.                          {'4','5','6'},
  3.                          {'7','8','9'},
  4.                          {'*','0','#'}};
(declarada en kbd.c )

Si querés que algún botón devuelva caracteres solamente tenés que cambiar el Ascii correspondiente. Eso sí, el botón se verá igual porque para eso habría que editar el componente o crear uno , que no es trivial.
Para no sobreescribir una librería estándar, es mejor copiarla al directorio del programa y hacer ahi  las modificaciones necesarias.
También podés hacer que devuelva solamente un número entre 0 y 11 (la tecla pulsada)  como índice de una tabla con el juego de caracteres activo.


Desconectado Monopolyo

  • PIC10
  • *
  • Mensajes: 4
Re:Hola, saludos. Soy nuevo en este foro, y requiero de ayuda.
« Respuesta #2 en: 09 de Abril de 2021, 20:19:12 »
Necesito hacer que un teclado 4x3 escriba letras, pero no sé como hacerlo, solo logro hacer que escriba numeros, estoy trabajando en el entorno CCS COMPILER
....

Ese teclado devuelve lo que hay en la matriz
Código: C
  1. char const KEYS[4][3] = {{'1','2','3'},
  2.                          {'4','5','6'},
  3.                          {'7','8','9'},
  4.                          {'*','0','#'}};
(declarada en kbd.c )

Si querés que algún botón devuelva caracteres solamente tenés que cambiar el Ascii correspondiente. Eso sí, el botón se verá igual porque para eso habría que editar el componente o crear uno , que no es trivial.
Para no sobreescribir una librería estándar, es mejor copiarla al directorio del programa y hacer ahi  las modificaciones necesarias.
También podés hacer que devuelva solamente un número entre 0 y 11 (la tecla pulsada)  como índice de una tabla con el juego de caracteres activo.





Muchisimas gracias, saludos desde Venezuela

Desconectado Monopolyo

  • PIC10
  • *
  • Mensajes: 4
Re:Hola, saludos. Soy nuevo en este foro, y requiero de ayuda.
« Respuesta #3 en: 09 de Abril de 2021, 21:52:50 »
 :) :)