Präsentation herunterladen
1
Liquid Crystal Display
Felix Erlacher Sang Hun Lee
2
Inhalt Aufbau Physikalische Grundlagen Serial Peripheral Interface
Beispiele zur Programmierung Twisted Nematic Thin Film Transistor TN TFT
3
Aufbau Twisted Nematic TFT
4
Aufbau eines Bildes
5
Physikalische Grundlagen
Polarisation des Lichts Funktion der Flüssigkristalle Spannung an den Flüssigkristallen
6
Polarisation des Lichts
Transversalwelle Nicht an Medium gebunden Spektrum Spektrum Wellen unterschiedlicher Längen und ohne spezielle Orientierung Die Wellenlänge = Farbe Amplitude = Intensität des Lichtes
7
Lineare Polarisationsfilter
Vertikaler Anteil kommt durch Horizontale Anteile werden absorbiert und reflektiert
8
Kann mittels Polarisationsfilter unterdrückt werde
Lineare Welle Kann mittels Polarisationsfilter unterdrückt werde Elliptische Welle Keine Vorzugsrichtung -> geht durch Polarisationsfilter Durchdring lineare Polarisationsfilter
9
Flüssigkristalle Klärpunkt - Übergang Mesophasen
Nematische Phase in die isotrope Phase Zwischenstufen - Mesophasen Isotrop - Unabhängigkeit von der Richtung der betrachtung -> Klar Zwei Schmelzpunkte. Übergang Festkörper in den flüssigen Kristall, Höher - Klärpunkt - zur isotropen Flüssigkeit
10
Doppelbrechung Senkrecht zueinander polarisiert
Ausbreitungsgeschwindigkeit außerordentlicher Strahl von Eintrittsrichtung auf Moleküle abhängig Nach Addition entsteht elliptische Welle Farbverfälschung
11
Flüssigkristalle Licht
A: ohne elektrisches Feld -> starke brechung-> elliptische Welle B: mit elektrischen Feld -> Keine Brechung Geringer Kontrast, unerwünschte Farbwirkung
12
Twisted Nematic Crystal
Schadt-Helfrich-Zelle Moleküle bleiben haften Licht führt nun ohne Spannung
13
Twisted Nematic Crystal
14
Dünnschichttransistoren TFT
Transistor wird direkt auf Glassubstrat aufgedampft Leiterbahnen Indiumzinnoxid
15
Serial Peripheral Interface
Synchroner serieller Datenbus Master-Slave-Prinzip Sehr lockerer Standard
16
Eigenschaften Eine oder mehrere lowaktive Chip-Select- Leitungen SS – Slave Select
17
Eigenschaften Vollduplexfähig Viele Einstellmöglichkeiten
Taktflanke Wortlänge MSB oder LSB zuerst Taktfrequenzen bis in MHz-Bereich Vollduplexfähig Er lässt die Übertragung der Informationen in beide Richtungen zu gleicher Zeit zu
18
Protokollablauf Jede Taktperiode ein Bit
Beliebig viele Slaves, ein Master Kein festgelegtes Protokoll Praxis 4 Modi durchgesetzt 8 Taktperioden für vollständige Übertragung Nicht festgelegt ob SS auf High gesetzt werden muss zwischen mehreren Bytes
19
Protokollablauf CPHA Clock Phase CPOL Clock Polarität
CPHA – bei wievielter Flanke nach SS Bit übertragen wird 0 erste 1 zweite Bei CPOL 0->CPHA 0 High Flanke | 0->CPHA 1 Low Flanke 1->CPHA 0 Low Flanke | 1->CPHA 1 High Flanke
20
Pin-Belegung vom Display und Verbindung mit dem Mbed
Serial 2.2" TFT LCD Screen Module NOKIA 6100 VIN P 5V Power Supply pin GND G Ground RST I Reset,Low level active NC / No Connection SDA I Serial data input SCL I Serial clock input CS I Chip Selection,Low level active VDD33 P 5V Power Supply pin
21
Beispiel
22
Beispiel #include "mbed.h" #include "NokiaLCD.h" NokiaLCD lcd(p5, p7, p8, p9, NokiaLCD::LCD6610); int main() { lcd.background(0x0000FF); lcd.cls(); lcd.fill(2, 51, 128, 10, 0x00FF00); lcd.fill(50, 1, 10, 128, 0xFF0000); lcd.locate(0,3); lcd.printf("Hello World!"); for (int i=0; i<130; i++) { lcd.pixel(i, 80 + sin((float)i / 5.0)*10, 0x000000); } }
23
Code NokiaLCD.h NokiaLCD lcd(p5, p7, p8, p9, NokiaLCD::LCD6610); NokiaLCD::NokiaLCD(PinName mosi, PinName sclk, PinName cs, PinName rst, LCDType type) : _spi(mosi, NC, sclk) , _rst(rst) , _cs(cs)
24
Code NokiaLCD.h #define NOKIALCD_ROWS 16 #define NOKIALCD_COLS 16 #define NOKIALCD_WIDTH #define NOKIALCD_HEIGHT #define NOKIALCD_FREQUENCY Lcd.background(0x…..) void NokiaLCD::background(int c) {_background = c;}
25
Code NokiaLCD.h lcd.fill(int x, int y, int width, int height, int colour) _cs = 0; _window(x, y, width, height); for (int i=0; i<width*height/2; i++) { int r4 = (colour >> (16 + 4)) & 0xF; int g4 = (colour >> (8 + 4)) & 0xF; int b4 = (colour >> (0 + 4)) & 0xF; int d1 = (r4 << 4) | g4; int d2 = (b4 << 4) | r4; int d3 = (g4 << 4) | b4; data(d1); data(d2); data(d3); } _cs = 1;
26
Code NokiaLCD.h lcd.locate(0,3); void NokiaLCD::locate(int column, int row) { _column = column; _row = row; } for (int i=0; i<130; i++) { lcd.pixel(i, 80 + sin((float)i / 5.0)*10, 0x000000);} void NokiaLCD::pixel(int x, int y, int colour) { _cs = 0; _window(x, y, 1, 1); _putp(colour); _cs = 1;}
27
Vielen Dank für eure Aufmerksamkeit!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.