' {$STAMP BS2} ' {$PBASIC 2.5} led CON 0 DataOut CON 1 ' serial data out (74HC595.14) Latch CON 2 ' output latch (74HC595.12) Clock CON 3 ' shift clock (74HC595.11)(74HC165.7) Load CON 4 ' input latch (74HC165.1) Datain CON 5 ' serial data in (74HC165.7) hc595 VAR Byte hc165 VAR Byte compteur VAR Byte ini: HC595 = %1 compteur = 1 DEBUG HOME main: GOSUB shitout GOSUB shitin GOSUB send GOSUB compter GOTO main shitout: SHIFTOUT DataOut, Clock, MSBPRE, [HC595] PULSOUT Latch, 5 RETURN shitin: HIGH load PULSOUT Load, 5 SHIFTIN Datain, Clock, MSBPRE, [HC165] LOW load hc165 = hc165 ^ 255 RETURN send: SEROUT 16, 84, [BIN8 hc595, BIN8 hc165] RETURN compter: IF (compteur = 8) THEN ini compteur = compteur + 1 hc595 = hc595 << 1 RETURN END: