Hi,
bei mir läuft das so hier ohne Probleme:
Code:$regfile = "m8def.dat" 'Mega8 $crystal = 8000000 Declare Sub Lcdinit Declare Sub Lcdwrite(byval Zeichen As Byte) Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3 Config Lcd = 20 * 4a Waitms 100 'damit das LCD etwas Zeit bekommt um nach dem Einschalten empfangsbereit zu sein... Call Lcdinit Cls do ..... loop Sub Lcdinit Call Lcdwrite(&B00101100) Call Lcdwrite(&B00001001) Call Lcdwrite(&B00101000) Call Lcdwrite(&B00000110) Call Lcdwrite(&B00001100) End Sub Sub Lcdwrite(byval Zeichen As Byte) ' Höherwertiges Nibble setzen If Zeichen.4 = 1 Then Portd.4 = 1 Else Portd.4 = 0 If Zeichen.5 = 1 Then Portd.5 = 1 Else Portd.5 = 0 If Zeichen.6 = 1 Then Portd.6 = 1 Else Portd.6 = 0 If Zeichen.7 = 1 Then Portd.7 = 1 Else Portd.7 = 0 ' Höherwertiges Nibble übertragen Portd.2 = 1 Waitms 1 Portd.2 = 0 Waitms 1 ' Niederwertiges Nibble setzen If Zeichen.0 = 1 Then Portd.4 = 1 Else Portd.4 = 0 If Zeichen.1 = 1 Then Portd.5 = 1 Else Portd.5 = 0 If Zeichen.2 = 1 Then Portd.6 = 1 Else Portd.6 = 0 If Zeichen.3 = 1 Then Portd.7 = 1 Else Portd.7 = 0 ' Niederwertiges Nibble übertragen Portd.2 = 1 Waitms 1 Portd.2 = 0 Waitms 1 End Sub







Zitieren

Lesezeichen