Forum: Projekte & Code 4-zeiliges Textdisplay ansteuern


von Johannes R. (oa625)


Angehängte Dateien:

Lesenswert?

Hallo!

4-zeilige LCD-Textdisplays mit mehr als 20 Zeichen pro Zeile haben 2 
Displaycontroller mit separaten Enable-Eingängen aber gemeinsamen 
Eingängen für D0...7, R/S und R/W.
Die LCD-Routinen der Programmiersprachen unterstützen aber nur 1 
Controller.

Anstatt neue Ausgaberoutinen zu schreiben lässt sich mit nur 2 
Widerständen und einem zusätzlichen Controllerpin die 4-zeilige Ausgabe 
realisieren:

- der einzelne Enable- Ausgang am µC bleibt erhalten
- das Deaktivieren eines LCD-Controllers erfolgt,
  indem der ENx - Eingang auf 0 gezogen wird
- das Aktivieren erfolgt, indem der zugehörige µC-Controllerpin auf
  Input, also hochohmig geschaltet wird
- Beim Programmstart sind die betreffenden 2 Portpins auf Input gesetzt,
  dadurch genügt 1x Lcd_Init() um beide Controller zu initialisieren.
  Erst danach erfolgt die Auswahl von Controller1 oder 2

Im Anhang befinden sich das Prinzipschaltbild für den LCD- Anschluss an
einen Port (hier PORTB) eines µC und ein Testprogramm in MikroBasic Pro 
for PIC.

Mit diesen Prozeduren erfolgt die Umschaltung zwischen Controller 1 und 
2  (in MikroBasic for PIC V.6):

sub procedure Zeile1_2()          ' Schreiben auf Controller 1
  TRISB.0 = 1                     ' PORTB.0 hochohmig (Enable 1 aktiv)
  PORTB.1 = 0                     ' PORTB.1 (Enable 2) deaktivieren
  TRISB.1 = 0
end sub

sub procedure Zeile3_4()          ' Schreiben auf Controller 2
  TRISB.1 = 1                     ' PORTB.1 hochohmig (Enable 2 aktiv)
  PORTB.0 = 0                     ' PORTB.0 (Enable 1) deaktivieren,
  TRISB.0 = 0
end sub

Das Übertragen in andere Programmiersprachen und auf andere µC ist bei 
diesen Dreizeilern kein Problem, aber bitte beachten:
Diese Beispiele gelten für PICs,
also TRISx.x = 0 -> Output und TRISx.x = 1 -> Input.
Andere Hersteller haben u.U. gegensätzliche Definitionen.

Vielleicht konnte ich hiermit dem Einen oder Anderen weiterhelfen.

Johannes

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
Noch kein Account? Hier anmelden.