' {$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 Word hc165 VAR Word 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\16] PULSOUT Latch, 5 RETURN shitin: HIGH load PULSOUT Load, 5 SHIFTIN Datain, Clock, MSBPRE, [HC165\16] LOW load hc165 = hc165 ^ 65535 RETURN send: SEROUT 16, 84, [BIN16 hc595, BIN16 hc165] RETURN compter: IF (compteur = 16) THEN ini compteur = compteur + 1 hc595 = hc595 << 1 RETURN END: