Armins AVR-Buch - LCD_an_AVR_anschliessen

Zuletzt geändert am 09.12.2023, 17:23:40

LCD_an_AVR_anschliessen


(armin77, 01.01.2013, 19:42:11)

Möchte man Texte, Meß- oder Variablenwerte ausgeben kann man das bequem
über ein LCD Display tun.
Diese sind sehr günstig zu bekommen und leicht anzuschließen:

Bild LCD1.jpg

Hier ist die Anschlußtabelle:

Bild LCD2.jpg

Will man den Kontrast des LCD Display einstellen schließt man
den VEE Anschlußpin nicht an GND an.
Er wird stattdessen an den Schleifer eines Poti angeschlossen, daß
mit +5V und GND verbunden ist.

Bild LCD3.jpg


Hier ein einfaches Beispielprogramm:

$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 32
$framesize = 32


Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2

Cls
Cursor Off

Do
cls
Lcd "Strippenstrolch"
Wait 1
Cls
Lcd "Picaxe"
Wait 1
Loop
End


Selbstdefinierte Zeichen für das LCD



Zusätzlich zu dem Zeichensatz des LCD lassen sich in Bascom noch zusätzlich 8 Zeichen selbst definieren.
Dafür gibt es den LCD Designer, wo jedes Pixel beliebig ausgewählt werden kann.

Bild Lcd200.jpg



Wenn das Zeichen fertig ist einfach mit Ok das Zeichen ins Bascom Programm übernehmen.



Bild Lcd201.jpg



Bascom fügt nun folgende Zeile ins Programm ein:

Deflcdchar [x],27,32,10,32,4,17,14,32' replace [x] with number (0-7)

Das [x] muß man jetzt durch eine Zahl von 0 bis 7 ersetzen.
Danach kann man das selbstdefinierte Zeichen mit dem Befehl benutzen:


Lcd Chr(Zeichennummer)

Beispiel:

Lcd Chr(0)


Nach der Definition der Zeichen muß unbedingt ein CLS folgen.


Hier ein Beispielprogramm das abwechselt ein fröhliches und ein trauriges Gesicht
in der Mitte der ersten Zeile des LCD anzeigt.

$regfile = "m8adef.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 30
$framesize = 32

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 20 * 4
Cls
Cursor Off

Deflcdchar 0 , 27 , 32 , 10 , 32 , 4 , 17 , 14 , 32 'fröhlich
Deflcdchar 1 , 27 , 32 , 10 , 32 , 4 , 32 , 14 , 17 'traurig
Cls 'Dieses CLS ist unbedingt erforderlich

Do

Locate 1 , 10
Lcd Chr(0)
Wait 1
Locate 1 , 10
Lcd Chr(1)
Wait 1
Loop
End