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 woist 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:
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.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
Danke für eure bemühungen !!![]()







ist das Steuerregister.
Zitieren

Lesezeichen