LCD Pins für andere Ausgaben mitbenutzen?
Hallo zusammen,
während der Realisierung meines Projekts sind mir leider die I/O Pins meines Sisy Atmel Mege 8 ausgegangen. So ein Projekt wächst halt...
Daher die Frage: Kann ich die Daten- und Steuerleitungen desLCD Displays für Ausgabezwecke (Relays und LEDs) mitbenutzen?
Hardwareerweiterungen wie ein Latch e.t.c. möchte ich nicht einsetzen.
Meine Idee ist die Zustände der Ports zu speichern und nach jedem LCD Befehl wieder herzustellen. Bei den Relays sollte sich Aufgrund der Geschwindigkeit der Schaltzustand nicht ändern und bei den LEDs ist ein kurzes Zucken akzeptabel.
Sind meine Überlegungen richtig oder habe ich etwas übersehen?
Danke und Gruß
Horst
Liste der Anhänge anzeigen (Anzahl: 1)
Rückmeldung
Hallo zusammen,
nach einer längeren Zwangspause habe ich mein kleines Steuerungsprojekt wieder aufgenommen. Da ich mit den Portpins tatsächlich nicht ausgekommen bin, habe ich auf Eure Empfehlung gehört und ein 2* 4 Bit Latch (CD4508B) benutzt. Leider klappt es nicht so wie erwartet. Die angeschlossenen LEDs lassen sich nicht gezielt schalten.
Die Schaltung sieht so aus:
Die Ports d.4 bis d.7 liegen parallel an der LCD Anzeige und den Eingängen der beiden 4 Bit Latches. Also d.4 an D1A und D2A e.t.c.
Die beiden Output Disable- und Resetpins der Latches liegen auf Masse.
Die beiden Strobe Eingänge habe ich auf Pin d.0 und d.1 gelegt.
So wie ich die Chip Dokumentation verstehe sollte also das Bitmuster, das ich an die Pins d.4 bis d.7 anlege durch einen positiven Puls an der Strobeleitung dazu führen, das das an den Eingängen angelegte Bitmuster "gelatched" wird und die an die Ausgänge angeschlossenen LEDs entsprechend dem Bitmuster leuchten.
Tatsächlich leuchten die (4* 2 Farben LEDs) willkürlich, die LCD Anzeige funktioniert aber tadellos. Schaltungsfehler wie Kurzschluss, Verwechselung und Unterbrechung kann ich weitestgehend ausschließen, da mindestend 20 mal "durchgehupt" mittels Multimeter. Einen Oskar habe ich leider nicht.
Gesagt sei noch, das die Leitungslänge zwischen Mega8 und LCD /Latch etwa 40 cm beträgt.
Das auf das wesentliche reduzierte Programm hänge ich an.
Ich würde mich über eine Idee sehr freuen.
Gruß
Pöler
Liste der Anhänge anzeigen (Anzahl: 1)
Mehrere Taster parallel zur LCD zu schalten ist ganz einfach. Die Leitungen D4-D7 der LCD-Anzeige werden mit einem Widerstand von 1 KiloOhm an den Taster und die Taster dann an Ground angeschlossen. Die LCD wird nicht beeinflusst. Der Strom an den Ports erhöht sich auf 5 mA solange eine Taste gedrückt ist, wenn der Ausgang 1 ist. Es gibt weder einen Kurzschluß noch eine falsche Anzeige. Die Tasten werden einfach mit Debounce abgefragt:
'Taster abfragen
Config Portd.4 = Input 'Portd.4 als Eingang definieren
Config Portd.5 = Input 'Portd.5 als Eingang definieren
Config Portd.6 = Input 'Portd.6 als Eingang definieren
Config Portd.7 = Input 'Portd.7 als Eingang definieren
Portd.4 = 1 'Pullup-Widerstand einschalten
Portd.5 = 1 'Pullup-Widerstand einschalten
Portd.6 = 1 'Pullup-Widerstand einschalten
Portd.7 = 1 'Pullup-Widerstand einschalten
Debounce Pind.4 , 0 , Label_1 'wenn Taste gedrückt nach Label_1 springen
Debounce Pind.5 , 0 , Label_2 'wenn Taste gedrückt nach Label_2 springen
Debounce Pind.6 , 0 , Sub_1 'wenn Taste gedrückt zur Subroutine Sub_1 springen
Debounce Pind.7 , 0 , Sub_2 'wenn Taste gedrückt zur Subroutine Sub_2 springen
Config Portd.4 = Output 'Portd.4 als Ausgang definieren
Config Portd.5 = Output 'Portd.5 als Ausgang definieren
Config Portd.6 = Output 'Portd.6 als Ausgang definieren
Config Portd.7 = Output 'Portd.7 als Ausgang definieren
Mit den Datenleitungen D4-D7 funktioniert das auf jeden Fall, ob es auch mit der RS-Leitung geht, habe ich noch nicht getestet.
felack
zum Schluss noch das Schaltbild: