(wieder) LCD mit HD44780

Gast #13479
Hi all!

Wieder mal ne Frage zu LCD´s mit HD44780 Chip!
Muss gleich vorausschicken: Bin anfänger bez. AVR´s!

Folgendes Problem:
Habe mit so ein Display mit 16*2 zugelegt und kanns auch ansteuern.
Jedoch nur die erste Zeile.
Ich verwende zwar den BASCOMAVR-Basic-Compiler, aber nicht die 
eingebauten Befehle wie "LCD" etc.
Habe die Funktion "händisch" nachprogrammiert.
Meine Frage: Wie kann man die Zweite Zeile ansteuern.
So wie ich das verstehe muss ich die DD-RAM Addr auf H40 setzten.
Ich mach das indem ich erstmal E auf Hi setzte, und RS aus Lo, 
anschliesend, lege ich am Datenbus die gewünschte Addresse plus 128, z.B 
192, also erstes Zeichen in der Zweiten Zeile.
Danach geht E auf Lo (damit wirksam), danach E auf Hi und Datan an den 
Bus, z.B. 65 f. "A" und dann setz ich E wieder auf Lo.
Wie gesagt, alles "händisch" nachprogrammiert.
Mit der Ersten Zeile funktionierts, aber ich komm einfach nicht in die 
2. Zeile!
Hat jemand eine Idee? Kann es sein, dass bei der Doku zu meinem Display 
ein Fehler drinn ist?
Danke für die Hilfe!

Cu
Scotty!
Gast
Hi Jornbyte!

Danke für die Antwort!

Das ist mir schon klar aber es mag trotzdem nicht!

Listing sieht in etwa so aus:

PortD ist D0 bis D7
PortC.7 ist E, PortC.6 ist RS

.
init-Teil.
.
.
PortC=128          'E=1, RS=0 => es kommt ein Befehl
delay              'sicherheitshalber warten
PortD=192          'DDRamadr=H40 = 1Stelle 2. Zeile
delay              'sicherheitshalber warten
PortC=0            'E=0 RS=0 => Daten von Bus lesen u. verarbeiten
delay              'sicherheitshalber warten
PortC=192          'E=1, RS=1 => es kommen Daten
delay              'sicherheitshalber warten
PortD=65           '"A"
delay              'sicherheitshalber warten
PortC=0            'E=0, RS=0 => Daten von Bus lesen und anzeigen
.
.
.


So sollte es doch funken oder???
Wie gesagt, alles was ich ans Display sende kommt auf die erste Zeile, 
somit weiss ich, dass der Rest OK ist. Aber das mit der DDRamAddr. krieg 
ich nicht hin!
Sonst noch ne Idee??
Gast
Hi!
Wie hast du es denn initialisiert? 1 oder 2 zeilig, 5x7Dots? 5x10 Dots 
geht nur einzeilig.
Das Init für 8-Bit Datenlänge lautet:
$30 -> Pause 4,1ms ->$30->Pause >0,1ms ->$30 -> 
Pause0,04ms->$38(8Bit/2Zeilen) ->0,04msPause->$0C/$0E(Disp/Displ+Kursor 
ein)->0,04msPause->$01(Displ+RamAdr.=0)
Alles mit RS/RW = 0
Nun kannst du Zeilenadr. ausgeben. Ich sehe gerade was! Hast du $40 
geschrieben? Du musst DB7 auf 1(=$80) setzen, der Adressbereich lautet 
dann $C0-$CF.
Übrigens in der Codesammlung gibt es ein DCF77-Teil, da ist das alles 
verarbeitet.Leider nur ASM
Ich hoffe aber es gelingt jetzt.
Gruss  Uwe
Gast
HI Uwe!

Danke für die Antwort!

Das mit dem Init funzt alles!
2 Zeilen
5x7 Dots
Clear geht
Cursor aus/ein geht
Blink ein/aus geht
Alles geht bis auf 2 Zeile!
Deshalb meine Frage ob es sein kann das in der Doku ein Fehler ist und 
evt. die Codes f. 5x7 und 5x10 vertauscht sind.
Kann aber fast nicht sein, da die Zeichen alle 5x7 sind.
Addresse C0 ist dez. 192!
Das hab ich!
Gibts einen bestimmten Grund das du $30 3 x schickst?

Danke f. den Tip mit DCF77 , schaus mir mal an!
Gast
Hi!
$30 dreimal weil's in der Dock so steht, habe aber festgestellt wenn die 
Initzeit für das 1.mal hoch genug ist reicht einmal. Ist aber nicht 
belegt, es geht auch gleich mit $38.
Gruss Uwe

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 24 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.