Problema inicializacion lcd

1 view
Skip to first unread message

Smarin

unread,
Apr 30, 2006, 7:14:42 PM4/30/06
to Programacion aplicada
profe ve ejecuto el programa , pero no me inicializa bien el lcd, no
tengo prblemas de hardware porque ya lo probamos con otro programa,
y el software me corre si errores pero, no inicializa el lcd, hemos
intentado con los tiempos de la hoja de datos que nos mandaste y con
otros y nada,
este es el codigo de inicializacion

si miras mandamos los datos negados , ya que la salida del bufer los
niega otra vez.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "IOPort"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
TLCD *LCD;

TLCD::TLCD(void)
{

}
//---------------------------------------------------------------------------
void TLCD::inicializacion(void)
{
instruccion(0xcf);
Sleep(20);
instruccion(0xcf);
Sleep(20);
instruccion(0xcf);
Sleep(20);
instruccion(0xc7);
Sleep(20);
instruccion(0xf7);
Sleep(20);
instruccion(0xfe); //clear
Sleep(20);
instruccion(0xf8);
Sleep(20);
instruccion(0xfd);
Sleep(20);

}
//---------------------------------------------------------------------------

void TLCD::instruccion(BYTE dato)
{
Form1->IOPort1->PortByte[0x37A]=0x00;
enviar(dato);
}
//---------------------------------------------------------------------------
void TLCD::dato(byte dato)
{
Form1->IOPort1->PortByte[0x37A]=0x01;
enviar(dato);
}
//---------------------------------------------------------------------------
void TLCD::enviar(byte dato)
{
Sleep(1);
Form1->IOPort1->PortByte[0x378]=dato;

Sleep(1);

Form1->IOPort1->PortByte[0x37A]=Form1->IOPort1->PortByte[0x37A]|0xFE;
Sleep(1);

Form1->IOPort1->PortByte[0x37A]=Form1->IOPort1->PortByte[0x37A]&0xFD;
Sleep(1);


}
//---------------------------------------------------------------------------

void TLCD::cadena(AnsiString cadena)
{
for(int i=1;i<=cadena.Length();i++)
{
dato(cadena[i]);
}
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
LCD->inicializacion();
LCD->instruccion(0x80);
LCD->dato('v');
}
//---------------------------------------------------------------------------

Sergio Marin

unread,
Apr 30, 2006, 7:19:36 PM4/30/06
to apli...@googlegroups.com
profe tenemos problemas ccon la inicializacion del lcd, hemos probado el hardware y
esta bueno, modeficamos los tiempos y nada, y el preograma no nos genera errores,
este es el codigo.
--
Sergio Marin
sergi...@gmail.com
Reply all
Reply to author
Forward
0 new messages