Hallo zusammen !!!

Ich bin gerade dabei, AVR-Tutorial bei http://www.mikrocontroller.net/artic...-Tutorial:_LCD durchzuarbeiten. Jetzt ist es endlich soweit ein LCD anzuschließen. Nur ist da leider für einen Anfänger die erklärung recht schwer zu durchblicken. Ich habe im Netz zwar einiges gefunden, was mir aber bei meinem jetzigen Wissen über Assembler, Atmega und co. nicht recht hilfreich war. Ich benutze das Display Blueline Dotmatrix (EA W162B-N3LW) von Reichelt (http://such002.reichelt.de/?SID=13UB...65f;ACTION=446). Im Turtorial steht das
$3 und ein paar µs warten öfters im das Steuerregister geschrieben werden soll, aber wer, was wo ist das Steuerregister.

Ich habe es mit den angaben im Datenblatt (dem Display beigelegt, und bei Reichlt als download verfügbar) versucht. Hierbei soll folgendes am Port ausgegeben werden:

.........RS......RW.....DB7.....DB6........DB5...D B4
.........0........0........0.........0...........1 ......0...............4-Bit Datenlänge einschalten (noch im 8-Bit Modus)

RS = PD4
RW = PD5
DB7 = PD3
DB6 = PD2
DB5 = PD1
DB4 = PD0

Mit ldi r16, 0b00000010 soll bei der Ausgabe auf PD1 ein 1 ausgegeben werden. Der Rest sollte mit 0 belegt werden. Mit dem anschließenden out PORTD, r16 sollten die Ausgänge dementsprechend belegt werden.

Hier noch der gesammte Quelltext:
Code:
.include "m8def.inc"
.include "lcd-routines.c"
	
	ldi r16, 0xFF
	out DDRD,r16						;Im Datenrichtungsregister PORTD als Ausgang deklarieren

	ldi r16, 0b00000010
	nop									;Dem Diplay Zeit geben um sich selbst zu initialisieren
	nop
	nop
	nop
	nop
	nop
	out PORTD, r16

	nop									;Dem Diplay Zeit geben um sich selbst zu initialisieren
	nop
	nop
	nop
	nop
	nop

	ldi r16, 125					;Ab dieser Zeile ist das Programm nur Abgeschrieben

	mov r17,r16						;  Kopie von r16 in r17 eintragen

	swap r16						; vertauscht die beiden Nibbles von r16 (Die Bit´s 0-3 und 4-8 werden vertauscht)

	andi r16, 0b00001111			; Nur die vier unteren (mit 1 markierten)
									; Bits werden übernommen, alle anderen werden null

	sbr r16, 0b00010000				; Bit 4 setzen, alle anderen Bits bleiben gleich
	
	out PORTD, r16
	
	sbi PORTD, 5					;Den 5.PORTD (PD5) auf High setzen, um den Display zu Signalisieren, das es die Daten von PD0 bis PD4 übernehmen kann
	nop								; 3 Taktzyklen warten, um dem Display, für die Datenübernahme, genügend Zeit zu geben
	nop
	nop
	cbi PORTD, 5					;PD5 wieder auf LOW setzen

	andi r17, 0b00001111

	sbr r17, 1<<4					; nur eine andere Schreibweise von oben

	out PORTD, r17

	sbi PORTD, 5
	nop
	nop
	nop
	cbi PORTD, 5
Ich hoffe ihr könnt mir ein paar Tip´s zu initialisierung geben, und bitte nicht vergessen, ich stehe noch ganz am Anfang mit dem Assembler-Programmieren.

Danke für eure bemühungen !!