Autor Tema: escribir caracteres en el CGRAM del LCD  (Leído 14027 veces)

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

Desconectado ICEMAN1984

  • PIC10
  • *
  • Mensajes: 6
escribir caracteres en el CGRAM del LCD
« en: 20 de Julio de 2009, 02:09:04 »
Hola que tal, estoy tratando de escribir caracteres especiales en una pantalla LCD (HD44780), encontre aqui, un código (el cual voy a poner mas adelante) y lo que no entiendo es la parte final del mismo, para ser mas especifico: lcd_send_byte(1,0).....

código
lcd_send_byte(0,0x40); // escribimos en la cgram (0), en la direccion 0x40
lcd_send_byte(1,0x00); // | | | | | |
lcd_send_byte(1,0x0C); // | |x|x| | |
lcd_send_byte(1,0x12); // |x| | |x| |
lcd_send_byte(1,0x12); // |x| | |x| |
lcd_send_byte(1,0x0C); // | |x|x| | |
lcd_send_byte(1,0x00); // | | | | | |
lcd_send_byte(1,0x00); // | | | | | |
lcd_send_byte(1,0x00); // | | | | | |


lcd_send_byte(0,0x48); // escribimos en la cgram en las siguientes posiciones libres 0x48
lcd_send_byte(1,0x09); // | |x| | | |
lcd_send_byte(1,0x16); // |x| |x|x| |
lcd_send_byte(1,0x00); // | | | | | |
lcd_send_byte(1,0x16); // |x| |x|x| |
lcd_send_byte(1,0x19); // |x|x| | |x|
lcd_send_byte(1,0x11); // |x| | | |x|
lcd_send_byte(1,0x011); // |x| | | |x|
lcd_send_byte(1,0x00); // | | | | | |

lcd_gotoxy(1,1);
lcd_send_byte(1,0); ----> no entiendo esto

lcd_gotoxy(2,2);
lcd_send_byte(1,1);  ---> no entiendo esto
}

Este código lo que hace es que imprime el pantalla el simbolo de grados y debajo una ñ, con lo demas no hay problema, pero por ejemplo: si quisiera colocar otro simbolo al lado de la ñ como haria, o mejor dicho, que tendria que poner en lcd_send_byte (porque ya se como sacar los simbolos)

Gracias

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #1 en: 20 de Julio de 2009, 13:30:15 »
Código: C
  1. void lcd_send_byte(int8 address, int8 n)

address indica si se envía un comando o la dirección de un carácter, colocando el pin RS según corresponda.
n es el dato a enviar.
En tu caso envía que imprima el carácter almacenado en la dirección 0, y después en la dirección 1.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado ICEMAN1984

  • PIC10
  • *
  • Mensajes: 6
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #2 en: 20 de Julio de 2009, 14:32:34 »
Suky, gracias por responder tan pronto, todavía no estoy muy claro, por ejemplo: lcd_send_byte(0,0x40);  esto quiere decir que se escribe cero en la dirección 0x40???  Esto (lcd_send_byte(int8 address, int8 n)) lo sabia pero donde todavía no estoy claro es en lo siguiente:
Para escribir la ñ por ejemplo:
lcd_send_byte(0,0x48); // escribimos en la cgram en las siguientes posiciones libres 0x48
lcd_send_byte(1,0x09); // | |x| | | |
lcd_send_byte(1,0x16); // |x| |x|x| |
lcd_send_byte(1,0x00); // | | | | | |
lcd_send_byte(1,0x16); // |x| |x|x| |
lcd_send_byte(1,0x19); // |x|x| | |x|
lcd_send_byte(1,0x11); // |x| | | |x|
lcd_send_byte(1,0x011); // |x| | | |x|
lcd_send_byte(1,0x00); // | | | | | |


lcd_gotoxy(2,2);
                         _______>  Este valor se mantiene en 1, esto siempre va a ser así???? Tanto para el
                        |                 símbolo de grados como para la ñ.
lcd_send_byte( 1 , 1 ); 
                             |
                             |________> Este otro es el que cambia, 1 para la ñ   y   0 para el símbolo de grado


}


Saludos…

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #3 en: 20 de Julio de 2009, 15:11:25 »
--->Este valor se mantiene en 1, esto siempre va a ser así???? Tanto para el símbolo de grados como para la ñ.

--->Este otro es el que cambia, 1 para la ñ   y   0 para el símbolo de grado

El primero para mostrar el carácter creado por pantalla debe ser 1.

El segundo indica la dirección del primer banco de 8 bytes (Donde se ha almacenado la letra creada) de la CGRAM. Revisa un datasheet de un LCD, en la tabla de caracteres ascii, las primeras 8 posiciones son de la CGRAM.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado ICEMAN1984

  • PIC10
  • *
  • Mensajes: 6
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #4 en: 21 de Julio de 2009, 14:52:46 »
Suky que tal, gracias por la ayuda, sabrás que al fin he logrado hacer lo que quería (dibujar una letra), bueno mas tarde voy a poner la imagen, no es la gran cosa, pero para mi si, ya que con esto voy comprendiendo mas a fondo el funcionamiento de las pantallas LCD.  Trabajo con una pantalla HD44780 de 16 x 4 (5x8), te queía preguntar algo mas, con este tipo de pantalla 16x4 (5x8), solo se pueden tener 16 caracteres definidos por el usuario???? 



Saludos....

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #5 en: 21 de Julio de 2009, 15:47:53 »
16? creo que solo 8.  :?

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5470
    • Electrónica Didacta
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #6 en: 21 de Julio de 2009, 21:52:37 »
solo 8 caracteres si la fuente es 5x8 y la mitad si es 5x10

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Raybak

  • PIC10
  • *
  • Mensajes: 12
Re: escribir caracteres en el CGRAM del LCD
« Respuesta #7 en: 29 de Abril de 2010, 06:41:46 »
Buenas a todos,

He estado intentando crear un simbolo para mi LCD pero no lo consigo y ya no se que mas hacer.... el problema puede estar en la libreria que utilizo para la LCD? estoy utilizando la que voy a adjuntar. En lugar de LCD_send_byte utilizo lcd_enviar que segun lo que he visto trata de lo mismo... pero no funciona, el compilador no me lo compila....

un saludo.
Si Quieres Ser El Mejor, Tienes Que Vencer Al Mejor

Desconectado dcsalg

  • PIC10
  • *
  • Mensajes: 18
Re:escribir caracteres en el CGRAM del LCD
« Respuesta #8 en: 22 de Noviembre de 2015, 11:18:07 »
Hola alguien tiene para dibujar los caracteres pero con I2C en vez de paralelo?, no veo en internet ejemplos con el programa en ccs para ver como se hace los que si hay es en paralelo, pero necesitaria en I2C. Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:escribir caracteres en el CGRAM del LCD
« Respuesta #9 en: 22 de Noviembre de 2015, 14:07:34 »
es lo mismo nomas que mandas los comandos por I2C ... Busca uno cualquiera, y fijate en I2C que se envie la instruccion para escribir en la direccion 0x00 y de ahi vas llenando tus caracteres.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5470
    • Electrónica Didacta
Re:escribir caracteres en el CGRAM del LCD
« Respuesta #10 en: 22 de Noviembre de 2015, 14:16:08 »
pero no entiendo, es qué el controlador de la pantalla LCD acepta i2c o hay que construir un convertidor paralelo <-> i2c ?
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything