Foooob
28.06.2006, 23:23
Hallo
Mein LCD (KS0073 Kontroller) hat ein Problem beim Darstellen von Texten in den Zeilen 2 und 4 (siehe Bild)
Ich hoffe ihr könnt mir helfen. Ihr könnt ja Bild und Code miteinander vergleichen. Ich weis nicht wie ich diese Klammerflut wegbekommen soll.
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Declare Sub Lcdwrite(byval Zeichen As Byte)
'Pins des LCD-Modules
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5
Initlcd
Config Lcd = 20 * 4a
Call Lcdwrite(&B00101100)
Waitms 5
Call Lcdwrite(&B00001001)
Waitms 5
Call Lcdwrite(&B00101000)
Waitms 5
Call Lcdwrite(&B00000110)
Waitms 5
Call Lcdwrite(&B00001100)
Waitms 5
Do
Locate 1 , 1 : Lcd "Das ist ein LCD-Test"
Locate 2 , 1 : Lcd "...Und noch ein Test"
Locate 3 , 1 : Lcd "Gestern ist heute..."
Locate 4 , 1 : Lcd "noch morgen - Test12"
Loop
'Schreibt die Initialisierungs - Bits zum LCD
Sub Lcdwrite(byval Zeichen As Byte)
' Höherwertiges Nibble setzen
If Zeichen.4 = 1 Then Porta.0 = 1 Else Porta.0 = 0
If Zeichen.5 = 1 Then Porta.1 = 1 Else Porta.1 = 0
If Zeichen.6 = 1 Then Porta.2 = 1 Else Porta.2 = 0
If Zeichen.7 = 1 Then Porta.3 = 1 Else Porta.3 = 0
' Höherwertiges Nibble übertragen
Porta.4 = 1
Waitms 1
Porta.4 = 0
Waitms 1
' Niederwertiges Nibble setzen
If Zeichen.0 = 1 Then Porta.0 = 1 Else Porta.0 = 0
If Zeichen.1 = 1 Then Porta.1 = 1 Else Porta.1 = 0
If Zeichen.2 = 1 Then Porta.2 = 1 Else Porta.2 = 0
If Zeichen.3 = 1 Then Porta.3 = 1 Else Porta.3 = 0
' Niederwertiges Nibble übertragen
Porta.4 = 1
Waitms 1
Porta.4 = 0
Waitms 1
Waitus 250
End Sub
End
Mein LCD (KS0073 Kontroller) hat ein Problem beim Darstellen von Texten in den Zeilen 2 und 4 (siehe Bild)
Ich hoffe ihr könnt mir helfen. Ihr könnt ja Bild und Code miteinander vergleichen. Ich weis nicht wie ich diese Klammerflut wegbekommen soll.
$regfile = "m32def.dat" 'ATmega32
$crystal = 11059200 'Quarz: 11059200 Hz
Declare Sub Lcdwrite(byval Zeichen As Byte)
'Pins des LCD-Modules
Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5
Initlcd
Config Lcd = 20 * 4a
Call Lcdwrite(&B00101100)
Waitms 5
Call Lcdwrite(&B00001001)
Waitms 5
Call Lcdwrite(&B00101000)
Waitms 5
Call Lcdwrite(&B00000110)
Waitms 5
Call Lcdwrite(&B00001100)
Waitms 5
Do
Locate 1 , 1 : Lcd "Das ist ein LCD-Test"
Locate 2 , 1 : Lcd "...Und noch ein Test"
Locate 3 , 1 : Lcd "Gestern ist heute..."
Locate 4 , 1 : Lcd "noch morgen - Test12"
Loop
'Schreibt die Initialisierungs - Bits zum LCD
Sub Lcdwrite(byval Zeichen As Byte)
' Höherwertiges Nibble setzen
If Zeichen.4 = 1 Then Porta.0 = 1 Else Porta.0 = 0
If Zeichen.5 = 1 Then Porta.1 = 1 Else Porta.1 = 0
If Zeichen.6 = 1 Then Porta.2 = 1 Else Porta.2 = 0
If Zeichen.7 = 1 Then Porta.3 = 1 Else Porta.3 = 0
' Höherwertiges Nibble übertragen
Porta.4 = 1
Waitms 1
Porta.4 = 0
Waitms 1
' Niederwertiges Nibble setzen
If Zeichen.0 = 1 Then Porta.0 = 1 Else Porta.0 = 0
If Zeichen.1 = 1 Then Porta.1 = 1 Else Porta.1 = 0
If Zeichen.2 = 1 Then Porta.2 = 1 Else Porta.2 = 0
If Zeichen.3 = 1 Then Porta.3 = 1 Else Porta.3 = 0
' Niederwertiges Nibble übertragen
Porta.4 = 1
Waitms 1
Porta.4 = 0
Waitms 1
Waitus 250
End Sub
End