Autor Tema: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas  (Leído 4518 veces)

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

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« en: 22 de Enero de 2011, 02:59:29 »
buenas gente tengo una duda... muy existencial..

resulta que he conectado un teclado de 4x3 usando el puerto b con los pullups activados..

el teclado funciiona perfectamente..

ahora lo que necesito hacer es enviar los datos de las teclas pulsadas por rs232,,


como este pic tiene uart por hardware, en el puerto b tmb

mas precisamente TX --> b2 , y RX - b1

cuando pongo la line de fuses use rs232  y lo seteo como va... el teclado ya no me funciona.. y si intento usar envio y recepcion por otro pin me envia basura ...

alguien me puede decir si se puede usar doblemente una pata? o alguna solucion


saludos!!!

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #1 en: 22 de Enero de 2011, 03:43:05 »
buenas gente tengo una duda... muy existencial..

resulta que he conectado un teclado de 4x3 usando el puerto b con los pullups activados..

el teclado funciiona perfectamente..

ahora lo que necesito hacer es enviar los datos de las teclas pulsadas por rs232,,


como este pic tiene uart por hardware, en el puerto b tmb

mas precisamente TX --> b2 , y RX - b1

cuando pongo la line de fuses use rs232  y lo seteo como va... el teclado ya no me funciona.. y si intento usar envio y recepcion por otro pin me envia basura ...

alguien me puede decir si se puede usar doblemente una pata? o alguna solucion


saludos!!!

Ok mira lo que necesitamos es lo siguientes:
En que lenguaje programas
Puedes forzar Tx y Rx por Software para mandarlo por otro puerto
y si pudes usar un puerto para leer y escribir pero tendiras que utilizar un buffer para no tener choques de datos

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #2 en: 22 de Enero de 2011, 13:42:34 »
hola si.. uso css como lenguaje..

como seria en ambos casos-.. en realidad en el fuse #use232 yo cambie los pines y si mando datos pero lo veo como basura nose porque.. son caracteres raros

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #3 en: 22 de Enero de 2011, 13:43:36 »
hola si.. uso css como lenguaje..

como seria en ambos casos-.. en realidad en el fuse #use232 yo cambie los pines y si mando datos pero lo veo como basura nose porque.. son caracteres raros

Hay que ver tu codigo para saber como le estas mandando la informacion a tu terminal

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #4 en: 22 de Enero de 2011, 14:21:55 »
#include <16F628.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES ER                       //External resistor osc, with CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES RESERVED                 //Used to set the reserved FUSE bits

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8,restart_wdt)


#include <KBD.C>
#int_RDA
void  RDA_isr(void)
{

}

#int_TIMER0
void  TIMER0_isr(void)
{

}



void main()
{

   port_b_pullups(TRUE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   kbd_init();
   enable_interrupts(INT_RDA);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);

   // TODO: USER CODE!!
  int i;
   char k;
   
   printf("holas");
   delay_ms(500);
 
     
      while(true)
      {
         k=kbd_getc();
     
         
         if(k!=0)
         {
           if(k=='1')
           {
            //output_toggle(pin_a0);           
            printf("%c",k);
           }
           if(k=='9')
           {
            printf("%c",k);
           }
         }
      }
}

Desconectado falflores

  • PIC16
  • ***
  • Mensajes: 173
    • Control, electrónica y programación en español
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #5 en: 23 de Enero de 2011, 20:52:57 »
Porque no intentas migrar esos dos pines del teclado que son para la USART al puerto A, por medio de una estructura, así te quedarían libres para la comunicación, solo necesitarias ponerles unas pullups y ya funcionarian adecuadamente la comunicación y el teclado sin interferencia.
Los invito a mi blog "Control, electrónica y programación en español" www.robotnias.blogspot.com

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #6 en: 23 de Enero de 2011, 21:02:20 »
eso habia pensado tmb.. pero no tengo mucha idea acerca de cambiar estos pines al puerto a.. no se como modificar la libreria kbd.c

me podrias dar una ayuda.. o guiarme como lo puedo hacer???

muchas gracias

Desconectado falflores

  • PIC16
  • ***
  • Mensajes: 173
    • Control, electrónica y programación en español
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #7 en: 23 de Enero de 2011, 21:45:08 »
Si tu teclado es de 4x3 y si lo unico que necesitas hacer es mandar datos, puedes dejar libre solamente el pin de RT (PIN_B2 como dices) y mudarlo a B0 que no se está usando aquí, prueba cambiando las partes del #define y conectando el pin del teclado que estaba en B2 dependiendo del teclado que tengas, rojo o azul, ahora en B0, aver si te funciona.

Código: [Seleccionar]
#ifdef blue_keypad  ///////////////////////////////////// For the blue keypad
#define COL0 (1 << 0)     //Antes estaba #define COL0 (1 << 2)
#define COL1 (1 << 3)
#define COL2 (1 << 6)

#define ROW0 (1 << 4)
#define ROW1 (1 << 7)
#define ROW2 (1 << 1)
#define ROW3 (1 << 5)

#else ////////////////////////////////////////////////// For the black keypad
#define COL0 (1 << 5)
#define COL1 (1 << 6)
#define COL2 (1 << 7)

#define ROW0 (1 << 1)
#define ROW1 (1 << 0)    /Antes estaba #define ROW1 (1 << 2)
#define ROW2 (1 << 3)
#define ROW3 (1 << 4)
Los invito a mi blog "Control, electrónica y programación en español" www.robotnias.blogspot.com

Desconectado calopsia

  • PIC12
  • **
  • Mensajes: 50
Re: pic16f628 rs232 y teclado matricial ayudaaaaaaaa porfas
« Respuesta #8 en: 23 de Enero de 2011, 23:02:45 »
#define COL0 (1 << 5)
#define COL1 (1 << 6)
#define COL2 (1 << 7)

#define ROW0 (0 << 0)   // Este seria el pin_a0?????
#define ROW1 (1 << 0)   // este el es pin_b0
#define ROW2 (1 << 3)
#define ROW3 (1 << 4)

lo tengo asi.. y funciona el envio pero ahora no funciona el teclado.. jajaja

que puede estar mal.. el teclado es el tipico de 4x3 en proteus sale como keypad phone

conectado al puerto b..


 

anything