LIQUID CRYSTAL DISPLAY FELIX ERLACHER SANG HUN LEE

Preview:

Citation preview

LIQUID CRYSTAL DISPLAYFELIX ERLACHER

SANG HUN LEE

INHALT

Aufbau

Physikalische Grundlagen

Serial Peripheral Interface

Beispiele zur Programmierung

AUFBAU TWISTED NEMATIC TFT

AUFBAU EINES BILDES

PHYSIKALISCHE GRUNDLAGEN

Polarisation des Lichts

Funktion der Flüssigkristalle

Spannung an den Flüssigkristallen

POLARISATION DES LICHTS

• Transversalwelle

• Nicht an Medium gebunden

• Spektrum

LINEARE POLARISATIONSFILTER

• Vertikaler Anteil kommt durch

• Horizontale Anteile werden absorbiert und reflektiert

Lineare Welle

Kann mittels Polarisationsfilter unterdrückt werden

Elliptische WelleKeine Vorzugsrichtung-> geht durch Polarisationsfilter

FLÜSSIGKRISTALLE

Klärpunkt - Übergang Mesophasen

• Nematische Phase in die isotrope Phase

DOPPELBRECHUNG

Senkrecht zueinander polarisiert

Ausbreitungsgeschwindigkeit außerordentlicher Strahl von Eintrittsrichtung auf Moleküle abhängig

Nach Addition entsteht elliptische Welle

FLÜSSIGKRISTALLELicht

TWISTED NEMATIC CRYSTAL

TWISTED NEMATIC CRYSTAL

DÜNNSCHICHTTRANSISTOREN TFT

Transistor wird direkt auf Glassubstrat aufgedampft

SERIAL PERIPHERAL INTERFACE

Synchroner serieller Datenbus

Master-Slave-Prinzip

Sehr lockerer Standard

EIGENSCHAFTEN

Eine oder mehrere low aktive Chip-Select-LeitungenSS – Slave Select

EIGENSCHAFTEN

Vollduplexfähig

Viele Einstellmöglichkeiten

• Taktflanke• Wortlänge• MSB oder LSB zuerst

Taktfrequenzen bis in MHz-Bereich

PROTOKOLLABLAUF

Jede Taktperiode ein Bit

Beliebig viele Slaves, ein Master

Kein festgelegtes Protokoll

Praxis 4 Modi durchgesetzt

PROTOKOLLABLAUFCPHA Clock Phase

CPOL Clock Polarität

PIN-BELEGUNG VOM DISPLAY UND VERBINDUNG MIT DEM MBED

Serial 2.2" TFT LCD Screen Module NOKIA 6100

BEISPIEL

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);}}

CODE NOKIALCD.H#define NOKIALCD_ROWS 16 #define NOKIALCD_COLS 16#define NOKIALCD_WIDTH 130 #define NOKIALCD_HEIGHT 130 #define NOKIALCD_FREQUENCY 5000000

Lcd.background(0x…..)void NokiaLCD::background(int c)

{_background = c;}

CODE NOKIALCD.Hlcd.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; 00330 data(d1);data(d2);data(d3);}_cs = 1;

Vielen Dank für eure Aufmerksamkeit!

Recommended