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 5 von 9   « Erste     345 67     Letzte »    
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?
 
dahaack

 
Delphi 3 Professional
 
#41
  Alt 15. Okt 2003, 14:15
Hey pmc! Hab deine email erhalten. Wie meinst du das mit compilierte Units zurueck???? Was bringt dir das? Check ich nicht!!! Tut mir Leid dass ich jetzt erst antworte, aber mein Internet scheint mich nicht mehr so zu mögen. Ich werd mir das Programm erst heuteabend angucken koennen, aber vielen Dank schonmal!!!

pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc! pmc ist der Beste! pmc ist der Kluegste! pmc hats drauf! pmc ist cool! ein hoch auf pmc!
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

 
Delphi 2005 Personal
 
#42
  Alt 15. Okt 2003, 14:25
^^^^^^ Nur weil er Langeweile hatte
Mit kompilierte Unit meint er: .pas öffnen, F9 drücken, .dcu zurückschicken... Oder war da jetzt nen Fehler???

MfG Florian
Florian Meier
  Mit Zitat antworten Zitat
pmc

 
Delphi 6 Personal
 
#43
  Alt 15. Okt 2003, 15:43
Zitat von flomei:
^^^^^^ Nur weil er Langeweile hatte
Mit kompilierte Unit meint er: .pas öffnen, F9 drücken, .dcu zurückschicken... Oder war da jetzt nen Fehler???
Genau das meine ich....
Du weisst doch was compilieren ist oder?????

bis denne !!!

p.s. : balde ist es wieder zeit für !!!
  Mit Zitat antworten Zitat
dahaack

 
Delphi 3 Professional
 
#44
  Alt 16. Okt 2003, 14:42
Was compilieren heisst, weiss ich nur ich versteh den Sinn nicht. Hab das Programm immer noch nicht getestet (wegen Umzug), aber werd ich heuteabend machen und dir dann die comp. Units zurueckschicken.
Ich hab noch ne Frage zu dem 1. Programm;
da stand irgendwie sowas; wenn man son Bit "anchecked" dann lautet die Zeile in etwa so: (Fuer die Variablen faellt mir grad der Name nicht ein).

If "Variable" and "Variable2" = "Variable2" then...

Das beweisst dass ich Delphi-newbie hoch 10 bin. Einmal check ich nicht das if "Variable" weil man das doch "abfragen" muss z.B. if "Variable"=10 aber da steht ja nur if "Variable". So wie ich es mir vorstelle, handelt es sich um eine boolean-Variable und bedeutet etwa das gleiche wie if "Variable"=1 b.z.w. "true", oder?
2. Frage: ... and "Variable2"="Variable2" then...
Ist es nicht selbst verstaendlich, dass "Variable2"="Variable2" ist, sowie 2=2 ist oder 100=100?
Ich muss echt noch vieles, vieles lernen.

Schuldigung fuer diese Grammatik!!!

Ich danke allen die mir versuchen zu helfen!!!!!

P.S.: 3. Frage: Flo meinte .pas oeffnen, F9, .dcu zurueckschicken;
Ist eine .dcu Datei nichts anderes als eine compilierte .pas Datei? DANKE!
  Mit Zitat antworten Zitat
pmc

 
Delphi 6 Personal
 
#45
  Alt 16. Okt 2003, 14:50
es gibt variablem vom typ BOOLEAN.
diese variablen kennen nur die werte TRUE(Wahr) und FALSE(falsch)!!!
Wenn du eine BOOLEAN-Variable abfragst und danach fragen willst ob sie true ist dann brauchst du nur schreiben if Variable then....
und nicht if variable=True then ....
obwohl das auch ginge!!!!

Genauso kannst du wenn du nach false fragen willst
if not variable then.... anstat von if variable=False then...
benutzen!!!

Du kannst ja einen Pin auch immernur an oder aus machen !!!
  Mit Zitat antworten Zitat
dahaack

 
Delphi 3 Professional
 
#46
  Alt 16. Okt 2003, 15:34
Jo Danke! So in etwa hatte ich es mir schon gedacht. Aber was ist mit der 2. Frage? Da check ich echt den Sinn nicht drinne? Haette man das nicht auslassen koennen, weil eine Variable natuerlich immer so groß ist wie sie selbst (komischer Satz).
  Mit Zitat antworten Zitat
pmc

 
Delphi 6 Personal
 
#47
  Alt 16. Okt 2003, 20:19
Wo steht sowas????
Schreib mal den Quelltext ausschnitt den du meinst!!!!
  Mit Zitat antworten Zitat
Benutzerbild von TheGizmo
TheGizmo
 
#48
  Alt 19. Okt 2003, 22:42
Hallo

Thx erstmal für das Prog.

Soo mein frage. Kann ich mit einbinden des ParaPrcs die Bits nur einzelds setzten uns rücksetzen??

Ich will mir mit Delphi ein Programm schreiben mit dem ich über den Paralleport mehrer rten von Lauflichtern erzeugen kann. Ich hab es bis jetzt geschafft das die LED's mit aktiviern der CheckBox nacheinander angehn und wenn ich die CheckBock wieder deaktiviere wieder aus gehn. Aber ich habe noch nich rausgefunden wie ich einfach einen Wert auf den Datenport ausgeben kann. z.b. 128 zum setzen des höchstwerigten Bits. das Geht zwar acuh mit dem befehl b[7]... aber wenn ich in die selbe CheckBox noch reinsetze b[6].. leuchten beide und nicht wie von mir erhofft erst nach das 7 und dann das 6. Ich bräuchte also eine umkehrbefel für den

b[6]:=CheckBox7.Checked;
writedatalines(a);

oder eine womit ich einfach eien dezimal wert ausgeben kann.
Aber so wie es mir scheint kann ich nur die einzelen Bits setzen.
  Mit Zitat antworten Zitat
pmc

 
Delphi 6 Personal
 
#49
  Alt 20. Okt 2003, 12:45
du hast es erfasst aber du kannst dir eine procedure schreiben mit der du die dezimal zhal in eine binärzahl umrechnen lässt....und die auch die entsprechenden bits setzt!!!!
  Mit Zitat antworten Zitat
Der Gitarrist

 
Delphi 3 Professional
 
#50
  Alt 26. Okt 2003, 20:07
Tach auch. Neu hier und noch keinen Plan, wie das mit dem B[0] bis b[7] gemeint ist. Ist b[x] ein Array oder ne Funktion? Dem letzten Beitrag zufolge könnte es eine Funktion sein, jedoch müsste es dann so sein, dass keine eckigen, sondern runde Klammern den Variablenwert übergeben. Zumindest war das bis gerade meine Weltanschauung. Also spricht dies für einen Array.
Wie sieht das mit dem Verständnis des Programms aus? Wenn ich meinem Programm also sage, er solle "writedatalines(b)" ausführen und b ein Array ist, gibt dann er dann alle Stellen des Arrays aus? Ich glaube jetzt bin ich völlig auf dem Holzweg, aber bitte um eine Erläuterung des Programmes "PortAcces" zum Ansteuern des Parallelportes, wenn möglich.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 9   « Erste     345 67     Letzte »    


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 02:38 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