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:
Hier ist die Anschlußtabelle:
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.
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
$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.
Wenn das Zeichen fertig ist einfach mit Ok das Zeichen ins Bascom Programm übernehmen.
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)
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
$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