symbol relay = b4 ' Define storage space & name for relay input symbol stat = b5 ' Relay status for ON/OFF symbol cs = 5 symbol clk = 6 symbol dio_n = 7 symbol dio_p = pin7 symbol adbits = b1 symbol ad = w1 symbol sgldif = 1 symbol msbf = 1 symbol oddsign = bit0 dirs = %01111110 ' All pins outputs except 0 for serial input high cs loop: serin 0,N2400,("R"),#relay,#stat ' Get serial data on pin 0 into b3 (relay) and b4 (stat) serout 1,N2400,(#relay, " ", #stat, 013, 010) if relay > 3 then adconvert relay = relay+1 if stat = 0 then relayoff goto relayon relayon: high relay goto loop relayoff: low relay goto loop adconvert: oddsign = relay - 4 low clk high dio_n low cs pulsout clk,5 let dio_p = sgldif pulsout clk,5 let dio_p = oddsign pulsout clk,5 let dio_p = msbf pulsout clk,5 input dio_n let ad = 0 for adbits = 1 to 13 let ad = ad*2 + dio_p pulsout clk,5 next high cs serout 1,N2400,(#ad, 013, 010) goto loop