Autor Tema: no me funciona pic18f4550 lcd y ccs  (Leído 2774 veces)

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

Desconectado johnnycero

  • PIC10
  • *
  • Mensajes: 8
no me funciona pic18f4550 lcd y ccs
« en: 15 de Octubre de 2014, 14:23:45 »
Buenas a todos! Estoy tratando de hacer funcionar un pic18f4550 con una lcd 2x16 powertip pc1602f en ccs y no hay manera si alguien me da una mano  estare agradecido por siempre, he leido unos cuantos hilos y no llego a buen puerto. pongo el codigo que estoy usando
Código: [Seleccionar]
#include <18F4550.h>

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,VREGEN
#use delay(clock=48000000)

#include "flex_lcd.c"

void main()

{  output_high(pin_c0);// esto es para verificar si el  pic anda y  funciona pues  enciende y apaga el
    delay_ms(1000);     //led antes y despues de intentar hacer funcionar el lcd
    output_low(pin_c0);
    lcd_init();
    for(;;){
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Hola Mundo ESP");
   delay_ms(1000);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Hello Word ENG");
   delay_ms(1000);
    output_high(pin_c0);
    delay_ms(1000);
    output_low(pin_c0);
        delay_ms(1000);
   }
}

utilizo la libreria lcd_flex.c midificada para que funcione  con el puerto b de la siguiente manera
Código: [Seleccionar]
#define LCD_DB4   PIN_B4
#define LCD_DB5   PIN_B5
#define LCD_DB6   PIN_B6
#define LCD_DB7   PIN_B7
//
#define LCD_RS    PIN_b2
#define LCD_RW    PIN_b1
#define LCD_E     PIN_b0

Tengo el pin mclr a 5v, y el potenciometro para el contraste los pines no usados de la lcd  a tierra y la retroiluminación  con su debida resitencia pero solo me aparece la primera linea en negro nada de mensaje de ningún tipo. No tengo muy claro los fuses pues este programa lo he copiado para probar la lcd . Agradecería cualquier aporte.
« Última modificación: 15 de Octubre de 2014, 14:26:30 por johnnycero »

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: no me funciona pic18f4550 lcd y ccs
« Respuesta #1 en: 15 de Octubre de 2014, 15:13:47 »
Hola johnnycero por lo poco que se el problema es que el lcd no se inicializa, ¿Has tenido en cuenta los delays de dentro de la librería? lo digo porque como dices que lo has copiado si cambias la frecuencia del pic los tiempos del delay cambian.
Otra cosa veo que tienes los pines de Enable R/W y RS escritos en minuscula y creo haber leido que CCS distingue mayusculas de minusculas.

Saludos!
« Última modificación: 15 de Octubre de 2014, 15:17:22 por Miquel_S »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado johnnycero

  • PIC10
  • *
  • Mensajes: 8
Re: no me funciona pic18f4550 lcd y ccs
« Respuesta #2 en: 15 de Octubre de 2014, 16:18:50 »
hola Miquel_S  gracias por tu tiempo, he cambiado a mayúsculas los pines Enable R/W y RS y sigue igual con respecto a los tiempos de delay no tengo idea como modificarlo pues veo que algunas lineas del lcd_flex hay unos delay_cycles() y otros delay_us(). :(

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: no me funciona pic18f4550 lcd y ccs
« Respuesta #3 en: 15 de Octubre de 2014, 18:57:43 »
intenta bajandole la frecuencia al micro, prueba con 4Mhz o 20Mhz
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado johnnycero

  • PIC10
  • *
  • Mensajes: 8
Re: no me funciona pic18f4550 lcd y ccs
« Respuesta #4 en: 16 de Octubre de 2014, 14:01:45 »
Gracias por la ayuda, decidi regresar a la simulación y probar el programa el cual para mi sorpresa funcionó como debía, creo que se debio a la modificacion de los fuses, pues lo tengo muy claro pero funciona,  :-/, pongo el codigo que me funcioa a continuación

Código: [Seleccionar]
#include <18F4550.h>

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,PLL5,CPUDIV2,NOFCMEN,NOIESO,NOBROWNOUT,NOPBADEN,NOMCLR
#use delay(clock=48000000)

#include "flex_lcd.c"

void main()

{  output_high(pin_c0);
    delay_ms(1000);
      output_low(pin_c0);
    lcd_init();
    delay_ms(1000);
    for(;;){
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Hola Mundo ESP");
   delay_ms(1000);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"Hello Word ENG");
   delay_ms(1000);
    output_high(pin_c0);
    delay_ms(1000);
    output_low(pin_c0);
        delay_ms(1000);
   }
}


y la configuración  de los pines  en la lcd_flex

Código: [Seleccionar]
// These pins are for the Microchip PicDem2-Plus board,
// which is what I used to test the driver.  Change these
// pins to fit your own board.

#define LCD_DB4   PIN_B4
#define LCD_DB5   PIN_B5
#define LCD_DB6   PIN_B6
#define LCD_DB7   PIN_B7
//
#define LCD_RS    PIN_B2
#define LCD_RW    PIN_B1
#define LCD_E     PIN_B0

// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.

//#define USE_LCD_RW   1

Eso si he puesto el pin rw a tierra y funciona ya haré mas pruebas  para adquirir los datos de  la pantalla.

una vez mas gracias por la ayuda.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: no me funciona pic18f4550 lcd y ccs
« Respuesta #5 en: 16 de Octubre de 2014, 17:42:25 »
Me alegro que te funcionara.

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.


 

anything