$regfile = "m168def.dat" $framesize = 32 'Stackanweisungen, die eigentlich nur bei größeren Programmen $swstack = 32 'wirklich nötig werden $hwstack = 32 $crystal = 16000000 'Die Frequenz des verwendeten Quarzes $baud = 19200 'Die Baudrate für RS232 Ausgabe. 'Sie muss auch bei PC Terminalprogramm identisch sein 'In unserem Beispiel wird das Port C verwendet Config Portc.0 = Output 'Das Port C0 für den Clockausgang Clk_out Alias Portc.0 Config Portc.1 = Output 'Das Port C1 für den PS (Clear) Ausgang Ps_out Alias Portc.1 Config Pinc.2 = Input 'Das Port C2 für den Datenimport Qin Alias Pinc.2 Portc.2 = 1 'Interner Pullup Widerstand ein Config Pinc.3 = Input 'Das Port C3 für einen Taster der beim auslösen die Porterweiterung abfragt Taster Alias Pinc.3 Portc.3 = 1 'Interner Pullup Widerstand ein Dim I As Integer Dim Abfrage As Word Clk_out = 1 Ps_out = 1 Do If Taster = 0 Then 'Wenn Tastergedrückt dann auslesen Goto Ausloeser End If Waitms 100 Loop Ausloeser: '1. Setze P/S auf high (ein Clear ausösen) Ps_out = 1 Waitms 20 Ps_out = 0 Waitms 20 '2. Dann eine Schleife für alle 7 Eingänge For I = 0 To 7 Clk_out = 0 Waitms 20 Shift Abfrage , Left , 1 '#Print Qin '3. Ersten Wert abfragen If Qin = 1 Then Abfrage = Abfrage + 1 End If Clk_out = 1 Waitms 20 Next I '4. Wert ausgeben Print "-> " ; Abfrage Return End