Autor Tema: Problema LCD y teclado matricial  (Leído 26790 veces)

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

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Problema LCD y teclado matricial
« en: 07 de Abril de 2010, 07:10:00 »
Hola gente! estoy aprendiendo a programar gracias a este foro, y un hilo-tutorial de VSZender, y todo de vicio (hasta ahora)
La cuestion es que estoy intentando escribir en una lcd la tecla que pulso en un teclado 3x4, pero soy incapaz. Kizas el problema este en las bibliotecas, o incluso en las conexiones al pic (que no me queda muy claro eso de conectar la lcd y el teclado al mismo puerto. Al intentar simularlo en el proteos, se le va la oya y tengo que terminar el proceso desde el administrador de tareas, asi que ya veis...
El programa que he hecho es el siguiente:

Código: [Seleccionar]
#include <18F4550.h>           //Libreria del PIC
#fuses XT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN //Configuracion de los fuses:
#use delay (clock=4000000)    //Configuramos oscilador a 4Mhz
#include <lcd2.c>   //Libreria para la lcd
#include <kbd3x4.c>   //Libreria para teclado matricial
#use fast_io(A)
#use fast_io(B)


//---------- PROGRAMA PRINCIPAL ----------------
void main ()
{
   char tecla;   //almacena tecla pulsada
   lcd_init();      //inicializa lcd
   lcd_putc("Tecla pulsada:\n");   
   for(;;){
      do{               //espera hasta que se pulse una tecla
         tecla=kbd_getc();   
         }while(tecla==0);
         
      printf(lcd_putc,"%c",tecla);      //muestra tecla
      lcd_putc("\b");            //retrocede una posicion
      }      //...infinito
     
}

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema LCD y teclado matricial
« Respuesta #1 en: 07 de Abril de 2010, 11:06:30 »
Habría que mirar las librerías que usas.  :?
El papel lo aguanta todo

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #2 en: 07 de Abril de 2010, 11:17:25 »
He hecho algun que otro cambio en el programa, y parece que ahora funciona algo mejor, pero sigue sin mostrarme en pantalla la tecla pulsada.
Pongo el programa a ver si alguien me puede mostrar el camino hacia la luz :(

PROGRAMA


Código: [Seleccionar]
#include <18F4550.h>           //Libreria del PIC
#fuses XT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN // fuse con cristal 4Mhz
#use delay (clock=4000000)    //Configuramos oscilador a 4Mhz

#define LCD_ENABLE_PIN  PIN_D0                                    ////
#define LCD_RS_PIN      PIN_D1                                    ////
#define LCD_RW_PIN      PIN_D2                                    ////
#define LCD_DATA4       PIN_D4                                    ////
#define LCD_DATA5       PIN_D5                                    ////
#define LCD_DATA6       PIN_D6                                    ////
#define LCD_DATA7       PIN_D7
#define use_portb_kbd TRUE   
#include <lcd.c>   //Libreria para la lcd
#include <kbd.c>   //Libreria para teclado matricial



//---------- PROGRAMA PRINCIPAL ----------------
void main ()
{
   char tecla;   //almacena tecla pulsada
   lcd_init();      //inicializa lcd
   kbd_init();
   port_b_pullups(TRUE);
   lcd_putc("Tecla pulsada:\n");   
   for(;;){
      do{               //espera hasta que se pulse una tecla
         tecla=kbd_getc();   
      }while(tecla==0);
         
   lcd_putc(tecla);      //muestra tecla
   lcd_putc("\b");            //retrocede una posicion
   }      //...infinito
     
}

« Última modificación: 07 de Abril de 2010, 11:46:06 por Cortijero »

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #3 en: 07 de Abril de 2010, 12:44:00 »
Otro avance mas... aunque no termina de ir. Funciona la pantalla y funciona el teclado, pero me marca valores distintos a los que presiono. Podria ser porque lo tenga mal conectado?? Si en el codigo puse que usaria el puerto B para el teclado (define use_portb_kbd TRUE ), como se supone que va conectado al puerto b??

Venga, hechadme una mano, que estoy cerquita :(
Saludos y gracias!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema LCD y teclado matricial
« Respuesta #4 en: 07 de Abril de 2010, 15:03:41 »
Hola.

La forma de conexión esta en la librería del teclado.

Saludos
El papel lo aguanta todo

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Problema LCD y teclado matricial
« Respuesta #5 en: 07 de Abril de 2010, 15:25:23 »
Primeramente recomiendo que pongas un esquema del circuito que estas haciendo, me imagino que proteus se reininica porque talves estas trabajando con resistencias y diodos, y por defecto vienen con una porpiedad de forma de trabajo analogica, esta la debes cambiar a digital para que proteus no se cuelgue, ya que esto le permitira realizar menos calculos a la hora de la simulacion
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #6 en: 07 de Abril de 2010, 16:01:08 »
Aqui esta el circuito. Me va a explotar la cabeza, y lo peor es que seguro que es cualquier tonteria el error....

En cuanto a mirar las conexiones en la libreria... pues por ejemplo, en la libreria lcd.c, biene claro, pero en la kbd.c, no soy capaz de encontrarlo  :(

saludos y gracias!





EDITO: se ve muy chiquitito, aqui el enlace: http://www.subirimagenes.com/otros-dibujo-4327322.html
« Última modificación: 08 de Abril de 2010, 06:43:53 por Cortijero »

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #7 en: 07 de Abril de 2010, 16:05:02 »
Por cierto, en el codigo, figura como que la LCD esta conectada al puerto D, pero entre prueba y prueba, termine cambiandolo al B

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Problema LCD y teclado matricial
« Respuesta #8 en: 07 de Abril de 2010, 19:13:23 »
Hola, me fue imposible bajar ese esquema. Te recomiendo que lo subas al servidor de todo pic, eso lo puedes hacer en las opciones adicionales al responder un mensaje.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema LCD y teclado matricial
« Respuesta #9 en: 07 de Abril de 2010, 23:44:27 »
Mas claro no puede estar:

Código: C#
  1. //Keypad connection:   (for example column 0 is B2)
  2. //                Bx:
  3.  
  4. #ifdef blue_keypad  ///////////////////////////////////// For the blue keypad
  5. #define COL0 (1 << 2)
  6. #define COL1 (1 << 3)
  7. #define COL2 (1 << 6)
  8.  
  9. #define ROW0 (1 << 4)
  10. #define ROW1 (1 << 7)
  11. #define ROW2 (1 << 1)
  12. #define ROW3 (1 << 5)
  13.  
  14. #else ////////////////////////////////////////////////// For the black keypad
  15. #define COL0 (1 << 5)
  16. #define COL1 (1 << 6)
  17. #define COL2 (1 << 7)
  18.  
  19. #define ROW0 (1 << 1)
  20. #define ROW1 (1 << 2)
  21. #define ROW2 (1 << 3)
  22. #define ROW3 (1 << 4)
  23.  
  24. #endif

Saludos
El papel lo aguanta todo

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #10 en: 08 de Abril de 2010, 06:20:26 »
Y que diferencia hay entre blue keypad y black keypad?

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Problema LCD y teclado matricial
« Respuesta #11 en: 08 de Abril de 2010, 06:57:47 »
la libreria viene con el nombre DRIVERS y se encuentra en el Archivo de programa PICC debajo,alli lo encotrara, y deberia leertela bien para que sepa trabajar con ella o cualquier DRIVER que use.

Desconectado bmfranky

  • PIC16
  • ***
  • Mensajes: 165
    • La Tienda De Fran
Re: Problema LCD y teclado matricial
« Respuesta #12 en: 08 de Abril de 2010, 07:07:11 »
Son dos formas de conectar el teclado según la disposición de los pines del matricial.

Has probado a conectar separadamente el lcd.
« Última modificación: 08 de Abril de 2010, 07:19:41 por bmfranky »
Visiten La Tienda De Fran ;-) Aqui. y mi nueva Web Aqui.

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Problema LCD y teclado matricial
« Respuesta #13 en: 08 de Abril de 2010, 07:23:26 »
Son dos formas de conectar el teclado según la disposición de los pines del matricial.

Has probado a conectar separadamente el lcd.

Sepp, pasa exactamente igual. Ahora, tal y como esta, le doy a las teclas, y aparecen valores distintos a su valor, pero no siempre el mismo valor; es decir, si le doy al 2, a veces marca en la lcd 2, y otras veces 1. :(

Saludos y gracias

Desconectado alcubo01

  • PIC12
  • **
  • Mensajes: 69
Re: Problema LCD y teclado matricial
« Respuesta #14 en: 08 de Abril de 2010, 07:33:46 »

 Las pantallas LCD puede recibir los datos con 4 Bits (L3-L7) o con 8 Bits (L0-L7).

 ¿Estás seguro de que la función que usas para enviar los datos está usando sólo 4 Bits? Quizás esté configurado para que el bus sea de 8 y por eso muestra basurilla espacial ...



 

anything