Tech-Ecke / DOS Inhalt / INP OUT |
|
Hinweis: Die hier gezeigten Programmierbeispiele beziehen sich auf den LPT1 und LPT2 mit der Adresse $378h bzw. $278h. Die Adresse muss jedoch in dezimaler Schreibweise angegeben werden, also 888 beim LPT1 und 632 beim LPT2.
QBasic bietet
wohl die einfachste Möglichkeit
den LPT-Port
anzusprechen, wobei der Rechner aber auch in einer echten
DOS-Umgebung laufen muss. In der Eingabeaufforderung unter
Windows ist es leider nicht möglich den LPT-Port anzusprechen.
Der LPT-Port ist in drei Register unterteilt, das Datenregister
(8Bit), das Steuerregister(4Bit) und das Statusregister (5Bit).
Für den Bastler ist eigentlich nur das Datenregister, welches 8
Ausgänge bereit hält und das Statusregister welches mit 5
digitalen Eingängen
Weitere Infos zum
Setzt man mit OUT einen Bit im Datenregister des LPT-Ports, so kann man am entsprechenden Pin eine Spannung von +5V messen. Folgende Tabelle zeigt welcher Bit welchen Pin unter Spannung setzt.
Syntax um am LPT1 den Ausgang 1 (Pin 2) zu setzen.
Um mehrere Ausgänge gleichzeitig zu schalten, nimmt man die Quersumme der Werte in Zeile 2. Möchte man also den Ausgang 2 und 5 Schalten so ist der Wert 18 (2 + 16)
Die so gesetzten Werte bleiben immer solange erhalten bis sie durch einen anderen überschrieben werden. Um alle Ausgänge wieder auf "Null" zu setzen (alles aus) setzt man "0"
Der LPT-Port ist eine sehr empfindliche Schnittstelle, er kann nur wenige mA verkraften. Eine stärkere LED reicht bereits aus um ihn in die "Ewigen Jagdgründe" zu schicken. Keines falls kann man hier Relais oder sonstige Verbraucher direkt anschließen. Dazu bedarf es einer Signalverstärkung die mittels Transistoren oder dem IC ULN2803 erledigt werden kann. Eine passende Schaltung hierfür werde ich demnächst auf der Tech-Ecke bereitstellen.
Um nun Informationen von Außen in den PC und somit in sein eigenes Programm zu schleusen benutzt man die Bits des Statusregisters, welches die Pins 10-13 und 15 umfasst. Das Statusregister liegt eine Adresse oberhalb des Datenregisters, also 889 statt 888 beim LPT1 und 633 statt 632 beim LPT2.
Beanschlagt man nun einen oder mehrere Eingangspins des Statusregisters (10-13 und 15) mit Masse (GND) so wird sich der Wert der Variablen X entsprechend ändern. Werden mehrere Pins gleichzeitig beanschlagt, so addieren sich die Werte.
Hinweis!
|
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 01.02.2008]