LPT-Tester

Warum?

Im Zuge der Projektarbeit für einen EPROM-Simulator mußte ersteinmal eine Versuchsschaltung entwickelt werden mit der man schnell und einfach unter Windows testen kann ob entsprechende I/O Befehle an die LPT-Schnittstelle weitergegeben werden bzw.ob auch bestimmte Eingangsbitkombinationen eingelesen werden können.

Bauteile

Der LPT-Tester besteht aus einer Leiterplatte mit vorgestanzter "Fassung" für 25-pol.Stecker /Buchsen. Für die Stromversorgung wird ein handelsübliches Universalnetzteil gewählt. Da sich dessen Spannung nicht auf 5V für die Logikbausteine einstellen läßt, befindet sich auf der Platine eine Schaltung mit einem 7805-Festspannungsregler der eine konstante Spannug von 5V bereitstellt. Zur Auswahl der Betriebsart (Eingabe / Ausgabe) wird ein 74LS00 eingesetzt. Als Puffer zwischen der Eingabe / Ausgabe werden jeweils 74LS245 ( bidirektionale Bustreiber ) eingesetzt. Zur Anzeige der angelegten Bitkombination am Ausgang wurden 8 LED's 8 (Datenltg.) und ein entsprechendes Widerstandsarray verwendet. Zur Eingabe wird ein DIP-Schalterarray ( 8 Ausschalter) und ebenfalls ein Widerstandsarray verwendet.
-Bauteile für 5V Gleichspannung: Festspannungsregler 7805 1x , Dioden 1N4001 4x , Lade-Elko 470µF 1x , Entstörkondensator ( ker. ) 100nF 2x , Elko 47µF
-74LS00 Logik , 74LS245 Puffer , Widerstandsarrays 330 Ohm 1x (LED) und 1kOhm 1x (Dip) , 8er-DIP-Schalter


Prinzipschaltung


LPT-TESTER
Foto


Quelltext C++/QBASIC

Lesen

Basic
OUT &H378, &H20 'die 2 setzt das bidirektionale Bit
BYTE % = INP(&H378)
PRINT "Ausgabe des gelesenen Byte:"; BYTE%

oder lieber C++
int byte;
outport( 0x378, 0x20); //die 2 setzt das bidirektionale Bit
byte = inport(0x378);
printf("Ausgabe des gelesenen Byte: %d \n", byte);
 

schreiben

Basic
INPUT "Bitte Byte <0 bis 255> eingeben:" ; outbyte%
OUT &H378, outbyte%

oder lieber C++
int outbyte;
printf("Bitte Byte <0 bis 255> eingeben: ");
scanf("%d", &outbyte);
outport( 0x378, outbyte);
 

Idee + Umsetzung Detlef Schmidt