habe das ganze eben noch auf 8bit umgesteckt und auf PD gelegt und RS und E auf PB1-2. Ein Programm geschrieben für eine Routine, die ich mit dem Datenblatt bekommen habe. Leider hat nichts funktioniert.
Kann man die Leitungen direkt mit den Port-Pins verbinden oder müssen da noch Widerstände oder so zwischen?
Habe schon soviele Routinen ausprobiert, dass ich jetzt nur noch mit einem Schaltungsfehler rechne.

Code:
.include "m8def.inc"

.def temp1 = r16
.def temp2 = r17
.def temp3 = r18 

           ldi temp1, LOW(RAMEND)      ; LOW-Byte der obersten RAM-Adresse
           out SPL, temp1
           ldi temp1, HIGH(RAMEND)     ; HIGH-Byte der obersten RAM-Adresse
           out SPH, temp1

           ldi temp1, 0xFF    ;Port D = Ausgang
           out DDRD, temp1 
           ldi temp1, 0x02    ;Port B 1 als Ausgang und 2 als Eingang
           out DDRB, temp1 

           rcall lcd_init     ;Display initialisieren 

loop:
	rjmp loop

lcd_init:
	rcall wait1sek	;1Sek nach Einschalten warten
	ldi temp1,0x00	;RS=0
	out portb,temp1
	ldi temp1,0x30	;30h senden
	out portd,temp1
	rcall wait4500us ;4,5ms warten
	ldi temp1,0x00	;RS=0
	out portb,temp1
	ldi temp1,0x30	;30h senden
	out portd,temp1
	rcall wait120us
	ldi temp1,0x00	;RS=0
	out portb,temp1
	ldi temp1,0x30	;30h senden
	out portd,temp1
	rcall busyflagcheck ;busyflag kontrollieren E=0 PB2=0
	ldi temp1,0x00	;RS=0
	out portb,temp1
	ldi temp1,0x3c	;4 Displayzeilen, 8bit Ansteuerung
	out portd,temp1
	rcall busyflagcheck
	ldi temp1,0x00	;RS=0
	out portb,temp1
	ldi temp1,0x08	;Display aus zum testen
	out portd,temp1
ret


busyflagcheck:
in temp1,portb
sbrs temp1,2
rjmp busyflagcheck
ret

wait1sek: 
; ============================= 
;    delay loop generator 
;     4000000 cycles:
; ----------------------------- 
; delaying 3999996 cycles:
          ldi  R17, $24
WGLOOP0:  ldi  R18, $BC
WGLOOP1:  ldi  R19, $C4
WGLOOP2:  dec  R19
          brne WGLOOP2
          dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; ----------------------------- 
; delaying 3 cycles:
          ldi  R17, $01
WGLOOP3:  dec  R17
          brne WGLOOP3
; ----------------------------- 
; delaying 1 cycle:
          nop
; ============================= 
ret

wait4500us:
; ============================= 
;    delay loop generator 
;     18000 cycles:
; ----------------------------- 
; delaying 17985 cycles:
          ldi  R17, $37
WGLOOP4:  ldi  R18, $6C
WGLOOP5:  dec  R18
          brne WGLOOP1
          dec  R17
          brne WGLOOP0
; ----------------------------- 
; delaying 15 cycles:
          ldi  R17, $05
WGLOOP6:  dec  R17
          brne WGLOOP2
; =============================
ret

wait120us:
; ============================= 
;    delay loop generator 
;     480 cycles:
; ----------------------------- 
; delaying 480 cycles:
          ldi  R17, $A0
WGLOOP7:  dec  R17
          brne WGLOOP0
; ============================= 
ret