Hallo, also

"Lcddisplay Alias Portd "

verstehe ich so, das der gesamte Port D benutz wird. ich habe aber keinen ganzen mehr frei. nur noch:

PD5 , PD6, PD7, PB0

Ich benutze einen ATMega8. Hier das Programm zum testen. Die Variable(Test_zahl) wird einfach nur hochgezählt um zu sehen, ob sich etwas im Display tut. Den Teil, den ich in di die Do...Loop schleife gesetzt habe nehme ich noch raus in eine Sub Routine.

Code:
$regfile = "m8def.dat"                                      ' IC-Typ
$crystal = 3686400

'$crystal = 16000000
'$baud = 57600


'Lcddisplay Alias PortC
'Config Lcddisplay = Output
Config Lcddisplay = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0



Oc1 Alias Portd.3
Config Oc1 = Output
Oc2 Alias Portd.4
Config Oc2 = Output
Ex Alias Portc.2
Config Ex = Output

Dim Parameter As Byte
Dim Xparameter As Byte
Dim Command As Byte
Dim Zeile As Byte
Dim I As Byte
Dim Char As Byte
Dim Xchar As String * 1
Dim Text As String * 16
Dim Xxchar As String * 1
Dim Xxxchar As Byte

Dim Test_zahl As Byte


Reset Oc1
Reset Oc2
Reset Ex

Declare Sub Init()
Declare Sub Command(command As Byte)
Declare Sub Disp(xchar As Byte)
Declare Sub Zeile(xzeile As Byte)


'------------
'Hautprogramm
'------------

Call Init

Do
Zeile = $00
Call Zeile(zeile)
Text = "Test: " + Str(test_zahl)                            '"0123456789ABCDEF"
Gosub Ausgeben

Zeile = $40
Call Zeile(zeile)
Text = "GHIJKLMNOPQRSTUV"
Gosub Ausgeben

Zeile = $80
Call Zeile(zeile)
Text = "WXYZ!,$%&/()=?`*"
Gosub Ausgeben

Zeile = $c0
Call Zeile(zeile)
Text = "@+#'<>|^{[]};_-."
Gosub Ausgeben



  Wait 1
  Incr Test_zahl
Loop

'------------------
'Ende Hauptprogramm
'------------------


'----------
 Sub Init()
'----------
   Parameter = $d8
    Call Command(parameter)
   Parameter = $50
   Call Command(parameter)
   Parameter = $33
   Call Command(parameter)
   Parameter = $01
   Call Command(parameter)
   Waitms 2
 End Sub

'-----------------------------
 Sub Command(command As Byte)
'-----------------------------
   Xparameter = Command
   Shift Xparameter , Right , 4
   Lcddisplay = Xparameter
   Set Ex
   Waitus 1
   Reset Ex
   Lcddisplay = Command And $0f
   Set Ex
   Waitus 1
   Reset Ex
   Waitus 20
 End Sub

'--------------------------
 Sub Zeile(xzeile As Byte)
'--------------------------
   Parameter = Xzeile
   Set Oc1
   Set Oc2
   Call Command(parameter)
   Reset Oc1
   Reset Oc2
   Waitus 100
 End Sub

'------------------------
 Sub Disp(xchar As Byte)
'------------------------
   Set Oc2
   Parameter = Xchar
   Call Command(parameter)
   Reset Oc2
 End Sub

'---------
 Ausgeben:
'---------
   For I = 1 To 16
     Xxchar = Mid(text , I , 1)
     Xxxchar = Val(xxchar)
     Char = Asc(xxchar)
     If Char = 0 Then
     Char = $20
     End If
     Call Disp(char)
   Next I
 Return