Ssssssstrikeeee !!!
Es läuft nun exakt wie gewünscht - Zwei Zeilen können per RS232 beschrieben werden, drei LED`s per Befehl ein- oder ausgeschaltet werden.
"z1=Der erste Test"
...schreibt den Text in die erste Zeile
"z2=Dies in die zweite Zeile"
...in die zweite
"l1=1"
...schaltet LED1 ein
Code:
$regfile = "m8def.dat" 'Controller definieren'
$crystal = 3686400 'Taktfrequenz definieren'
$baud = 19200 'Baudrate definieren
Enable Interrupts
'LCD-Anschlüsse definieren, Ansteuerungsmodus 4 Bit / Pin '
Config Lcdpin = Pin , E = Portb.5 , Rs = Portb.4 , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0
Config Lcd = 24 * 2
Initlcd
Cursor Off
Cls
Dim I As String * 27
Dim T As String * 24
Dim B As String * 3
Dim O As String * 1
Config Portd = Output
Main:
Do
Input , I 'max 27 zeichen einlesen
B = Left(i , 3) 'ersten drei zeichen des String in Variable B schreiben
T = Mid(i , 4 , 24) 'ab drittem zeichen alles in Variable T schreiben
O = Mid(i , 4 , 1) 'Abfrage ob viertes Zeichen eine 1 oder 0 für LED`s
If B = "z1=" Then Goto Zeile1 'wenn ersten drei zeichen z1=,z2= oder l1=..., dann springe
If B = "z2=" Then Goto Zeile2
If B = "l1=" Then Goto Led1
If B = "l2=" Then Goto Led2
If B = "l3=" Then Goto Led3
I = ""
Loop
Zeile1:
Upperline
Lcd " " 'beschreibe obere Zeile mit Leerzeichen zum Löschen
Locate 1 , 1 'springe wieder zurück zur ersten Position
Lcd T 'gebe alles ab drittem zeichen der Eingabe aus
Goto Main
Zeile2:
Lowerline
Lcd " "
Locate 2 , 1
Lcd T
Goto Main
Led1:
If O = "1" Then Portd.2 = 1 'bei l1=1 schaltet sich LED1 ein
If O = "0" Then Portd.2 = 0 'bei l1=0 schaltet sich LED1 aus
Goto Main
Led2:
If O = "1" Then Portd.3 = 1
If O = "0" Then Portd.3 = 0
Goto Main
Led3:
If O = "1" Then Portd.4 = 1
If O = "0" Then Portd.4 = 0
Goto Main
End
Danke nochmal für die Hilfe !!!
Lesezeichen