Forum: Mikrocontroller und Digitale Elektronik Wie funktioniert die LCD ansteuerung ?


von MaXXX (Gast)


Lesenswert?

hey leute,

leider finde ich nicht wie die LCD-Steuerung fuktioniert, es wird immer 
erklärt wie man das programmiert.

Also ich möchte die funktionsweise wissen.

Meine Ahnnahme: Es gibt zwie schieberegister. Einer zum spalten und der 
zweite zum zeilen beschreiben. Die Pixel verhalten sich wie eine 
logische AND verknüpfung.

Bild 1. erste zeile
       Register
           ____
          | 1101 |
          |______|
            ||||
            ||||
            vvvv
Display   ______
         |  1101 |<-- | 1 |  Register
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |_______|    |___|
________________________________________
Bild 2. zweite zeile

           ____
          | 1001 |
          |______|
            ||||
            ||||
            vvvv
Display   ______      __
         |  1101 |<-- | 0 |  Register
         |  1001 |<-- | 1 |
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |_______|    |___|
__________________________________________
Bild 3. dritte zeile
           ____
          | 0000 |
          |______|
            ||||
            ||||
            vvvv
Display   ______      __
         |  1101 |<-- | 0 |  Register
         |  1001 |<-- | 0 |
         |  0000 |<-- | 1 |
         |  0000 |<-- | 0 |
         |_______|    |___|
_________________________________________
Bild 4. vierte zeile
           ____
          | 0110 |
          |______|
            ||||
            ||||
            vvvv
Display   ______      __
         |  1101 |<-- | 0 |  Register
         |  1001 |<-- | 0 |
         |  0000 |<-- | 0 |
         |  0110 |<-- | 1 |
         |_______|    |___|
___________________________________


Falls meine annahme richtig ist, frage ich mich warum bei LCD displays 
die erste zeile nicht wieder gelöscht wird, wenn ich zeile 2, 3, 4 
schreibe(da dort ja jetzt im zeilenregister 0 steht) ?


Also wo liegt mein fehler? ist meine vorstellung von ansteuerung eines 
LCDs ganz falsch?


danke im vorraus

MFG      MaXXX

von Karl H. (kbuchegg)


Lesenswert?

MaXXX wrote:

> Also wo liegt mein fehler? ist meine vorstellung von ansteuerung eines
> LCDs ganz falsch?

mag sein.
Kommt drauf an, auf welcher logischen Ebene du dich bewegen möchtest, 
wenn du sagst 'Ansteuerung eines LCD'

Auf dem LCD selbst ist ein kleiner Prozessor drauf. Dieser Prozessor hat 
Speicher mit, wobei jedes Bit in diesem Speicher mit einem Bildpunkt 
korrspondiert.

Wenn du als Anwendungsprogrammierer das LCD programmierst, dann teilst 
du im Grunde nur diesem LCD-Prozessor mit, welche Bits er in seinem 
Speicher setzen oder löschen soll. Du machst das nicht auf Bitebene, 
sondern du sagst ihm: 'A' ausgeben und der Prozessor setzt sich dann 
selbst die Bits im Speicher. Ist aber nur eine Spitzfindigkeit, im 
Grunde sagt dein Programm dem Prozessor welche Bits auf 0 sollen und 
welche auf 1.

Tja. und dann kommt die 2.te FUnktion dieses Prozessors auch noch zum 
Zug.
Der geht regelmässig seinen Speicher durch und schaltet entsprechende 
Transistoren so durch, dass die Kristalle in der Anzeige einmal das 
Licht blockieren und einmal nicht.

von MaXXX (Gast)


Lesenswert?

@karl heinz
genau der letzte absatz ist sehr interessant für mich.

also der µC geht den speicher durch und sendet es an die register 
(möglicherweise über SPI-Schnittstelle)?

hat jedes einzelne pixel einen transistor?

falls ja wie genau werden die transistoren angesprochen?

von Karl H. (kbuchegg)


Lesenswert?

MaXXX wrote:
>
> hat jedes einzelne pixel einen transistor?

Da wird man, so wie du es beschrieben hast, über 2 Selektionregister 
eine Matrixansteuerung machen.

Und ich glaub jetzt weiß ich auch, was dich verblüfft.
Du hast ein 'stehendes Bild', obwohl doch eigentlich die Zeilen und 
Spaltenregister immer durchschalten.

Nun. So stehend ist dieses Bild gar nicht. Wenn du im richtigen Winkel 
auf so ein LCD schaust UND möglichweise durch künstliche Beleuchtung 
(Glühbirne) auch noch einen Lichttakt hast, dann kann man manchmal 
sehen, dass die Pixel tatsächlich flimmern, also in kurzer schneller 
Folge ein und wieder ausgeschaltet werden.

Und genau da liegt des Rätsels Lösung. Auch wenn immer nur eine Zeile 
tatsächlich angesteuert wird, geschieht diese Umschaltung von einer 
Zeile zur nächsten so schnell, dass du sie nicht siehtst.

Hier findest du zb das Datenblatt zum 44780 Controller.
http://fab.cba.mit.edu/classes/MIT/863.06/11.13/44780.pdf
da findet sich ein bischen was drinn

von MaXXX (Gast)


Lesenswert?

hm... ich vermute fast, dass mein erstes bild eigentlich so aussehen 
müsste:

Bild 1. erste zeile
       Register
           __
          | 1101 |
          |______|
            ||||
            ||||
            vvvv
Display   ____
         |  1101 |<-- | 1 |  Register
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |_______|    |___|
______________________________________
Bild 2. zweite zeile

           __
          | 1001 |
          |______|
            ||||
            ||||
            vvvv
Display   _____      _
         |  0000 |<-- | 0 |  Register
         |  1001 |<-- | 1 |
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |_______|    |___|
________________________________________
Bild 3. dritte zeile
           __
          | 0000 |
          |______|
            ||||
            ||||
            vvvv
Display   _____      _
         |  0000 |<-- | 0 |  Register
         |  0000 |<-- | 0 |
         |  0000 |<-- | 1 |
         |  0000 |<-- | 0 |
         |_______|    |___|
_______________________________________
Bild 4. vierte zeile
           __
          | 0110 |
          |______|
            ||||
            ||||
            vvvv
Display   _____      _
         |  0000 |<-- | 0 |  Register
         |  0000 |<-- | 0 |
         |  0000 |<-- | 0 |
         |  0110 |<-- | 1 |
         |_______|    |___|


es wird also vielleicht immer nur eine Zeile angezeigt. Für uns ist aber 
ein bild sichtbar, da der aufbau sehr schnell ist und die bildpunkte 
eigentlich flakern , nur für uns halt nicht sichtbar oder?

von MaXXX (Gast)


Lesenswert?

hehe, danke, ich war 2 sekunden zu langsamm ^^

von MaXXX (Gast)


Lesenswert?

@heinz : danke

oh 2 minuten.

ok, bin nicht sofort drauf gekommen, da ich hier ein neues display 
(24x96) habe.

nach dem man in dieses display ein bild reingeladen hat, kann man den 
strom abschalten und das bild bleibt. ich wollte die normale LCD 
ansteuerung dafür nehmen, das geht aber wohl nicht, da man ja natürlich 
nur eine zeile sehen würde.

lol, was mache ich nun .... :)

von Karl H. (kbuchegg)


Lesenswert?

> nach dem man in dieses display ein bild reingeladen hat, kann man den
> strom abschalten und das bild bleibt.

??

> ich wollte die normale LCD
> ansteuerung dafür nehmen,

Heist das du musst eine Controller für das Teil bauen, oder wie soll ich 
das verstehen.

> lol, was mache ich nun .... :)

Na wenn das Display eh ganz von alleine immer den letzten Zustand 
anzeigt, dann passt das doch. Dann stell dir einfach nur vor, dass du 
mit dem Durchgehen der Zeilen, der jeweiligen Zeile einen neuen Wert 
gibst, der solange vom Display ganz eigenständig angezeigt wird, bis im 
nächsten Durchlauf diese Zeile neue Werte bekommt.


Hast du denn kein Datenblatt für dieses Display?

von MaXXX (Gast)


Lesenswert?

ne es gibt kein datenblatt zum display,

es ist halt in der entwicklung.

werde jetzt ein paar sachen ausprobieren, danke

von Raimund R. (corvuscorax)


Lesenswert?

Die Ansteuerung eines LC-Displays selbst (also das, was z.B. der 
HD44780-Controller an seinen Ausgängen zur 'Glasscheibe' mit den 
Flüssigkristallen macht) ist noch ein wenig komplexer als sich hier 
manche einreden möchten.
Die Flüssigkeit mit den Kristallen z.B. mag auf Dauer gesehen überhaupt 
keine Gleichspannung. D.h. man darf eben nicht z.B. die rückseitige 
Elektrode dauernd auf GND schalten und die vordere Elektrode(n) immer 
nach + schalten, um die Kristalle auszurichten (Stichwort 
"Elektrolyse"). Damit ist es bei dieser Art von LC-Diplays zwingend 
erforderlich alle Elektroden zu multiplexen um über einen längeren 
Zeitraum gesehen keinen (bleibenden) DC-Anteil zwischen zwei Elektroden 
zu bekommen, der das Display allmählich zerstören und unbrauchbar machen 
würde. Da man dies nicht 'zu Fuß' machen möchte - der Aufwand wäre mit 
steigender Segment-Anzahl einfach zu hoch - gibt's eben die 
schnuckeligen Controller, die einem diese Arbeit abnehmen (sollen).

von MaXXX (Gast)


Lesenswert?

naja aber jemand muss ja die controller erst entwickeln, die die arbeit 
abnehmen ^^

kenne mich mit LCDs nicht soo gtut aus (habe auch kein datenblat zu 
hand), würde aber dann halt ne wechselspannung reinsetzte, die Hz 
abhängig von anforderung des displays.

aber egal.

mein display sieht zwar wie LCD aus, hat aber andere eigenschaften, 
deswegen kann es ja gelade bild auch ohne strom halten.

Mfg

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.