TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Murdco25 en 05 de Junio de 2009, 23:25:17

Título: Conección 2 Pics serial y 1 con LCD
Publicado por: Murdco25 en 05 de Junio de 2009, 23:25:17
Hola que tal nuevamente una duda espero me puedan ayudar, tengo estos 2 programas 1 le transmite al otro una  cadena de caracteres, la palabra "Hola" por puerto serial el problema es que a la hora de simular, en  mi LCD la palabra "HOLA" aparece  duplicandas algunas de las  letras   "HOLLAA"    espero puedan resolver mi duda grcias.


***** Programa para el LCD*********

Código: C
  1. #include <16f876a.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
  5. #use delay(clock=4000000)
  6. #use standard_io(b)
  7. #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
  8.  
  9. #define LCD_DB4   PIN_B4
  10. #define LCD_DB5   PIN_B5
  11. #define LCD_DB6   PIN_B6
  12. #define LCD_DB7   PIN_B7
  13.  
  14. #define LCD_RS    PIN_C0
  15. #define LCD_RW    PIN_C1
  16. #define LCD_E     PIN_C2
  17.  
  18. #include "flex_lcd.c"
  19.  
  20.  
  21. char Keypress=' ';
  22. char Serie;
  23. char temp[3];
  24. int x = 0;
  25.  
  26. #int_rda
  27. void serial_isr() {
  28.  
  29.   Keypress=0x00;
  30.   if(kbhit()){
  31.     Keypress=getc();
  32.   }
  33. }
  34.  
  35. void main() {
  36.  
  37.   enable_interrupts(global);
  38.   enable_interrupts(int_rda);
  39.  
  40.   //printf("\r\n\LCD driver monitor\r\n");
  41.  
  42.   lcd_init();
  43.  
  44.   do {
  45.     if (Keypress !='\x0a')
  46.     {
  47.         lcd_gotoxy(x,0);
  48.         lcd_putc(Keypress);
  49.         x++;
  50. //        strcat(Serie,temp);//Coloca temp al final de serie
  51.         }
  52.     else
  53.        {
  54.        x = 0;
  55.          //printf(lcd_putc,"Hola");
  56.          //printf(lcd_putc,Serie);
  57.          strcpy(Serie,"");
  58.          strcpy(temp,"");
  59.        }
  60.  
  61.  
  62.  
  63.   } while (TRUE);
  64. }


********Programa que manda la palabra Hola************


Código: C
  1. #include <16f877a.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
  5. #use delay(clock=4000000)
  6. #use standard_io(b)
  7. #use standard_io(d)
  8. #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
  9.  
  10.  
  11.  
  12. //Lee RS232
  13. #int_rda
  14. void serial_isr() {
  15. }
  16.  
  17.  
  18. void main() {
  19.  
  20.    enable_interrupts(global);
  21.    enable_interrupts(int_rda);
  22.  
  23.    do {
  24. printf("\r\nHOLA\n");
  25.      } while (TRUE);
  26.  
  27.  
  28. }
Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: fidodido18 en 06 de Junio de 2009, 23:55:22
Hola, no se si sea demasiado tarde, pero intenta quitarle al PIC que envia los datos el \n\r o cualquiera de esos, ya que no son necesarios en la comunicacion entre PIC, bueno al menos no le veo la razon de ser en este programa ni en alguno que implementé.

depronto ese sea el problema
Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: Murdco25 en 08 de Junio de 2009, 13:39:46
gracias por la respeusta ya lo intente y no si se los quito deja de enviar y no me visualisa nada en el LCD del receptor gracias
Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: jhonastad en 09 de Junio de 2009, 13:14:32
Prueba con la funcion gets(keypress)
Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: darck_khronos en 12 de Junio de 2009, 00:30:49
Aqui te dejo una practica que realice mas que con 2 Lcd xD

Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: Murdco25 en 12 de Junio de 2009, 14:25:29
Hola gracias por su ayuda ya pude resolver mi problema gracias por el  program tambien me sirvio saludos.
Título: Re: Conección 2 Pics serial y 1 con LCD
Publicado por: fidodido18 en 13 de Junio de 2009, 12:53:58
Hola gracias por su ayuda ya pude resolver mi problema gracias por el  program tambien me sirvio saludos.

Por favor comparte con todos cual fue el problema, era algo con el LCD? o con el programa de RS232...