ebps.de.vu > Schaltungen > für den PC > COM-Port Interface
Wegen der großen Nachfrage möchte ich jetzt 2 Vorschläge für Computer-Interfaces vorstellen, mit denen man Schaltungen seriell oder parallel mit dem PC verbinden kann. Dabei ist zu beachten dass der Vorschlag mit dem Transistor auch um ein nachgeschaltetes Relais oder eine Optokoppler für galvanische Trennung ergänzt werden kann.
Das serielle Interface hat 3 Ausgänge und 4 Eingänge. Dabei muss ein Ausgang auf 1 liegen, um die Eingänge abfragen zu können. Für jeden Eingang wird einfach ein Taster (oder Transistor etc.) zwischen Eingang und einem gemeinsamen Ausgang (für alle Eingänge) gelegt. Die Ausgänge und Eingänge werden wie folgt abgefragt bzw. gesetzt (die Pinnummer in Klammern bezeichnet den Pin bei 25-Poligen Steckern, Masse ist dort 7):
Pinnummer | Ein-/Ausgang | Adresse (Hex) | 1 bei Wert |
---|---|---|---|
1 (8) | Ein 1 | XXEH | 128 |
6 (6) | Ein 2 | XXEH | 32 |
8 (5) | Ein 3 | XXEH | 16 |
9 (22) | Ein 4 | XXEH | 64 |
3 (2) | Aus 1 | XXBH | 64 |
4 (20) | Aus 2 | XXCH | 1 |
7 (4) | Aus 3 | XXCH | 2 |
Die Adressen XX sind wie folgt definiert:
COM | XX |
---|---|
1 | 3F |
2 | 2F |
3 | 3E |
4 | 2E |
Wenn mehrere Eingänge auf 1 sind oder mehrere Ausgänge gleichzeitig aktiv sein sollen, addieren sich die Werte! Beispiel: Eingänge 1 und 3 von COM1 sind aktiv - an der Adresse 3FEH steht die Zahl 144 (128+16). Sollen die Ausgänge 2 und 3 von COM2 aktiviert werden, muss 3 (1+2) an die Adresse 2FCH geschrieben werden. Eine Ausnahme bildet Ausgang 1, da dieser eine eigene Adresse hat und somit keine Addition mehrerer Werte möglich sind. Und noch zur Programmierung in Q(uick)Basic (addr ist die Adresse ohne H, var eine beliebige Integer-Variable und wert der zu schreibende Wert, der gelesene Wert steht in var):
Schreiben | Lesen |
---|---|
OUT &Haddr, wert | var = INP(&Haddr) |