AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Steuerung jedes Pines des Parallelports mit Win95 bis WinXP
Tutorial durchsuchen
Ansicht
Themen-Optionen

Steuerung jedes Pines des Parallelports mit Win95 bis WinXP

Ein Tutorial von pmc · begonnen am 11. Sep 2003 · letzter Beitrag vom 6. Mär 2009
Antwort Antwort
Seite 9 von 9   « Erste     789   
pmc
Registriert seit: 9. Sep 2003
1. Aufbau der Schnittstelle :

Der Parallelport ist in drei Register engeteilt,
Datenregister(output), Kontrollregister(Input/Output) und
StatusRegister(Input).

Datenregister :
Das Datenregister stellt 8 leitungen zur verfügung,
worüber die zu druckenden Daten an den Drucker geleitet werden.
  • D0 bis D7 -> Pin 2 bis Pin 9 am PC-Stecker.
Kontrollregister :
Das Kontrollregister stellt 4 leitungen zur verfügung,
worüber der Drucker gesteuert wird.
  • Strobe -> Pin 1 am PC-Stecker.
    AutoLF -> Pin 14 am PC-Stecker.
    Init -> Pin 16 am PC-Stecker.
    Select -> Pin 17 am PC-Stecker.
Statusregister :
Das Statusregister stellt 5 Leitungen zur Verfügung,
worüber der Drucker seinen Status an den Pc übermittelt.
  1. Error -> Pin 15 am PC-Stecker.
    Online -> Pin 13 am PC-Stecker.
    Paper -> Pin 12 am PC-Stecker.
    Busy -> Pin 11 am PC-Stecker.
    ACK -> Pin 10 am PC-Stecker.

2. Verwendung :

Wichtig : Die Unit habe ich nur unter Win2K getestet, aber unter winXP
müsste es auch funktionieren!!!


Die Unit ParaPrcs stellt folgende Funktionen und Prozeduren zur Verfügung :

Function ReadCtrlLines : TCLines; ---> Liest die Leitungen des Kontroll-Registers der Parallelen Schnittstelle (Select - Init - AutoLF - Strobe)
Function ReadStateLines : TSLines; ---> Liest die Leitungen des Status-Registers der Parallelen Schnittstelle (Busy - ACK - Paper - Online - Error)

Procedure WriteDataLines(bits : TDBits); ---> Schreibt die Leitungen des Daten-Registers der Parallelen Schnittstelle (D0 bis D7)
Procedure WriteCtrlLines(cl : TCLines); ---> Schreibt die Leitungen des Kontroll-Registers der Parallelen Schnittstelle (Select - Init - AutoLF - Strobe)

Function PortReset : Boolean; ---> Setzt alle Leitungen auf LOW - Gibt True zurück wenn der Treiber geladen ist.


Hinweis zu den verwendeten Variablen-Typen :
  1. TSLines = record
    Busy : boolean;
    Ack : boolean;
    Paper : boolean;
    Online : boolean;
    Error : boolean;
    end;

    TCLines = record
    Select : boolean;
    Init : boolean;
    AutoLF : boolean;
    Strobe : boolean;
    end;

    TDBits = array[0..7] of boolean;

Was man nun damit ansteuern will ist einem selbst überlassen.
Bei Fragen, Eamil an mich.

MFG PMC

[edit=sakura] Archiv als ZIP beigefügt. Mfg, sakura[/edit]
Angehängte Dateien
Dateityp: exe port_access.exe (235,1 KB, 897x aufgerufen)
Dateityp: zip archiv.zip (214,2 KB, 738x aufgerufen)
Woher soll ich wissen was ich denke,
wenn ich noch nicht gehört habe was ich sage?
 
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#81
  Alt 5. Mär 2009, 19:44
also, ich hab jetzt einfach mal, naiv wie ich bin, ne LED in den Port (+) 2 und (-) in 18 gesteckt.

So, ihr werdet mich auslachen, aber es funktioniert, sie leuchtet, aber jetzt hatte ich vor, glücklich wie ein Honigkuchenpferd, die mit dem Test Programm aus Post #1 an/aus zu schalten... das programm läuft einwandfrei, aber die LED leuchtet durchgängig, es macht keinen unterschied wenn ich das Häckchen rein/raus mache.

Woran liegt das?

MfG

Spiderpig
  Mit Zitat antworten Zitat
I love Delphi
 
#82
  Alt 5. Mär 2009, 20:03
schau dir mal meine letzte ANtwort an. Mit der Methode funktioniert es garantiert. Und dazu noch total simpel.

Grüße,
I love Delphi!
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#83
  Alt 5. Mär 2009, 21:45
aber das ist immer nur entweder alle bits aus,oder alle an.

Nach meinem LED experiment wollte ich eignelich alle Bits Nutzen

Das viel größere Problem, ebenso wie das Programm aus post #1 funktioniert dies nicht, bzw. meine LED leuchtet munter egal wasich drücke bzw. einstelle. Das finde ich komisch...
Kann mir jemand helfen?

MfG Spiderpig
  Mit Zitat antworten Zitat
Blup

 
Delphi 12 Athens
 
#84
  Alt 6. Mär 2009, 10:01
Zitat von Spiderpig_GER_15:
also, ich hab jetzt einfach mal, naiv wie ich bin, ne LED in den Port (+) 2 und (-) in 18 gesteckt.
Die Pins sind zur Ausgabe von Daten gedacht, nicht um mit LED kurzgeschlossen zu werden.
Jede LED braucht einen Vorwiederstand um den Strom zu begrenzen.
Andernfalls wird eventuell der Port oder das ganze Board geschrottet.
  Mit Zitat antworten Zitat
I love Delphi
 
#85
  Alt 6. Mär 2009, 10:40
Du kannst natürlich jeden Pin ansteuern, indem du einfach die entsprechenden Werte einsetzt.
1 zum Beispiel würde den 1 Pin auf on stellen. 2 den zweiten 4 den dritten und so weiter (mal nach "Dualsystem" googlen)

Grüße,
I love Delphi!
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#86
  Alt 6. Mär 2009, 15:58
Aber wie soll ich denn bitte meine ports überprüfen, ob da wirklich high ist.

Kapput gegangen ist nichts

Also ist das normal, dass man die LED so nicht an/aus schalten kann?

Ich könnte die Spannung auch mit einem Multimeter messen... wenn das besser ist
Aber ich fand LED's toll

Was muss ich den machen um die Ports high/low zu kriegen?

MfG Spiderpig

EDIT

Hat sich erledigt, kann die LED problemlos steuern
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 9 von 9   « Erste     789   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz