Forum: Mikrocontroller und Digitale Elektronik Display 32 x 122


von Flintstone (Gast)


Lesenswert?

Liebe Bastelkollegen!

Endlich habe ich es geschafft, das Display auch zur Anzeige von Daten
zu bringen. Nachdem ich anfänglich dachte, dass das Display defekt ist,
habe ich es jetzt in Betrieb nehmen können.
Es handelt sich um das Display EA DIP122-5NLW.
Leider bin ich an einem Punkt noch nicht ans Ziel gekommen. Es ist das
Lesen.
Alle Versuche Daten von dem Display zu bekommen, sind gescheitert.
Nun tut sich auch ein Widerspruch auf. Bei allen Lesebefehlen ist /RD =
"0". Wie ich aus dem Datenblatt zum SED 1520 entnehmen konnte,
entspricht E dem Anschluß /RD des SED 1520. Nun habe ich aber zwei
Anschlüsse E - E1 und E2, die lt. Daten H-aktiv sind. Kommt es jetzt
nicht zu einem Konflikt auf dem Datenbus, wenn ich versuche Daten zu
lesen?

Nun noch kurz eine Beschreibung meines Versuchsaufbaus:
- Flash-Board aus der Zeitschrift elektor mit AT 89S8252
- Port 0 wurden für die Steuerleitungen E1, E2, R/W, A0 und RES
verwendet
- Port 2 ist für die Datenleitungen zuständig
- alle Leitungen wurden mit je 15kOhm nach VCC gezogen

Hier noch ein kurzer Auszug aus meinem Programm:
Daten    EQU  P2
E2    EQU  P0.0
RES    EQU  P0.1
A0    EQU  P0.2
E1    EQU  P0.3
R_W    EQU  P0.4
    .
    .
    .
Displ_Steuer1:  CLR  A0
    CLR  R_W
    SETB  E1
    MOV  Daten,A
    CLR  E1
    RET
Displ_Daten1:  SETB  A0
    CLR  R_W
    SETB  E1
    MOV  Daten,A
    CLR  E1
    SETB  R_W
    RET
Displ_Read:  ; geht noch nicht
    SETB  R_W
    SETB  A0
    SETB  E2
    CLR  E2
    MOV  A,Daten
    RET

Könnt Ihr mir sagen, wie ich Daten vom Display lesen kann? Dies
benötige ich, um geometrische Figuren auf dem Display nacheinander zu
erstellen.

Tschüs und besten Dank im Voraus

von Uwe Nagel (Gast)


Lesenswert?

Der Controller sieht nach einer Abart des KS0108 aus. Da muss man beim
lesen ein Dummy-read machen...
Such mal in der Codesammlung, für den KS0108 gibt es mehrere Treiber.

Uwe

von Flintstone (Gast)


Lesenswert?

Inzwischen habe ich die Lösung gefunden. Damit Alle etwas davon haben,
hier der Code.
Displ_Read:
    MOV   Daten,A
    SETB  R_W
    SETB  A0
    SETB  E2
    MOV  A,Daten
    CLR  E2
    RET

Achtung! Einmal muß man ein Dummy-Read ausführen, das als Ergebnis 00h
bringt. Danach kann man sequenziell lesen.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.