Programming a LCD display with a Celoxica RC100

Hello, I´m a Spanish student and i need to program a Hitachi LCD using a Celoxica RC100 Spartan II and I can't do that the code show nothing in the display. If somebody know how program it please tell me. I put my code to all can see what i'm doing.

Thanks.

******************************************************************************* ******************************************************************************* /*inculde standard header file*/ #include

#ifdef DEBUG

/*set up a dummy clock*/ set clock = external "P1"; #else

#define RC100_BOARD #define RC100_CLOCK_DIVIDE 4 #include #endif /***********************************************************************************************/

/* Definimos una serie de señales necesarias para el manejo */ unsigned int 8 Datos; // 8 lineas de datos unsigned int 1 EN; // Linea de Enable unsigned int 1 RS; // Linea de Selector de Registros unsigned int 1 RW; // Linea de Lectura/Escritura unsigned int 8 AAC; // Acumulador, solo usamos el bit 7 del mismo unsigned int 8 A; // Donde guardamos lo que vamos a mostrar por el LCD unsigned int 8 posicion; // Variables que usamos cuando queremos mover el cursor unsigned int 1 salir; unsigned int 1 condicion; // Condicion para leer/escribir en el bus de datos unsigned int 8 x; // Variable que usamos en las operaciones de leer/escribir del bus de datos unsigned int 1 Z; // Variable que usamos para salir del buscle de Wait_LCD()

// Variables a usar en los delays unsigned int 8 TIEMPO1; unsigned int 8 TIEMPO2;

unsigned int 1 LUZ; // luz del display

/***********************************************************************************************/ /******************ASIGNACION DE PINES A LAS DIFERENTES SEÑALES USADAS**************************/

#ifndef DEBUG

/* Asignamos los pines a las señales declaradas con anterioridad */ // Datos ==> 8 pines ; Es de entrada/salida por lo que hay que declararse 2 buses /* Bus bidireccional de entrada y salida, cuando enable es 1 escribe "write" en los pines indicados, write contendra el valor a enviar a los pines, cuando quiera leer los hara de BiBus.read y leera los datos de los pines*/

interface bus_ts(unsigned int 8 read) BiBus(unsigned int write = x, unsigned 1 enable = condicion) with {data = {"W18","AA20","Y18","V17","AA19","AB20","W17","V13"}};

/* En las señales de control siempre se escribe por lo que los buses de las mismas basta con que sean de salida */ // EN ==> 1 pin ; interface bus_out() bus_en(unsigned int 1 en_out = EN) with {data = {"Y13"}}; // RS ==> 1 pin ; interface bus_out() bus_rs(unsigned int 1 rs_out = RS) with {data = {"AA13"}}; // RW ==> 1 pin ; interface bus_out() bus_rw(unsigned int 1 rw_out = RW) with {data = {"AB13"}}; // Luz ==> 1 pin interface bus_out() bus_lz(unsigned int 1 lz_out = LUZ) with {data = {"W13"}};

#endif

/***********************************************************************************************/

/* Definimos las operaciones del LCD */ // Macros para la temporizacion de los delays

static macro proc espera2 (time) { unsigned 64 i;

for (i=0; i

Reply to
etvive
Loading thread data ...

/***********************************************************************************************/

/***********************************************************************************************/

/***********************************************************************************************/

Hi

in Init_LCD after #else, don't you need some RW control ??

The Lcd display I have used has a init flow like this

enable write 0x30 // don't check busy flag delay write 0x30 // don't check busy flag delay write 0x30 // don't check busy flag write 0x38 // check busy flag

--
Thomas
registered user number 350300 http://counter.li.org/
Reply to
thomas

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.