Curioso comportamiento de LCD

He adquirido un LCd powertip 1602-H y cuando lo uso como una sola linea va de maravilla, pero en cambio, cuando lo configuro como 2 lineas, el contrase cae una barbaridad y casi casi casi no se puede ver lo que hay escrito.

A alguien le ha pasado algo asi? He usado el buscador y no he encontrado ningun post con este problema.

Espero me puedan ayudar, muchas gracias.

PD: Uso c18 y el codigo no tiene problemas porque con la powertip 1602-F va de maravilla en una linea y dos lineas.

El comando que uso para configurar la lcd es el 40 decimal. (2 lineas y 5x7)

Código:
#include <p18f2550.h>
#include <adc.h>
#include <delays.h>
#include <usart.h>
#include <math.h>
#include <xlcd.h>
#include <stdio.h>
 
 

/*FUNCIONES PARA MOSTRAR EN EL LCD*/
void DelayFor18TCY( void )
{
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
Nop();
}
void DelayPORXLCD (void)
{
Delay1KTCYx(75); // Delay of 15ms
// Cycles = (TimeDelay * Fosc) / 4
// Cycles = (15ms * 16MHz) / 4
// Cycles = 60,000
return;
}
void DelayXLCD (void)
{
Delay1KTCYx(25); // Delay of 5ms
// Cycles = (TimeDelay * Fosc) / 4
// Cycles = (5ms * 16MHz) / 4
// Cycles = 20,000
return;
}
void main(void)
{

// configure external LCD
OpenXLCD( FOUR_BIT & LINES_5X7 );
while(BusyXLCD());
WriteCmdXLCD(1);
Delay10TCYx(25);
while(BusyXLCD());
WriteCmdXLCD(40);
Delay10TCYx(25);
putrsXLCD("hola");
while(BusyXLCD());
WriteCmdXLCD(192);
Delay10TCYx(25);
putrsXLCD("123456789");
while(1);
}
 
Gracias por la respuesta, pero ese no es el problema, el contraste esta ajustado al maximo para que se pueda ver algo, en cuanto lo bajo ya no se ve absolutamente nada.

En ese sentido no puedo hacer nada.
 
entonces revisa el voltaje de tu lcd, probablemente tenga una caida. Si esta en 4.5V ya empieza a tener ese problema, aunque casi siempre lo puedo compensar con el contraste, pero por si las dudas.
 
tampoco esta ahi el problema.. Es raro verdad? Puede ser que se pueda configurar el contraste por software tambien?

Con un WriteCmdXLCD("algun numero que controle el contraste");

Existe esta posibilidad?

PD. Ademas el contraste se ve perfectamente cuando uso solo una linea, pero cuando por software uso las dos es cuando apenas veo la pantalla y no hay ajuste posible que hacer.
 
tampoco esta ahi el problema.. Es raro verdad? Puede ser que se pueda configurar el contraste por software tambien?

Con un WriteCmdXLCD("algun numero que controle el contraste");

Existe esta posibilidad?

PD. Ademas el contraste se ve perfectamente cuando uso solo una linea, pero cuando por software uso las dos es cuando apenas veo la pantalla y no hay ajuste posible que hacer.

No puedes (o mejor dicho no debes) controlar el contraste por software... Es un pin al cual hay que variarle la tensión, y depende del gusto de cada uno, como tambien del tipo de LCD que uses...

Es raro lo que dices, nunca me paso... Respetas los tiempos de cada comando adecuadamente? Por lo que leo, la segunda línea se ve el escrito, pero poco... Osea que un error de escritura en la rutina no sería... Probaste con otra LCD?
 
Si, con otro lcd, con el 1602f no hay problemas, es con el 1602h.

Muy raro y ya no se que mas probar..

Como no sea metiendo tension negativa en el pin Vo el del contraste.... (porque ahora esta en masa que es como se encuentra en max contraste, si lo pongo en Vcc ya si que no se ve nada de nada)
 
Atrás
Arriba