TODOPIC

Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: vra en 22 de Noviembre de 2019, 16:35:58

Título: No se si LCD HD44780 se está inicializando HD44780 bien en proteus
Publicado por: vra en 22 de Noviembre de 2019, 16:35:58
Hola a todos, cómo están?. Tengo un problema aquí, estoy tratando de controlar un LCD basado en controlador HD44780 en proteus con interfaz de 4 bits, el problema es que el log de simulación me da una serie de mensajes que según mi entender es que los comandos no los estoy enviando de forma correcta.

El código de inicialización para el LCD es el siguiente:

Código: [Seleccionar]
void Inicia_LCD4(unsigned short dato)       /* Función para inicializar la    */
{                                           /* pantalla LCD.                  */
    PORTD = 0;
   
    retardo_ms(16);
   
    E = 0;
    retardo_us(5);
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_ms(10);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;

    retardo_us(100);
   
    E = 1;
    PORTD = 0x20 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x0c | 0x04;
    retardo_us(5);
    E = 0;   
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x08 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x40 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x60 | 0x04;
    retardo_us(5);
    E = 0;
   
    retardo_us(100);
   
    E = 1;
    PORTD = 0x78 | 0x04;
    retardo_us(5);
    E = 0;
}

el log de la simulación me da este resultado:

Código: [Seleccionar]
Initial delta set to 2.5e-05
[HD44780] Set Function: bits=8, lines=1, dots=7 [LCD1]
[HD44780] Set Function: bits=8, lines=1, dots=7 [LCD1]
[HD44780] Set Function: bits=8, lines=1, dots=7 [LCD1]
[HD44780] Set Function: bits=8, lines=1, dots=7 [LCD1]
[HD44780] Set Function: bits=4, lines=1, dots=7 [LCD1]
[HD44780] Set DDRAM ptr = 03 [LCD1]
[HD44780] Set DDRAM ptr = 03 [LCD1]
[HD44780] Cursor left [LCD1]

y la disposición de los pines en mi simulación es la siguiente:

(https://ibb.co/h82jG6Z)

No se por cuál razón me están dando que estoy usando una pantalla de 1 línea cuando quiero usar 2 y además me da en dos mensajes que estoy dejando la DDRAM en 03 en tanto que el último mensaje solo me dice que estoy mandando el cursor a la izquierda.

Cómo puedo resolver esto?

Gracias de antemano por la ayuda brindada.