Entwickler-Ecke

Sonstiges (Delphi) - Parallelportansteuerung


Stino - Sa 29.03.03 17:37
Titel: Parallelportansteuerung
Hallo,

ich hab mich jetzt zwar schon ausgiebig mit diesen Thema beschäftigt, aber nirgendwo ein präzises oder etwas genaueres Tutorial gefunden.

Hat jemand von euch Erfahrung damit?
Ich möchte die Datenleitungen nur in schreibrichtung auf low oder high schalten. wie kann ich das realisieren? Gegen Assemblerteile im Programm hätte ich auch nichts... ;-)

Vielen Dank, mich interessiert auch eure Meinung dazu!

Stino


Adrian - Sa 29.03.03 21:48
Titel: Wie's am Parallelport geht
Hallo Stino,

das geht recht einfach, sofern Du nicht NT,2000 oder XP verwendest.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
begin
  asm
    mov dx,378h  // LPT1 auf 378H
    mov al,0     // Ausgabewert 0...255
    out dx,al
  end;
end;

Servus,

Adrian


Stino - So 30.03.03 01:17

Hallo,

Das ganze wird unter Win98 bzw. ME laufen.
Was ich nur noch nicht ganz verstehe, ist der Ausgabewert.
Der Parallelport hat 25 Pins, wovon nur Pin 2-9 Datenleitungen (D0-D7) zum ansprechen sind. mit welchen Wert setzt man die verschiedenen Datenleitungen low oder high?

Vielen Dank,

Stino


Stino - So 30.03.03 01:17

Hallo,

Das ganze wird unter Win98 bzw. ME laufen.
Was ich nur noch nicht ganz verstehe, ist der Ausgabewert.
Der Parallelport hat 25 Pins, wovon nur Pin 2-9 Datenleitungen (D0-D7) zum ansprechen sind. mit welchen Wert setzt man die verschiedenen Datenleitungen low oder high?

Vielen Dank,

Stino


Adrian - So 30.03.03 11:14
Titel: Datenleitung setzen
Hallo Stino,

geht ganz einfach:
D0 setzt man mit 1,
D1 mit 2,
D2 mit 4,
usw
D7 mit 128.
Will man mehrere setzen, muß man die einzelnen Werte addieren.

Gruß,

Adrian


Stino - So 30.03.03 13:15
Titel: high oder low?
Danke,

ich werd' mich denn mal gleich ran setzten!

MFG Stino


Stino - So 30.03.03 19:50

Hab ich jetzt versucht. Funktioniert soweit einwandfrei. Mein Problem ist allerding noch, dass ich nicht mehrere Leitungen gleichzeitig setzten kann.
D.h., wenn ich eine Leitung ändern will, werden die anderen alle auf low gesetzt.
Für die Steuerung muss ich allerdings mehrere gleichzeitig schalten bzw. auf high setzten.

Lässt sich das irgendwie umsetzen?

Danke, Stino


Adrian - So 30.03.03 22:21
Titel: Mehrere Bits setzen
Hallo,

auch das ist recht einfach.
Beispiel: Gesetzt wurde D2 mit 4. Jetzt soll auch noch D0 gesetzt werden, deshalb mußt Du halt 5 ausgeben. Wichtig ist lediglich, daß Du noch weißt, was Du zuletzt ausgegeben hast. Aber das dürfte kein Problem sein, wenn Du zuerst mal alle Leitungen auf 0 gesetzt hast.

Gruß,

Adrian


Stino - Mo 31.03.03 17:43

Alles klar, so, wie ich die Leitungen schalten will, sende ich ein byte an den Port! 00011010 entspricht denn also D1=high, D3=high, D4=high, der Rest ist auf low.

Hab mein Proggi schon fertig, wollte 7-Segment LED-Anzeige ansteuern.
klappt einwandfrei!

Danke, Stino