This is an old revision of the document!


Table of Contents

graphisches LCD

Necessary knowledge: [HW] lcd, [LIB] Graphic LCD, [LIB] Delay, [PRT] Alphanumeric LCD

Theorie

Das graphische LCD liquid crystal display ist ein Display welches das darstellen von Bildern und Text erlaubt. Der Aufbau ist dem alphanumerischen LCD ähnlich, mit dem Unterschied, dass am graphischen Display alle Pixel in einer großen Matrix sind. Wenn wir monochrome LCD haben, dann ist ein Pixel ein Kästchensegment, bei Farbdisplays besteht ein Pixel aus 3 Unterpixel. Jedes der Unterpixel lässt nur einfarbiges Licht durch (rot, grün, blau). Da die Unterpixel sehr nah aneinander sind, scheint es als wäre es ein Pixel.

The text formed of pixels of a graphic LCD.

Monochrome graphische Displays haben normalerweise eine passive Matrix, große Farbdisplays inkl. Computer-Bildschirme haben eine aktive Matrix. Jede Information über Farbe des Hintergrunds und Pixel des graphischen LCDs sind ähnlich zu dem des alphanumerischen LCDs. Ähnlich zum alphanumerischen Displays, hat das graphische Display auch ein separaten Controller, welcher sich um die eingehenden Informationen durch das Kommunikations-Interface kümmert und das elektrische Feld für die Segmente generiert. Da es für das alphanumerische LCD genug ist die Indizes und die Reihenfolge des Textes zu senden, kann das graphische LCD keine Buchstaben selber generieren - alle Bilder und Buchstaben müssen von Nutzer Pixel für Pixel erstellt werden.

Übung

Im HomeLab Set ist ein 84×48 Pixel monochromes graphisches LCD. Es ist das Gleiche wie im Mobiltelefon Nokia 3310. Ein Philips PCD8544 Controller ist am Display angebracht, mit welchem durch einen SPI-ähnlichen seriellen Interface kommuniziert werden kann. Die Hintergrundbeleuchtung des Displays wird separat kontrolliert. Mit dem Display zu kommunizieren ist nicht sehr schwer., aber auf Grund der vielen Funktionen wird das hier nicht beschrieben. Die HomeLab Library hat Funktionen dafür.

Die Funktionen für das graphische LCD sind ähnlich zu denen des alphanumerischen LCD. Zuerst muss der Bildschirm mit der Funktion lcd_gfx_initgestartet werden. Nach dem Start sollte man die Screen, bzw den Speicher des Controllers mit der lcd_gfx_clear Funktion leeren. Es gibt eine Buchstaben Abbildung in der Library mit dem vollen Lateinischen Alphabet, Nummern und den am meisten genutzten Zeichen. Die Höhe der Buchstaben ist 7 und die Weite 5 Pixel. Der Abstand zwischen den Buchstaben ist 6 Horizontal und 8 Vertikal, also hat das Display 6 Reihen mit 14 Spalten an Buchstaben zur Verfügung. Um Buchstaben oder Text darzustellen, muss zuerst die Position bestimmt werden mit der Funktion lcd_gfx_goto_char_xy. Um einen Buchstaben anzuzeigen wird die Funktion lcd_gfx_write_char genutzt und um Text anzuzegen die Funktion lcd_gfx_write_string.

Das folgende ist ein Beispiel des Zeitzählers. Das Programm zählt Sekunden (annährend), Minuten und Stunden.Um Zeit in Text zu konvertieren wird die sprintf Funktion genutzt.

//
// Example of using the graphic LCD of the HomeLab.
// Time of day is displayed on LCD since the beginning of the program.
//
#include <stdio.h>
#include <homelab/module/lcd_gfx.h>
#include <homelab/delay.h>
 
//
// Main program.
//
int main(void)
{
	int seconds = 0;
	char text[16];
 
	// Set-up of the LCD.
	lcd_gfx_init();
 
	// Cleaning the screen.
	lcd_gfx_clear();
 
	// Switching on the background light.
	lcd_gfx_backlight(true);	
 
	// Displaying the name of the program.
	lcd_gfx_goto_char_xy(1, 1);
	lcd_gfx_write_string("Aja loendur");
 
	// Endless loop.	
	while (true)
	{
		// Converting the seconds to the form of clock.
		// hh:mm:ss
		sprintf(text, "%02d:%02d:%02d",
			(seconds / 3600) % 24,
			(seconds / 60) % 60,
			 seconds % 60);
 
		// Displaying the clock text.
		lcd_gfx_goto_char_xy(3, 3);
		lcd_gfx_write_string(text);
 
		// Adding one second.
		seconds++;
 
		// Hardware delay for 1000 ms.
		hw_delay_ms(1000);
	}
}
de/examples/display/lcd_graphic.1290591626.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0