hallo da ich mich ganz neu mit µC beschäftige habe ich des öfteren kleiner probleme die ich hier nachfrage. diesmal geht es um mein display ich habe ein display 4X20 von reichelt. betrieben mit einem HD44780 controller. den treiber den ich dazu habe ist leider auf den KS0073 geschrieben.der treiber funktioniert auch soweit. das problem das ich hab ist das die zeilen unterschiedlich aufgeteilt sind (siehe unten)! nun die frage: im anhang ist der treiber in .a51 und ich komme damit nicht so klar ihn umzuschreiben damit die zeilen untereinander sind. kann mir jemand helfen bzw. hat mir jemand einen passenden code? danke gruß simon 4x20 zeile1 zeile2 zeile3 zeile4 $00-$13 $40-$53 $14-$27 $54-$67 Kontroller HD44780 $00-$13 $20-$33 $40-$53 $60-$73 Kontroller KS0073
Warum willst Du Dich Mikrocontrollern beschäftigen, wenn Du nicht lernen willst, wie man sie programmiert?
Bitte schön! Aber mal im Ernst: Wenn Du nicht in der Lage bist, das Programm zu analysieren, mußt Du Dich eben mit Assembler-Programmierung auseinandersetzen, dafür gibt es genug Tutorials (z.B. erikbuchmann.de). Und für den Anfang muß es ja nicht gerade eine LCD-Ansteuerung sein.
hast ja prinzipiell recht aber ich a51 hab ich nie geprogt! vergiss es einfach! war nur ne frage! brauch mich dafür auch nicht rechtfertigen. schönen abend noch!
Hallo Simon!
ich kann dir den Code leider nicht nicht umschreiben aber zu den
Adressen
>$00-$13 $40-$53 $14-$27 $54-$67 Kontroller HD44780
Muss noch ein Offset von 7Fh Addiert werden.
Begründung: (Zitat von Andreas Reber FH Pforzheim)
Die erste Displayposition hat die DDRAM Adresse 00h, da der Befehl
jedoch ein MSB mit dem Wert 1 hat, muss man zu jeder Displayposition
den Offset 7Fh addieren um den Datenwert zu erhalten.
Also:
Fangen die einzelnen Displayzeilen bei folgende Adressen an:
Zeile1: 80h
Zeile2: C0h
Zeile3: 94h
Zeile4: D4h
Da ich diesen Offsetwert bei dir nicht entdecken kann gehe ich davon
aus, das von C aus die Routinen aufgerufen werden.
Mit _moveto: wird der Cursor ja gesetzt. R7 = Zeile und R5 = Spalte
Wie der Aufruf in C jetzt aussieht weiss ich nicht aber vielleicht es
dir ja weiter.
Gruß
norad
> Muss noch ein Offset von 7Fh Addiert werden.
7Fh ???
Ich denke eher 80h...
...
Sorry Hannes! Die 7Fh ergeben mit der Grundzahl eben die Adressen für die Zeilen eines 4 Zeiligen Display mit 20 Zeichen. Also wie oben beschrieben.
norad wrote: > Sorry Hannes! > > Die 7Fh ergeben mit der Grundzahl eben die Adressen für die Zeilen eines > 4 Zeiligen Display mit 20 Zeichen. Also wie oben beschrieben. Nööö... Der "Set DD-RAM address"-Befehl besteht aus dem Bit 7 (Wert 128 bzw. 80h) und der Adresse im DD-RAM. Es muss zur Adresse (Adresse entspricht der Ausgabeposition, allerdings verschachtelt) also 128 geORt bzw. addiert werden... Die Adresse beginnt übrigens mit 0. ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.