Bastelware
Vielleicht haben Sie sich schon einmal
gewünscht, mehr Datenquellen mit dem
Userport Ihres C64 zu verbinden als dieser mit seinen maximal 8 Eingabeleitungen verarbeiten kann.
Nehmen wir als Beispiel an, Sie wollen
ein Zimmer überwachen. Da bietet sich
an, einen Schalter an der Zimmertür zu
befestigen, der dann Kontakt gibt, wenn
die Tür geöffnet wird. Dazu reicht uns
schon eine Leitung am Userport, und wir
können mit einem Programm sogar festhalten, wann die Tür geöffnet, wann wieder
geschlossen wurde und wie oft dies
geschah.
Damit wollen wir uns aber nicht zufrieden geben. Wir wollen nun auch noch wis-
sen, was sonst noch in dem überwachten
Zimmer vor sich geht, während wir nicht
daheim sind. Der C64 kann mit seinen 64 KByte leicht mehrere Wochen lang wachen, ist also auch geeignet, uns einen " Status- Report" nach einem eventuellen
Urlaub zu geben.
Wir möchten wissen, welche Schränke in
unserer Abwesenheit geöffnet wurden.
Dazu befestigen wir, wie bei der Zimmertür, an jeder zu überwachenden Schranktür wieder einen Schalter. So weit, so
gut. Was aber tun, wenn wir mehr als 8 Türen überwachen wollen? Das ist doch
eigentlich bei maximal 8 Eingangsleitungen gar nicht möglich. . .
Ist es natürlich doch. Denn wieder einmal hilft uns hier die Elektronik. Das
Zauberwort heißt " Multiplexer" und
erlaubt uns, ganze 16 Schalter oder Kontakte abzufragen. Und dabei werden von
den 8 Userport-Leitungen nur ganze 5 benötigt,3 bleiben also noch frei für
weitere Anwendungen. Aber hier zunächst
der Schaltplan, der eigentlich nur aus
einem einzigen Integrierten Schaltkreis
besteht: Dem IC SN 74150, das es für ein
paar Mark in jedem Elektronikgeschäft
gibt.
An die Datenleitungen, die mit den Zahlen 0 bis 9 und den Buchstaben A bis F
bezeichnet sind, können Sie 16 Schalter
anschließen. Den zweiten Pol jedes
Schalters verbinden sie mit Minus
( Masse) .
Was macht nun dieser Multiplexer? Nun, zunächst prüft er die Bitkombination an
seinen Datenselektionseingängen. Diese
sind mit den Userportleitungen PB0 bis
PB3 verbunden. Mit diesen vier Leitungen
können wir 2↑4=16 Bitkombinationen
darstellen. Das klingt komplizierter als
es in Basic ist. Hier ein kurzes Testprogramm:
10 POKE 56579,15 20 INPUT"LEITUNG NUMMER";N 30 POKE 56577,N 40 A = PEEK(56577) AND 16 50 IF A=0 THEN 80 60 PRINT"SCHALTER IST OFFEN" 70 PRINT : GOTO 20 80 PRINT"SCHALTER IST GESCHLOSSEN" 90 PRINT : GOTO 20
Am Anfang des Programms werden in Zeile
10 die Leitungen PB0 bis PB3 auf Ausgabe geschaltet. Dieser Vorgang ist nur
einmal notwendig und muß nur nach einem
eventuellen NMI (= RUN/ STOP RESTORE) neu
ausgeführt werden.
In Zeile 20 wird dann über den INPUT-Be- fehl eine Zahl zwischen 0 und 15 eingegeben, die den entsprechenden Schalter
auswählt. Der Multiplexer schaltet nun
diese Leitung auf seinen Ausgang, welcher mit PB4 des User-Ports verbunden
ist. Hier können wir nun in Zeile 40 den
Zustand der Leitung abfragen. Ist der
Wert Null, so ist der Schalter geschlossen, bzw. die Leitung am Multiplexer ist
mit Masse verbunden. Bei einem anderen
Wert als 0 ist der Schalter offen.
In einem " Überwachungsprogramm" kann zum
Beispiel in einer FOR-NEXT- Schleife von
0 bis 15 jeder Wert nacheinander in die
Speicherzelle 56577 gepoked und
anschließend die Ausgangsleitung des
Multiplexers abgefragt werden.
Hier sind Ihnen als Anwender keine Grenzen gesetzt. Da ja am User-Port noch
drei Leitungen frei sind, wäre es natürlich auch möglich, noch weitere Multiplexer anzuschließen und so statt 16 Schaltern 32,48 oder gar 64 Stück zu
überwachen. Diese Zahlen dürften dann
aber auch den Anforderungen eines Möbelhauses genügen. . .
Wir hoffen, daß Sie mit dieser Bastelware einige Anregungen bekommen haben, den Multiplexer mit seinen Möglichkeiten
im Haus einzusetzen.