port | Port Adresse, 0..4096. |
data | zu schreibendes Byte, 0..255. |
Zuerst ein bisschen Parallel-Port-Theorie. Der Haupteinsatzzweck des Parallel-Ports ist die Verbindung zwischen Drucker und Computer - deswegen wird er oft auch `Drucker Port´ genannt. Er stellt 8 Output und 5 Input-Leitungen zur Verfügung, mit denen externen Geräte gestuert werden können - zum Beispiel ein EPROM Programmiergerät. Der Parallel Port Anschluss am PC ist ein 25 Pin weiblich (DB25) Anschluss. Ein Bild ist unten dargestellt.
Die Linien sind in drei Gruppen eingeteilt: Datenleitungen, Kontrolleitungen und Statusleitungen. Die schwarzen Pins sind geerdet. Wie der Name verrät, werden über die Datenleitungen Daten übertragen. Die Kontrolleitungen dienen der Steuerung der Peripherie und der Peipherie-Antwort der Status Leitungen. Diese Leitungen sind intern mit den Daten-, Kontroll- und Status-Registern verbunden. Indem man diese Register verändert, können Daten auf den Parallel-Port geschrieben oder von dort ausgelesen werden.
Jedes Register hat eine eigene I/O Port Adresse. Bei den meisten PCs liegt die Basis Adresse des LPT1 bei 888 (= 378 hex) und LPT2 bei 632 (= 278 hex). Das Daten-Register befindet sich an dieser Basis-Adresse, das Statusregister an Basisadresse + 1 und das Kontrollregister an Basisadresse + 2. Details über die Registerprogrammierung finden sich in jedem PC Hardware-Buch.
Ist der Port auf den Output-ode gesetzt, erscheint alles, was ins Datenregister geschrieben wird auf den zugehörigen Leitungen als Spannung und kann mit einem Multimeter gemessen werden. Wenn wir zum Beispiel die 1 in das Datenregister schreiben, wird Pin 2 des Anschlusses auf einen TTL High Level von +5V gesetzt. Auf diese Weise können wir die Datenleitungen an- und ausschalten. Nach dieser langen Einführung ist das Skript, das alle Datenleitungen des Paralell-Ports auslöst doch sehr einfach:
while(1) { port_out(888,255); // set all data lines to +5V sleep(1); port_out(888,0); // set all data lines to 0V sleep(1); }
Das Messen mit dem Multimeter kann zwischen den Pins25 (Erde) und 2 (Data0) erfolgen. Beachten Sie, dass nicht bei allen PCs alle Pins 18..25 geerdet sind.