mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Dip204-4 Display


Autor: mätthu (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo
benutze das display dip204-4 (20Spalten / 4Zeilen)

habe ein problem mit den adressierung der zeilen. laut datenblatt wäre 
es: 0x00
0x20
0x40
0x60

jedoch funktioniert dies nicht ganz...

zweites problem ist, nach spalte 13 springt es automatisch auf zeile 2!

kann jemand helfen?

im anhang der code fürs display..

initialisierung bin ich auch nicht ganz sicher obs stimmt?!

kontroller ist ks0073 und nicht hd44780

gruss

Autor: ligthninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dir die Speicherzuweisung im Datenblatt des KS0073 ansiehst, 
wirst du merken das er nur 24 Zeichen speichert ( ohne Extenion ) -> 24 
/ 2 -> 12, dh. das die 2. Zeile ab Speicherstelle 13 beginnt, da für 2 
Zeilen nur ein KS0073 verwendet wird.

Autor: mätthu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber das display hat 4Zeilen 20spalten mit integriertem kontroller. kann 
ja nicht sein das nur 24 zeichen dargestellt werden können? wie weiter?

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mich nicht durch Deine unkommetierten Bitmuster beim Init gekramt,
den 4-Zeilen-Mode bei der Extended Funktionen hast Du aber gesetzt?

Gruß aus Berlin
Michael

Autor: mätthu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jein... was ist genau das RE Bit? das muss ja auf 1 gesetzt werden, um 
dies zu erledigen..

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

RE ist bei Function Set, wenn das mit 1 geschrieben wurde, wird auf den 
Extended Registersatz umgeschaltet.
Am Schluß eben wieder mit RE = 0 ausschalten.

Gruß aus Berlin
Michael

Autor: mätthu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem, wenn RE aber wieder auf 0 zurückgesetzt wird, wird N auch 
geändert --> d.h. die Anzahl Zeilen..??

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Problem, wenn RE aber wieder auf 0 zurückgesetzt wird, wird N auch
>geändert --> d.h. die Anzahl Zeilen..??

Nein, N wird nicht mehr beachtet wenn du auf
4 Zeilen umgeschaltet hast.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

RE schaltet den Registersatz um. Schau Dir die Liste mal an, es gibt 
fast überall Bedeutungen mit RE = 1 und RE = 0.

Also RE in seinem Register auf 1, zusammen mit den Werten für DL, N, BE, 
LP setzen.
Den Kram in den Extended Registern einstellen und am Schluß
das Register mit RE = 0 und passendem DL, N, DH, REV setzen.
Wenn NW auf 1 ist (4 Zeilen) wird laut Datenblatt N sowieso ignoriert.

Gruß aus Berlin
Michael

Autor: mätthu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
denke meine initialisierung ist jetzt richtig:

void lcd_init(void)
 {
  delay_ms(40);
  RS=RW=0;

  lcd_send(0b00101100,1);  //function set --> RE=1!
  delay_us(50);
  lcd_send(0b00001001,1);  //extended function set
  delay_us(50);
  lcd_send(0b00100000,1);  //function set --> RE=0!
  delay_us(50);
  lcd_send(0b00100000,1);  //function set in 4-Bit Mode
  delay_us(50);
  lcd_send(0b00001100,1);  //Display On-Off Control
  delay_us(50);
  lcd_send(0b00000001,1);  //Display Clear
  delay_ms(2);
  lcd_send(0b00000110,1);
 }


jedoch klappt es immer noch nicht mit den 4-Zeilen. Nach zeile 0 springt 
es automatisch auf zeile 2 und nicht auf zeile 1. Die Zeilen 1 und 3 
sind sozusagen unbrauchbar!



Hier noch die lcd_send() funktion:

void lcd_send(int8 value, int1 four)
 {
 delay_cycles(1);
 EN=1;
 D7=bit_test(value,7);
 D6=bit_test(value,6);
 D5=bit_test(value,5);
 D4=bit_test(value,4);
 delay_cycles(1);
 EN=0;            //Oberes Nibble senden
 delay_cycles(1);
 if(four)
  {
  EN=1;
  D7=bit_test(value,3);
  D6=bit_test(value,2);
  D5=bit_test(value,1);
  D4=bit_test(value,0);
  delay_cycles(1);
  EN=0;
  }
 delay_us(30);
 }

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.