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
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...
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
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.
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
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.
...
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.
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