Hitachi HD44780 LCD funktioniert genau 50 % der Zeit

Mein Hitachi-LCD funktioniert 50 % der Zeit. Ist es ein Problem, dass ein Problem mit der Entprellung der Reset-Taste am AVR vorliegt? Warum passiert das? Hier ist ein Video von dem, was passiert.

Dies passiert nicht, wenn ich nur in die 1. Zeile des LCDs schreibe . Es passiert nur, wenn ich in die 2. Zeile des LCD schreibe. Es sieht nach einem Problem mit der Speicheradresse aus, aber ich setze den Speicher bei jeder Initialisierung mit klarer Anzeige zurück.

Ich habe auch versucht, die Verzögerungszeit zu erhöhen (5 Sekunden vor dem Init). Hat nicht funktioniert.

Hier mein INIT():

    _delay_ms(15); //wait for VDD to rise

send_nibble(0,0b0010);   //Set to 4 bit operation (note: 1 nibble operation)
_delay_ms(5);

send_nibble(0,0b0010);   //Function set, 4 bit
send_nibble(0,0b1000);
_delay_ms(15);

send_nibble(0,0b0000);   //Clear Display
send_nibble(0,0b0001);
_delay_ms(15);

send_nibble(0,0b0000);  //Entry Mode, Increment cursor position, No display shift
send_nibble(0,0b0110);
_delay_ms(5);

send_nibble(0,0b0000);   //Display ON, Cursor On, Cursor Blinking
send_nibble(0,0b1111);

Antworten (1)

Es sieht so aus, als würden Sie Ihren Mikrocontroller zurücksetzen, aber das Display wird nicht zurückgesetzt (wenn Sie die Taste drücken, wird das Display nicht ausgeschaltet/zurückgesetzt). Beachten Sie, dass Sie ohne Zurücksetzen im 4-Bit-Modus beginnen. Um 8-Bit-Befehle zu senden, müssen Sie wieder in diesen Modus wechseln.

In diesem Fall sollte Ihre Init als erstes die Anzeige auf einen bekannten Zustand zurücksetzen. Alternativ können Sie das Display einfach so verdrahten, dass es mit demselben Signal wie der Mikrocontroller-Reset zurückgesetzt wird.

Für die richtige Initialisierung schauen Sie sich das Datenblatt an . Beachten Sie, dass das Initialisierungsdiagramm im Datenblatt mit „Power On“ beginnt. Sie fangen nicht dort an, Sie überspringen die ersten paar Schritte. Laut Datenblatt,

Wenn die Stromversorgungsbedingungen für den korrekten Betrieb der internen Reset-Schaltung nicht erfüllt sind, wird eine Initialisierung durch Befehle erforderlich.

Dies ist die 4-Bit-Initialisierung durch Anweisungsdiagramm.

Geben Sie hier die Bildbeschreibung ein

Wie kann ich die Software zurücksetzen? Ich habe versucht, das Display als erstes im INIT zu löschen, aber es hat nicht funktioniert.
Soweit ich das beurteilen kann, können Sie die Software nicht zurücksetzen, nicht wirklich. Sie müssten die Stromversorgung mit einigen Schaltkreisen unterbrechen, die an Ihren Reset-Schalter angeschlossen sind. Versuchen Sie andernfalls, die Initialisierung genau wie im Diagramm beschrieben auszuführen.