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
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