' {$STAMP BS2} ' $PORT COM1} ' {$PBASIC 2.5} ' '***************************************************** ' NSC ELECTROMAGNETIC SPECTRUM EXHIBIT '***************************************************** ' 'DOCUMENTATION---------------------------------------- 'Button 1 = start the demo 'Button 2 = next slide 'Button 3 = previous slide 'PIN ASSIGNMENTS 'P0 'P1 gamma input 'P2 x-ray input 'P3 uv input 'P4 visible input 'P5 ir input 'P6 'P7 radio input 'P8 piezo speaker 'P9 'P10 'P11 SSR A control (BOOMBOX) 'P12 SSR B control (BLACKLIGHTS) 'P13 SSR C control (PELTIER) 'P14 'P15 'BEGIN CODE---------------------------------------------- 'Variable Declarations but VAR Byte lastbut VAR Byte n VAR Byte timeout VAR Word heartbeat VAR Word 'Constant Declarations INTRO CON 64+1 GAMMA CON 64+35 XRAY CON 64+30 UV CON 64+24 VISIBLE CON 64+18 IR CON 64+10 RADIO CON 64+3 timetrig CON 300 timemin CON 3 BOOMBOX CON 11 BLACKLIGHTS CON 12 PELTIER CON 13 PELPERIOD CON 120 PELONTIME CON 10 'Initialize timeout=0 but=0 lastbut=0 HIGH BLACKLIGHTS 'turn on blacklights HIGH BOOMBOX 'test boombox PAUSE 2000 LOW BOOMBOX LOW PELTIER 'make sure peltier cooler is off FREQOUT 8, 500,2500 'initialization sound FREQOUT 8, 500,2000 FREQOUT 8, 500,1500 DEBUG INTRO 'display first slide ' Main Loop ---------------------------------------------- DO GOSUB poll IF but=1 THEN DEBUG GAMMA:ENDIF IF but=2 THEN DEBUG XRAY:ENDIF IF but=3 THEN DEBUG UV: LOW BLACKLIGHTS: PAUSE 1000:HIGH BLACKLIGHTS:PAUSE 1000: LOW BLACKLIGHTS: PAUSE 1000: HIGH BLACKLIGHTS: ENDIF IF but=4 THEN DEBUG VISIBLE:ENDIF IF but=5 THEN DEBUG IR:ENDIF IF but=6 THEN DEBUG RADIO:ENDIF IF but<>0 THEN lastbut=but:ENDIF IF timeout>timetrig THEN DEBUG INTRO:timeout=0:but=0:lastbut=0:ENDIF PAUSE 1000 DEBUG DEC TIMEOUT, " ", DEC but," ", DEC lastbut IF ((lastbut=6) AND (timeout>20) AND (timeout<40)) THEN HIGH BOOMBOX ELSE LOW BOOMBOX IF (((heartbeat+PELONTIME)//PELPERIOD)0) THEN timeout=0:ENDIF timeout=timeout+1 heartbeat=heartbeat+1 RETURN