Autor Tema: Controlar un LCD alfanumerico con I2C  (Leído 6332 veces)

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

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Controlar un LCD alfanumerico con I2C
« en: 16 de Agosto de 2016, 08:56:58 »
Hola de nuevo.

Tengo un LCD que lleva incorporado un modulo que recibe datos en I2C y los pasa a paralelo al display, pero no se como gobernarlo en Basic Pro, ya que toda la información que tenga solo habla de guardar y leer datos en una memoria externa, pero no menciona nada en el momento de controlar una pantalla. El Pic que utilizo es el 16F88 con oscilador externo de 4 Mhz.

Alguien me prodria ayudar referente al codigo?.

Gracias
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #1 en: 16 de Agosto de 2016, 11:37:03 »
Que tal Perla,

Cual es el controlador que esta usando tu LCD? PCF8574 o PCF8574A?

Aquí tienes un trabajo en PICAXE que es básicamente basic. Espero te sea de utilidad:
http://letsmakerobots.com/node/4240

Elreypic.
« Última modificación: 16 de Agosto de 2016, 12:08:53 por elreypic2 »

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #2 en: 16 de Agosto de 2016, 13:09:28 »
Hola elreypic2.
Me alegro mucho de tu respuesta pero veo mucho codigo de por medio, me gustaria que fuese de una forma mas simple.
Me baje esto de la Web. pero no funciona y no se que es lo que esta mal.
 
Define Osc 4 'Define el Oscilador para un Cristal de 4 Mhz.
ansel = 0    'desactiva el ADC (esto solo se pone para el pic16f88)
cmcon = 7    'desactiva los comparadores (MUY IMPORTANTE. Esto solo se pone para el pic16f88)


DEFINE  I2C_SLOW   1 'velocidad del oscilador de 400Khz a 8Mhz

'TRISB = %01100110 ' Configuración del Puerto B (0=salida; 1=entrada)
TRISA   = %00000000         'Sets   Tristate Registers, Port A (Inputs)
TRISB   = %00000000         'Clears Tristate Registers, Port B (Outputs)

SDA     VAR     PORTB.0
SCL     VAR     PORTB.1         

LCD     VAR     word
CONT    VAR     word

startup:
    pause 900
    PORTB = %00000000
main:
  'DEFINE I2C VARS
    LCD     =  $80 '80 en decimal   'La dirección predeterminada de la pantalla LCD
     
      i2cwrite SDA, SCL, LCD,cont, ["Jim"]
      pause 100 
    END   
    goto main
   
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1099
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #3 en: 16 de Agosto de 2016, 14:15:28 »
Estos dias ando yo tambien con un tema similar, que aun no resolvi. Mi caso es que tengo un modulo que entrega los datos en SPI y tampoco consigo que funcione. Como no se la forma en que envia los datos mi modulo, no consigo hacerlo funcionar, pero buscando informacion, vi que hay varios "adaptadores tanto de SPI como de I2C a paralelo, todos ellos necesitan una libreria para utilizarlos. Hay algunas librerias por internet, tanto para Alduino, como para PIC y con distintos CI, por ejemplo MCP23008, PCF8574, 74HC595, etc.
Echale un vistazo a ese tema a ver si por ahi encuentras la solucion, tu lo tienes mas facil, ya que es para un PIC y por tanto puedes controlar por medio de la libreria adecuada, como envias los datos al LCD.

Saludos.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #4 en: 16 de Agosto de 2016, 15:33:57 »
Que tal Perla,

No te funciona porque primero no estas inicializando el LCD, tienes que hacer la rutina de inicilizacion, para ello necesitas ver la hoja de datos del controlador del LCD, luego necesitas desarrollar las subrutinas para mandar un dato o para mandar un comando. Por eso te mandé ese link, ahi estan los ejemplos y las subrutinas solo hay que cambiarlas a PIC Basic.

Aqui el link del datasheet del controlador LCD, Especificamente en la pagina 46 esta el diagrama de flujo de inicializacion a 4bits. Que es o que tú necesitas.

http://pdf1.alldatasheet.com/datasheet-pdf/view/63673/HITACHI/HD44780.html

Elreypic.
« Última modificación: 16 de Agosto de 2016, 15:44:18 por elreypic2 »

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #5 en: 16 de Agosto de 2016, 15:48:39 »
Ok. Gracias, pero no me aclaro mucho
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #6 en: 16 de Agosto de 2016, 16:39:27 »
Que tal Perla,

Otra vez yo. Acabo de recordar que existe un compilador BASIC que es gratuito llamado Great Cow Basic, este ya tiene las librerias para manejar el LCD como tu lo necesitas. Inclusive yo publique algunos ejemplos aquí en el foro. Puedes tomar la libreria y modificarla para PICBasic. Ojala que eso te sirva.

Link del GCB: http://gcbasic.sourceforge.net/

Ese es el link del tema aqui en el foro: http://www.todopic.com.ar/foros/index.php?topic=45816.msg383159#msg383159

Saludos.

Elreypic.

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #7 en: 17 de Agosto de 2016, 09:14:39 »
Me lo bajo y lo pruebo.

Gracias de nuevo elreypic2.
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #8 en: 27 de Agosto de 2016, 10:00:35 »
Que tal perla,

Pues lo prometido es deuda. Aquie te adjunto la simulacion y los codigos de prueba para controlar un LCD con la interface I2C.
En el archivo llamado PCF8574_LCD_PBP260 se encuentra contenido el codigo para PICBasic Pro de la version 2.60 y tambien la simulacion. Este es una modificación al codigo que encontré en el internet.

En el archivo IIC_LCD_PBP3 se encuentra contenido el código para el PICBasic Pro de la version 3.0.5 en adelante, como bien sabes ya esta version hubo varios cambios significativos. Lo mas importante es que existe un archivo dentro de este ZIP que se llama LCD_PCF8574.pbp el cual debes copiar en el directorio donde tengas instalado el PBP3 (ojo no funciona con PBP 2.6). Una vez que lo tengas simplemente compila el archivo IIC_LCD.pbp y luego carga el hex en la simulacion.

Espero que esto te sea de utilidad. Cualquier duda no dudes en contactarme.

elreypic.

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
Re:Controlar un LCD alfanumerico con I2C
« Respuesta #9 en: 08 de Febrero de 2017, 19:14:34 »
una pregunta, uso microcode, y estoy estudiando el tema de las lcd, pero, como puedo desplasar el texto por la pantalla, de un lado a otro, se que hay una instruccion para eso, me podrian ayudar? muchas gracias