LCD-Ansteuerung

Begonnen von Ottmar, 11.05.2023, 16:35:31 CEST

Vorheriges Thema - Nächstes Thema

Ottmar

Hallo,
mich würde mal interessieren wie Ihr in MPLAB-ASM ein HD44780er LCD initialisiert und zur Ausgabe ansteuert.Ich selbst verwende seit langer Zeit eine mehr oder weniger selbst zusammengezimmerte Initialisierung/Ansteuerung welche auf sprut.de zurückgeht.

Diese Initialisierung/Ausgabe habe ich einmal als 8 und 4Bit-Interface und auch für 2-Wire-Interface. Nun bin ich aber der Meinung, dass diese Dateien in die Jahre gekommen und evtl. umständlich und überholt sein könnten. Gibt es da was aktuelleres?  Würde mich mal gerne mit jemand darüber austauschen (bei Bedarf auch die entsprechenden Files).

Angeregt durch dieses Forum habe ich mi auch den 18F14K22 beschafft, vor allem auch weil ich neugierig  war/bin auf  die 64MHz des INTOSZ, den Low/High Priority Interrupt  und das SR-Latch. Bei 64MHz kamen dann meine LCD-Files nicht mehr mit  bevor ich nun daran herumzubasteln beginne....

Da wäre auch schon meine nächste Frage: Was macht den 18F14K22 so wirklich interessant- Ich meine im Gegensatz z.B. zu einem 16F1827 oder 16F1936?

Freue mich auf eine Antwort
Ottmar

picass

#1
Die schier unendliche Auswahl an µC-Typen bei Microchip lässt einen Überblick nicht wirklich leicht werden. Jedenfalls werde ich nicht behaupten, den zu haben. Will sagen: da muss jeder irgendwann/ irgendwie zu einer Entscheidung kommen. Bei mir ging das vergleichsweise einfach. Früher mal hatte ich mit dem PIC16F84 gearbeitet. Als der auslief, musste was Neues her. Aufgrund von Empfehlungen wurde es bei mir der PIC18F14K22 - , es hätte sicher auch was anderes werden können. Diesen Typ verwende ich seit Langem als Standard-µC. Der ist nun mittlerweile auch schon angegraut und wird auch nicht gerade billigst angeboten. Microchip himself empfiehlt als Nachfolger, rsp. neuen µC-Typ den PIC18F24Q10. Der hat dann allerdings 28 Pinne, was aber auch erlaubt, alle drei Grund-Ports (A,B,C) komplett ausfzuführen.
Grüße, picass

Ottmar

Danke für die Antwort,

das mit der Vielfalt ist mir schon klar, habe mich ja selbst durch diese Vielfalt ab 16F84, hauptsächlich aber 16F628, 16F1827 u.a. bewegt. Von den 16F hat mir der 16F827 und der 16F1936 am besten zugesagt. Seit einiger Zeit bin ich dabei meine Erfahrungen mit den 18F zu machen. Na ja, wie  ich schon mal sagte, bin ich nicht einer der sonderlich viele standalone Projekte erstellt hat. Vielmehr macht es mir Spass die einzelnen "Features" zu erkunden und da begnüge ich mich oft damit die Schaltungen auf einem Steckbrett aufzubauen.

LCD???
Grüße Ottmar

Ottmar

Hallo zusammen,
kann mir jemand bitte eine Antwort auf meine erste Frage zur LCD- Initialisierung / Ausgabe geben?
mfG Ottmar

PICkel

Hallo Ottmar,

geht es am 18F14K22 mit langsamerem Takt? Wenn ja, solltest Du es mal mit längeren Wartezyklen versuchen.
Bei ASM ist man ja (leider) auf die programmtechnische Anpassung der Wartezyklen an den uC-Takt angewiesen, was ansonsten der Compiler erledigt.
Noch was: Funktioniert nur die Zeichenausgabe nicht oder klemmt es schon bei der Initialisierung? Eventuell nach dem Umschalten von R/W bzw. RS ein paar Wartezyklen einfügen.

MfG
PICkel

Ottmar


Danke PICkel für  die Antwort.

Mir ist schon klar, daß die Taktfrequenz der LCD-Befehle den Bedingungen im Datenblatt, z.B. des HD44780 entsprechen muss ( 2MHz timing bei Vss 5V ) und daß man dann eben zwischen den Befehlen entsprechend viele "nop's' einfügen muss. Wie es halt so ist, wollte ich den bequemeren Weg gehen und vielleicht einen Hinweis auf etwas 'Fertiges' bekommen.

Inzwischen habe ich mich doch mal bemüht und an sich recht rasch meine 2-Wire-Ansteuerung überarbeitet. Siehe da,  die beigefügte Initialisierung und der Code zur Zeichenausgabe funktioniert noch bis fosc 64MHz -> fosc/4=16MHz. Die Delays habe ich mal etwas variabler, in Abhängikeit von fosc gestaltet.  Für Int1 eressierte füge ich mal das Ergebnis als gepacktes MPLAB 8.92-Projekt  bei.

Doch: gibt es da keine bessere/elegantere Lösung?
mfG Ottmar

Ottmar

Sorry, die Version aus meinem letzten Beitrag gibt einen Fehler aus. Ein "'#ENDIF' ist einfach verschwunden :(

Fehler ist nun behoben und das nun fehlerbereinigte Projekt ist angefügt.

Ottmar

Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Verifizierung:
Bitte lassen Sie dieses Feld leer:
Geben Sie die Buchstaben aus dem Bild ein
Buchstaben anhören / Neues Bild laden

Geben Sie die Buchstaben aus dem Bild ein:

Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau