www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Display Programmierung


Autor: Thomas .G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe schon wieder ein kleines Problem mit der Programmierung 
meines Displays.
Wann muss ich welche Steuerleitungen (R/S, E) Auf High und wann auf low 
schalten und bleibt R/W immer auf GND?
mfg Thomas.G

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde Dir als erstes empfehlen, Dir das Datenblatt des 
entsprechenden Displays runterzuladen und das zu verinnerlichen.
Und dann sollte man bei den Displays mit T6963-Controller R/W nicht 
permanent auf GND legen, da man sonst den Status nicht abfragen kann.
Die Text- und Grafi-Area hast Du richtig initialisiert?
Oder ists ein HD44... Display? Oder ein SED15... ?
Welches Problem? Qualmt es schon?
Würdest Du etwas präziser fragen, könnte man auch präziser antworten...

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auch wenn ich mich damit vermutlich unbeliebt mache:
ein Display hat einen Kontroller. Gängige für Text-Matrix-Displays sind 
z.B.
HD44780, KS0073, für Grafikdisplays T6963C usw. usw.

Die Datenblätter dieser Kontroller sind im Internet zu finden, dort 
haben die Hersteller genau diese Angaben als Timing-Diagramm.
Versuch diese Datenblätter zu verstehen, nimm einen beliebigen 
Beispielcode für Deinen Display-Kontroller (AVR-Tutorial z.B.) und 
versuche es nachzuvollziehen.

E ist im Allgemeinen der Enable-Takt der Displays, mit einem H-Impuls 
werden die Daten ins Display übernommen. Alles andere muß also zu dieser 
Zeit schon richtig anliegen (Daten, R/W, RS).
RS entscheidet, on Daten oder Kommandos übertragen werden sollen, RW 
entscheidet, ob gelesen oder geschrieben werden soll.
RW kann unter Umständen fest auf GND (schreiben) liegen, wenn die 
Software passend dazu programmiert wird und der Display-Kontroller es so 
zulässt.

Gruß aus Berlin
Michael

Autor: Thomas .G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite noch mit dem etwas älteren QuickBasic und ich weis nicht mit 
welchen Befehlen ich Strobe und Auto linefeed ansteuern kann.Die anderen 
8 Daten leitungen D0-D7 kann ich einfach mit der Nummer des Datenports 
ansteuern z.B. out 888,x.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

klingt nach PC...

Naja, da wirst Du Dir auch noch die Registerbeschreibung eines 
Standard-PC-I/O-Chips zu Gemüte führen müssen, um zu sehen, unter 
welcher Register-Adresse und an welchem Bit die zugehörigen Leitungen 
des LPT landen.
Das Ding hat ja nicht nur das Register an Adresse 0x378 (888), der hat 
noch etwas mehr drin und dran.

Habe ich mich nie im Detail mit befasst, mal in PC-Programmierung 
fragen, da weiß das wohl eher jemand als hier bei den 
Microcontrollern...

Gruß aus Berlin
Michael

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max Pollin hat auf seiner Homepage zu fast jedem seiner LCDs einen 
Download. Dort ist fast immer ein PC-Programm mit Source dabei, welches 
das betreffende LCD über Printerport ansteuern kann. Diese sind zwar 
nicht in QB, aber ich denke mal, dass man auch in diesen Sourcen den 
Algorithmus erkennen kann.

Der Printerport im (alten) klassischen Modus hat drei fortlaufende 
Adressen, die erste ist der Datenport (888 bei LPT1), die beiden anderen 
die Steuerports.

...

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

lies dir dazu mal dieses Tut durch:
http://www.activevb.de/cgi-bin/upload/download.pl?id=2265

Hab' ich mal geschrieben, da siehst an welchen Adressen du welche Pins 
findest.

Autor: Thomas .G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK danke Ich probiers mal aus.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ansteuerung von PC-Peripherie: http://www.beyondlogic.org

Autor: Patrick Niederöst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also, Du kennst ja das Datenregister (D0...D8).
Datenregister Basisadresse von LPT1 &H378
Nun gibt es noch ein Statusregister(&H378 + 1),
ein Steuerregister(&H378 + 2)

Datenregister: (Basisadresse)
D0...D7 kennst Du ja bereits

Statusregistereingänge: (Basisadresse + 1)
D0  NC
D1  NC
D2  NC
D3  ERROR    (pin15)
D4  SLCT     (pin13)
D5  PE       (pin12)
D6  ACK      (pin10)
D7  BUSY     (pin11) Achtung invertierter Eingang!

Steuerregisterausgänge: (Basisadresse + 2)
D0  STROBE   (pin01)  Achtung invertierter Ausgang!
D1  AUTOFEED (pin14)  Achtung invertierter Ausgang!
D2  INIT     (pin16)
D3  SLCTIN   (pin17)  Achtung invertierter Ausgang!

Bsp: Ansteuern des STROBE-Pins
'***Initialisierung LPT***
BASADR = &H378
DATREG = BASADR
STATREG = BASADR + 1
STEUREG = BASADR + 2
'***nur STROBE-Pin HIGH, Resliche LOW***
OUT STEUREG, 10     'dez10, weil D3,D2,D0 invertiert-->(8+2+0= dez10)

Ich hoffe das hilft Dir, sonst weiterfragen.
Ich habe zwar schon lange nicht mehr mit QBASIC gearbeitet
aber das war coole Zeit, hatte auch mal ein LCD darüber gesteuert.
Grüsse aus dem nebligen Schweizerlande.



Autor: Patrick Niederöst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachfolgend noch einige Anmerkungen zu den Steuerleitungen
von Statusregister und Steuerregister:

Die einzelnen Signale weisen erhebliche Laufzeitunterschiede
auf, wenn Du also diese Signale ansprichst, solltest Du
danach eine Pause einfügen. Diese Laufzeitunterschiede
entstehen durch die Inverter-Gatter am PC-Port.

Tabelle zu Steuerregister-dezCodes

D3(inv.)  D2         D1(inv.)    D0(inv.)    dezCode
----------------------------------------------------
L         L          L           L           11
L         L          L           H           10
L         L          H           L           09
L         L          H           H           08
L         H          L           L           15
L         H          L           H           14
L         H          H           L           13
L         H          H           H           12
H         L          L           L           03
H         L          L           H           02
H         L          H           L           01
H         L          H           H           00
H         H          L           L           07
H         H          L           H           06
H         H          H           L           05
H         H          H           H           04

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.