www.mikrocontroller.net

Forum: Projekte & Code [ASM] Konfigurierbarer LCD-Treiber für HD44780-Displays


Autor: Marcel Papst (phpmysqlfreak)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe mal einen kleinen LCD-Treiber für HD44780-Displays geschrieben.
Dieser Treiber kann wahlweise ohne Schieberegister oder mit einem 
74xx164 oder 74xx595-Schieberegister verwendet werden.

Eine Dokumentation und Verwendungsbeispiele sind allerdings noch nicht 
vorhanden, und der Quelltext ist meiner Meinung nach auch noch nicht 
ausreichend kommentiert.

Geschrieben habe ich den Code im AVR-Studio. Daher benutze ich 
Präprozessor-Anweisungen, damit nach dem Compile-Vorgang der korrekte
Code-Abschnitt im Controller landet.

Bei der Verwendung von Schieberegistern besteht derzeit nur die 
Einschränkung der festen Pin-Verwendung und 8-Bit Ansteuerung, was ich 
aber in Zukunft noch platzsparend einbringen möchte.

Ich bitte um konstruktive Kritik und Verbesserungsvorschläge, damit 
dieser Treiber von vielen genutzt werden kann. Dabei denke ich an 
Anfänger und fortgeschrittene Programmierer.

Gruß,
    Marcel

Edit:
Die Größe des 595-Treibers ist 1 Word größer, als in der angehängten 
Datei angegeben. - Ich hatte noch einen Fehler korrigiert.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marcel,

gute Idee, zumal entsprechende asm-libs eher schwer zu finden sind.
Ich bin schon auf die Doc. gespannt, insbesondere was die universelle
Verwendbarkeit betrifft.

Viele Grüße
Thomas

Autor: Helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marcel,

eine Anmerkung: du verbrauchst da eniges an Code fuer deine Delays - es 
ist doch nicht notwendig dass die 100%ig genau sind. ob 50 oder 51 ms 
ist doch egal. :)

Wuenschenswert waere allerdings dann die Delays abhaengig vom CPU-clock 
(per .define) zu machen.

Servus,
Helmut

Autor: Marcel Papst (phpmysqlfreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helmut schrieb:
> uenschenswert waere allerdings dann die Delays abhaengig vom CPU-clock
> (per .define) zu machen.

Das kann ich verstehen, und habe es mittlerweile auch eingesehen. ;)

Ich werde es noch abändern, sodass die lt. Datenblatt geforderte Zeit 
nur "minimal" gewartet wird. - Im hochgeladenen Code diente es mir 
selbst nur zum lernen.

Weiter gemacht habe ich noch nicht, da mir aufgrund einer Montage kaum 
Zeit dafür blieb. ;) Aber das folgt jetzt wieder.

Vielen Dank für Einsehung und Kommentierung meines noch unfertigen 
Projektes.

Gruß,
    Marcel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.