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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

