143
à»´âÅ¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍà ¡ÑºàºÊÔ¡áʵÁ» 2SX Learning microcontroller with BASIC Stamp 2SX Çþ¨¹ ¡Ãá¡ÇÇѲ¹¡ØÅ, ªÑÂÇѲ¹ ÅÔéÁ¾Ã¨ÔµÃÇÔäÅ (C) Innovative Experiment Co.,Ltd. ˹Öè§ã¹Ë¹Ñ§Ê×ͪش ááàÃÔèÁàÃÕ¹ÃÙäÁâ¤Ã¤Í¹â·ÃÅàÅÍÃ

Fun With Stamp2SX

Embed Size (px)

DESCRIPTION

(C) Innovative Experiment Co.,Ltd. Çþ¨¹ ¡Ãá¡ÇÇѲ¹¡ØÅ, ªÑÂÇѲ¹ ÅÔéÁ¾Ã¨ÔµÃÇÔäŠ˹Öè § ã¹Ë¹Ñ § Ê× Í ªØ ´ ááàÃÔè Á àÃÕ Â ¹ÃÙ ä Áâ¤Ã¤Í¹â·ÃÅàÅÍà ໴âÅ¡äÁâ¤Ã¤Í¹â·ÃÅàÅÍáѺàºÊÔ¡áʵÁ» 2SX l 1 ´íÒà¹Ô¹¡ÒèѴ¾ÔÁ¾áÅШíÒ˹ÒÂâ´Â ºÃÔÉÑ· ÍÔ¹â¹àǵտ àÍç¡à¾ÍÃÔàÁ¹µ ¨íÒ¡Ñ´ 3133/53 «.ÊØ¢ØÁÇÔ· 101/2 ¶.ÊØ¢ØÁÇÔ· á¢Ç§ºÒ§¹Ò ࢵºÒ§¹Ò ¡ÃØ§à·¾Ï 10260 â·ÃÈѾ· 0-2747-7001-4 â·ÃÊÒà 0-2747-7005 E-mail : [email protected] Website : www.inex.co.th ISBN : 974-91609-2-4 Çþ¨¹ ¡Ãá¡ÇÇѲ¹¡ØÅ áÅÐ ªÑÂÇѲ¹ ÅÔéÁ¾Ã¨ÔµÃÇÔäÅ

Citation preview

Page 1: Fun With Stamp2SX

Page 2: Fun With Stamp2SX

! "#$

%%&' ()*

!!"#$"#!%%&'!!('"()*

+, '-".""#$/)((0"(.1(*!(0"(!((

2 !3"#!(-('!'$44( 5 '!!('"(16

)7)7.8')+*,-./2229:24 ; "<9+, ; ";- -; - -"=<+><'""01"2321200413 '"01"23212005

()"#$?%.-1( ! "#$ )@8"(8-(),,#1#(%.! &3,&(-"# )*%-1#(;"#-8()@8!.(()7;(&%.-1(8$%"- "('A(0(7))*% @)( 8$%)!@))!)!1#("#() )@8(($"- "=-;%)!-8($

Page 3: Fun With Stamp2SX

;(-#-$)6B)"!'');(8-8(1#(-)0 ( $3@&(&8 1(-.-

!70.#-!1( 6789:9;<=:;>>?:@( $3! ! 0C"#"7-)(8-"-$"D*8"#-88"#&)%."8".8 )7!E!1(#

#&%-'!!('"(,"7)8 -!-%-@ ) !!)"#.0,;%"7-7%-)%(#-)!1#(-1(%&"#! -"-4(AF) #-"7%.'(%&'!!('"(%.;%); ')G(8-#- '!!('"("#'$)* 4#--88()7"7!;%

! 6AB#CD #=E7F@ !1('!!('"("#.(8-#-%7#&')@&#87$H(-16-8() )!7#-"#"-$"D*84 4(%&$ %@ !8-;(-;8(%- "7%.,--.1('!--(8--8C )-8;(8-8%%#8##'-

.-1(8!1( .#-%!1#(-1("#8%.&'!!('"(,70$H&$D)0; ')%8#7-8 !.;(-'!!('"( 8()7@--'!!('"( $B"#1#( 81#=E7F ($H@--"#;')" "('A(0(7)( B$1"#$GAB#CD#=E7F"#$B9=8H8=IJ;E:K(@--7. &")(- $B(8--8"#))1#(8(;(;(- $B; ( $38-C88$H)'()$8--.1(IJKLL7'-.1("#--; 0$$(((-"7%.&'!!('"() $B,"7)(8-! ,( )"-8-EE31#(; -5- EE3! ! ( $3(0"(&-; (()8( ( $3 $3"-"(8--8&1#(- ! ! ('')%!(( ')%8 "8"#(-,-( $3(0"(.1("MN-0(D 1#(%.;%%*1#($H"-%#1#(%()#8($)

)-)!(-8%# -"7%. $B$H'!!('"("#%!0),#&)-8) D($8-( ." ;@&%"-""!''"#8);(0"(')-.1("#-"#!#7.())(0"( '!!('"(,8#*% ! ! (')(8-

.-$H(8-#-8)&'!!('"(!-"7%.@&)! );%,-"7-,7$$ -;)(8- &3(;(78

Page 4: Fun With Stamp2SX

*L4 /M('*L N- O

*L" (OP

*LP O./ !"#$O *M/./'/+O !"#$%&'()*+, -!,

(. *

*L3 !"#$/Q N 'O /' RR/N *'Q:- (*/.'

0 /.'1*

2 /*1*

3 /*1*-4

5 *&'(.(6786

9 /*'

1 :&:*.

; !"#$%

< *6

*L5 !"#$/ RR/N / >2 &'6&==> ?6*

- 6**'?/

0 6**'?/(''&'

2 6*:/@'&'.AB

3 :&* C 6

5 6

*LS /''/ '1 *'1 ! "#$ OP9 ADA.

1 /* 3 A(

; C C 6

-< :'

- E* //2(''

Page 5: Fun With Stamp2SX

*L2 ! "#$/Q&O M' P:

-- !"#$%7&'

-0 !"#$%7&'6CAA ('' /6

-2 !"#$%7&'6CAA (''- /6

-3 !"#$%7&'6CAA (''F/6CA

*LT !"#$/./'/*L/ <P-5 *&G*

-9 ?HD

-1 &G*1<*

-; 6*/

*LU !"#$ N 'P0< *&(6

0 *&(6(6)*IJK

0- 6A?

00 6*6L

02 *'?6CAA *(6

*L40 M VDW !2:03 (67 *(.AM

)!INK5O-

05 HD&'*

09 &G*< -33*

Page 6: Fun With Stamp2SX

!"#

!$%&'( )$* +( !,# ,#-%&+(# & &)++ .)&/00&1'&2345678379,:):.:* +(;<#(#(#=# ,#-)= "2>?5?@&8&>9&A=,#* # )," &(,B:);B )=& '(B= &

# ,"%&" ,B &C&D&)=& !"D:&#$%&%!"&* D ;E & $,<:A #" & D" ; ) &/0&&/FCG&&/0HI&HF/CG&&/0J&E

! "

Page 7: Fun With Stamp2SX

!

µ

#$$ !%&'& %!

(!)*+ ,+-../

! !"!

#""$

%&!

%&%!!

%&%!!%!&

'

"(%!"%! %))*

Page 8: Fun With Stamp2SX

"

,:* ,B;& : (" & /0& K" ,B;: ,#)K D$:&G&K&&0&)=& &/0&:E&L/0M&&JI&/0M&&GI&0I&/0GI&/0JI&L&) &/0&$: A=,#K D)$:&G&&/0F/JC&&/0G&I/0HFJC&&/0JI&0F0NC&&/0M&&G&E&,&/&D",##+( # ,<: ;D:; "($

! "#$%A=,#* # !D: D::","

D: &/0FHJCO/0G&37&#=&/0O/0G&(#"B=D: #=-< &/0&* ,B;&K" ## #$( $& !"#$&'( : ",&CK" :$D# )=&AK&2/0M&/C9&+(# ,#-." ,B,)=&:&2/0P9

! &'(, !:-<.D:." !# &".,&/M/

))* + + ))*

'( &))& E.A=$Q."E"D##)=&,B,":D !&K" #)&:D !:+#" &"$( ,B,)).:D !,

))*))=&*+*#(,--.&))"# E&/#0123

ΩΩΩΩΩ&# ,#-($)=&KK#&2&RSTUVWX&8&RΩ&9&'()&/I000&Ω&# ,#-)=/&:K#&2Y4Z?VWX&8&YΩ9&)&/I000&RΩ #=&/I000I000&Ω

,-#./0102#/0345AAA=))# D" %&,

&/MC

Page 9: Fun With Stamp2SX

#

!

"

#

#

#

#

$

#

#

#

#

#

#

#

#

$

$

$

%

%

%

%%

%%

%%

%%%

&

&

#

!"#$

!"%"$

!"#$

!"%"$

!"#

(# % %0&

+ ),-,E)"A"&[\&:D+&H&D+&D:D+)#

"$

E#D))&E#))&& E)&&ED+))"A"&#ED+# +())"A"& [\&D:+EE:# )& )"A"&/0\

D+&/I&C&D:&G&ED"&." ED+&$),"

D"D+&/&D:&C&D" &C&,:D+ED"&))=&/00("E& CC/00&]& CIC00&# ":E&Ω& DA=,#":B($(E# ,#-($&)=E&RΩ '()&/I000&Ω&(,#"E&CFC&RΩ&)"A")=[\

%%&'&()&*()%&'&+, - ./0(%&'(10-234%&'5 1-2'6'&76'

,E#D+&[&D+:)# "$

E#&/MG&))&&ED+)

Page 10: Fun With Stamp2SX

ED"))"A"& &+E$:ED"))"A"&/\&&,&CM/&D")# #D+$#"

+D+&/MG&ED"&#=&&D+E &D:." E$&$),"

G& D+D)=& D"& #=& & D" & CI& H& D:& G& D+E#=))=&/0I000&("E&CIHG0I000&# E&Ω&E# &RΩ "&CIHG0&RΩ&D +,#E# ,#-($)=&# &YΩ '()&/I000&RΩ #=&/I000I000Ω&"E&CFHG&YΩ&))"A"&/\

6-7++)*87'*))

,D: ") " & ):)DD")=& ): & ,:): ' &")&0Ω&&2745U&?@^_`69&&K" D:& #a":=& $.b& 745U?@^_`6&B$D#&0Ω

); $:.)$ "))&D:.)$"))&$$A=,#)"")D ."& "))K" & :DE&H& )=&cO/&+"))"$D& 0M[00ΩK" :I&cO/0&+")"$D&[00ΩM[&RΩI&cO/R&&"":#&[&RΩM[0&RΩ&D:&cO/0R&"":#&/0&RΩM[&YΩ& &)+,"$E)K" :$

+ ))*,.:))"A""D+D+."

D:" ))"A"$,#)D#(%&)E" # )& " $

Ω !"# )&))"A"&CN&&/0000F0[&]&/IG[0Ω&"$#$$ %&'!()!*+,(-!*Ω. %(***+/(-!* &(***0/(-!*12!3)!+,3-!Ω

Page 11: Fun With Stamp2SX

$

)(&# .9:;:/<=025 E.K)d ,E& C&+$" e& =D""($

:#$&:":. !($:#&8195:;;<+26-234%=68195$d ,:.:<:ED& 4 .567891&e$ :#A &:4 ;.<=+969>8?=>1&)+,:. !:.:($ "AD:B""&,&/MG&D"K)D:-<&:. ,B)=&4@ (A 44B(: B.: #C1(4 ;: B & . #C1& B":.: ".,BE"

D"):.& C& D)=&45#6'78& :A,:.DD:DKA& :.+ & ),"& D:D"","9:;<=>?='@>@/+A-'7& &)&/0H&# +(&//0H&# AK "&2f>9&:&/&K "&2g>9&#=&0F/&K) "&2`hX64>9&&A,:.D'& D:

# :. "# +(# ,#- ,B& .""$

A-'7B&)) = # "/*+/D.E1

-'7B&&)) = # "/*+FD.E1

,#*-'7µµµµµB)) = # "/*+)D.E1

):.# )$DAK "+(# %&AK) "D"$,#=$D&JFGi&+(# K&D :

,:"&/JM[0i

(1 &)*+ ",

!"

!"

+

#$% & " #$%&'(')*+ #$% ,-

µ

Page 12: Fun With Stamp2SX

%

78 7#.><?@=A4B<==<C?#3<034#D#>EF5E.+"D"=" +& ,#&jkl

&,C")&D:D,#&jkl&& &,@ &D"&EC")&K" D",B,#=D,#&jkl&:) :#&/MHF[i&($ ,B&jkl&D:($ :D#&)=&+:D#& jkl&&,#D")& jkl&)D:D& jkl&":($" & & K" :#",#D"D&jkl& &Ci& ,& /MHE-<I& K)D:"&jkl

jkl&+D"# ($ &(B","E&jkl+#ED"D:#=D '" "&2m?n`o9& D "&2m?o9&D:&jkl&,#D "'(D '"&2m?n`9

'*#>EFjkl&D"D:&Ci&D: ,#:D !#"

H0Xn&D:D !#:)=&/0MC0Xn&"$,,B&jkl&(":D. " &",&/M[

#),B,":D,#& jkl&"K" ,B

RVcc V

IS

F

F=

K" &ipp&)= $ I&i>&)=D"D)&jkl&D:&q>&)=:D !#&jkl&="D

,&# D"DD&jkl&&&jkl&:D&,#&jkl& # =&jkl&D" "&A &GM/0i&$

( 2$)*+3 &"$ -$$!%4567

+

( 8!&94":$%&!567

Page 13: Fun With Stamp2SX

&

"8GE.,B, -- !E-- D#(& :" D

##=":D E,#" & ""AD#& =!-- !,#D""+$&:"D"(D#""D## " D#&=-- !$&)ED#:#"&D#(""&#-- !! =&D#:""&":A=($&,#" "&)+-- !!,#& #,K))K: ,BKA&C&D)=&KA&)&rΩ&+,#-- )+ )&D:KAs K'&)&/JMGCΩ& +-- )+ ,B&/R37MGR37&#,B." Dt&Cuv&:,BKAD*"E#& =Dt&Cuv&+-- , )+ &+(K"D:--.bK;A#=&lwY>&"$(,BKA&A=,#+-- " )+D:."

(;$: :9<=

!

!" # $ $%&'()* #+

,(++((

&'-))*+" $*.+%)"'( $'( # $ )(

/(%$"0123456378

,(++((

.9:(%$"

(*,+/8

(*,+/8

Page 14: Fun With Stamp2SX

'

))*+) #>FH#.><?@=#F4;4C34C=#H4I<I=025E.D#().A;<)=&*+*#(,--.>@#'

84=9:=@#F:#9@#4 7*+*#(84=7=@#F:#9@+@#4=4A:#*+#>GH/@+@9:4=7*#+@=@=4I@57#F:,#+#9@J7K4'LMN&))&jlc&: ,B&/RΩ&M&[00RΩ ,.+(& [&YΩ& $$($ "D:)D(,B& jlc&D=D:)):"#=& [& RΩ& #="& ),B=":):&/0I000&8&/&D &"$D&$$A:&jlc&E.A &)=&<: ),:EB&),D&jlc&:DB"(,B& +ED)" ' ":D ) )=& 0FJ&µX&'(# )& +D*"#=D"

( ,B&jlc&)=&*7#9#O'=,-7P"E2Q2)QR1E3PE D))&jlc&= D:<:EB&2gUgMTSg4?59)= D)):E)D

,=,B&jlc&E)). &$$A=!,B&jlc"A",#") # &A," &G&)=&*+*#(I@57#F:,#+#9@#4I&*+*#(:?57#F:#9@#4& D:&@7'J6(@I@57&#)) )=D , )E)(+(=K" ,B&jlc&D#=D*"& DeA: $

(>$(!3)*+. ,+:4?& 57@

Page 15: Fun With Stamp2SX

(

)7)7 7#.JKI@ALK==0C#IM<=/@NO:/=#IM<=/@5E.#" !D#( ,B ,:K))KM

& K" BD$="& #B:D #= x"&=".b"'( ):##=A&,##d ,B+(& :D !:+#"

B"" "" # D&$D" &DDAA&D"#a"&D:,D D",&,B$D&C&($&,,BK))K$,BBE.--A.D#(& K" #(& D: $ $ #= & yAz.":#B:E."K))KA=)"B"D",& /Mr& 29&+#"B& +:B$:E&y/z&=A&D:="B&:"+:E&y0z=."--$+"

!

"!#$!% &%&$'&

( A$(!)*+ '$$!$'&$

!

" !#$%&

!(&!!)% &%&$'&* !$%+(*, - $,$

# !"#$!% &%&$'&

Page 16: Fun With Stamp2SX

-#.H41:P5E.D# !D#(#EB"#(B."#=& ($

# #(&%&. &&& -<&/MP&29&:# :" )-&C&)=&# .>G=61&D: .>GH87>81&DE I.JG?K766LM6GN9<OJM1&D:I4IP%2: .JG?K766LQ59H9<OJM1

:.,# " A D",#D"",""$& :,#D# !"($#& """#."&p& ."&V&"$= #&V&:&,:&p&:x"D&,<:$#=EB&C&))." D# !&"D",&/MP&29

).)- "D

/F&D")"",# &2i|UST&#=&pUST&iUT6?Z49

CF&))""&2pUST&54`S`6?g|49&):&/00MJ00Ω

GF&"."$D"D::D#&2pUg6?|6&&5?6SgZ9

HF& .,B&2Vf45?6SgZ&6SX49

[F&D##&VI&p&D:&p&$,B""

(&!#$!'

!

#)!#$!'

" !

(B$)*+:4?&

Page 17: Fun With Stamp2SX

!""#$%&%'%()*#+"",!' %-,'" .(/ 0* 0+)$ 0%1123 ) +- 0,"%($$% $%% ($%0'4#1$ %'#"''"% $%0,!*%$5-

0* 6 * *) & ,* &

'%%- 0&

#)%7%#,5/%$%$ + '*)5/')&5/ ,%*)5//!-& %#0!%-) #$8 )& )(( "&/'0$ ))%'%# ""$#+"#*%--

'0,&/#+" , ,#$)&/#+"#$$% $0, !$ &0,9%#"!"/**'" 0*#"4$5%:#%#0#+" ,% )0+'!'!40 '0*#+" '(% 4#"$"#4$'$* #+"&!"/.-*'" 0,+#"&%')%*'" '0* $""0# (!#"0#$%%- 04'#,,'".* '/%; ,(%<& *%1#") &%;%!"/!4$5%:%-"'"

Page 18: Fun With Stamp2SX

,'" = *%1)

>? !")#$%$&@ABC D AEFGHIJ BHKLEMMNFO CFNGP

6? !'(! ) . 6 ) !"#$#%# &'*""%Q''#($ !"//1)8-,()$ *"+"$#%# &' #+" ),';'#*!.(/ , (%!"/#*+% !"/0,)8-"%0*@RSTP #($% #%#0*!"/0,%- 0* .!"/0,)8- , ( @UUBRVT D UHIMIWJEUJELGHNLIJJX BHKOHIYYIWJE REIZ[VFJX TEYKHXP .&!"/'""8-

\? *+,-+. /0! ) %+ 1 '"% 6 %;,) , -.. ) ,/,$012+$ +' , ,-3-.. ) ,,$ 2+2+ +' -*%1 )0#+"#+)$%5 ,5%-%0, )#$'$%; $% ($($#+"$%$+()%!"/4/"#+"'9!" .)%#+"'#9!"!"($

!

!"#$% %&&'

Page 19: Fun With Stamp2SX

($$($#+"$%*(()!% $%'8()'4 $%$() $%0*()(()-#!"/ %($($$($)$%)(( &$%0$()'5( $"

]? *2!"*344!/ ) 53* 678$'$%11!"/,.(/ 0* ,($0,,*%110* "%11)% ' -()$*"+"$425'^ --$"**%55$425' , - $6 1+ 7$425'

%!"/ %110!"/%,4%-' !'!%0,!-/%&#,4!.(/,!$%%- *%#%!'!%!"/) _ $ ,#00%(%<& >a^ \6 , a] $"

%'' %110$*!0* '$'$%0*%- .(/$"*'$*$")! .)*'''0*%11!%''0$"0* ,&"#' 0, '&!'!0*$%%-&$'$'" '&*'"0

-3$8$91 ' F )0*%11

$% $%'' >b " '%%-$%-&$'$%0*'" 6>b c >^b6] $*

$"0!0*0 0,$"&!'!%!"/ #' _ $ 0!0*'' >b " 0,% _ >b6]c _^>d6 $ $'%0!0*#$ @WXGEP ) $@eNJK WXGE D fgP ' > $ % _ $ , > $% >^b6] $ @#+ >^bbb)%%'%P '%%-* $%0,0!0*% _^>d6 $ ) >^b6] $ ) > $

% !%11$'$%-'!.(/%0*,($ *%%11%'" %11)[[!0* %11)[[!!"/%($

=? "' (!,-*344!/!9: !% ,*%1 )0*%-''!-#0,!-/%*'0%,'#+"%1123%1123&/ 0%,#*!0,&,$4#"%-#,4/$'"

Page 20: Fun With Stamp2SX

0,&*'")08-,$0*'%1123#"% 0%-.(/5#0,$'$%0*()!"/*%"*$*%0/#0*

% $"!!"/#0* '$,0,/!!"/*%$$% .0,$"7%,! @hHKOHIYYNFOP 5;#+"#!&'" 6 ,'%) 0!;!*&" <=<>=7>= , 0!;!?*#5$ >886)>=7>= '$$"!'"5;. )0&*'"'4,!"/*% !"/!i()*$*%( > !%-$) 05;. !"/!i ) "' @KhLKZEP $!"!!'"5;.) 4/"!$"*!"#0#+'*%!%- &" )$"/",*!"#0+'*%# .0*#" ,!'"5;. 4/"!$"%;,#!/( ,!"#0&&$! '

#!,!'"5;/ 5;. 5; $"4, % @LKYhNJEP ()5;,'%/%- 5;))"'!%- ,#+"#(%- %@LKYhJNEHP %0,( )#+")).8$$%-4/"!00* $"7;&`$,+'*%!%- .- %--(,(0,*"#- '%%-)4/"#+"($0%'(,#+" ,7;&$!#"&#+"'" $!"!#+"() (

!!'"5;/'#+"(() #+"$%5;)$($$ @NFGEHhHEGEHP '$%5;-*"5;!!!-()$%.(/#"!"#0,&*'",'!- ) 0,!'"5;.)5;).,.%." #+"5;)+ ,#(%<

Page 21: Fun With Stamp2SX

5;0,$"$%5;0/'" *#"4/"#+"(!5;$/*' 0%-$%5;0,*" !"/.(/!"#0 ()#"'*'" '%%-$%5;0'"% 6 %;,) :;<3= , :;<>?@3

.8$' #(%<0,0$%5;"'" *#"!'!#1 ,$"#+"%-' 4#"*+" ,Q'0,*'"% $!"') &*'"'*(%

#+"Q',.8$% Q'#+") $%05;#0*"" $%5;0, -//,=$ $" .$"$0*($ 0#+"05#$%%-'"$0,0" . )#+"0*($5.&*'#"0'"$$" '0*5#+"% 0*(&,!#'"%%"%- *%.8$*'"%-0,*" ()-!) .'$ @GEjG EZNGKHP .*"% kKGEhIZ ) lKHZhIZ # lNFZKmM ,$0)%5;! ("%%-%#+"'')!"/0($%$%$($$ '" ("(#.8$$%'

'"#+"Q'#5; *#"&*'"!- %-%#+",+#Q''",n5( $$%5; .8$('&0,(%<#"*'",'( %#+"Q''" $!0,/$ #$!" $%5;#+"Q''" 4/"4$%0,0 .8$8 $$".)-04/"4$$%5;%- &#+"!%'" *#"$"%5,!$%+05;./$%%( $4/"#+"$"05;#/#' 00%'"$)$%'"!no.8$,()9%%' 4/"(%<0(4%'%#+"$%5;$",%%-Q',.8$ %--()"/(#"%$%.8$.%0,08

Page 22: Fun With Stamp2SX

!""#

#!5; @gSpqA JIFOrIOEP 5;4/"!#"#0,!% )0+'*%&*!"#0'" $$ "! @MGHrLGrHEP &*!"#0'" .%." 0(%<$%*%5; "0#0*!$%# 5*, ,+%$++ @ABCD C1 '$($$-0,!"/*%5; "'#".(/()*$*% '",- *#"#+"&,*'"5#$"5; 4#"#+"!- $!"'"!n-) #*!0,'

0'-) 0'!!'"5; '%%-4/"4$0(n()#")*'"5;"/!-"!) E FG2$H$!IF !(!"!*&"! J ,E FG2#$!'(!$HFG2 I5!'(!? $!!F !K2!LM"K2& >88 +H(!! #00%&(%< #"#+"'"%%11!23&/=b Tst !-'"" *#"#,**%5;&,*'"/&>b^bbb *%$!-4%!"'!5;#)!,+'*%.%."*#" %-,$ !()'"5;0'"%!- ,%4#"4/"#0&"!"*/"$'0,$#+"'"!- ,,'!-

#/ 6[6 ',*!#+"$($$ $"'"!5;($ 0%-0,$0)$0!&/$"$%5;)'$%.8$($ #MH"FG !+'*5! ? $HK$(!"!L& +2"E (, '"%-!&/%$!"*', $*$%$%-#0"

0%-!"/($% .0,0%'!"/*"%!"/,$0+)$%($ @$/7 >P 0%-!"/0,&/&'$%.(/ .0,0%'!"/%- '$'$%0*5; "!#0*#+"5;!4/"#+"4($!% @$/7 6P

Page 23: Fun With Stamp2SX

)$"% .(/0,!"/00*!4/"#+",4 @$/7 \P '%%-0, #$($$0,!%-$*(0% $!%-$#[!0*5#+"!4/"#+" ,0*!!"/#- 0!-/%&#.-*!0*!4/"#+"$/5,)&'"

!

"

"

#$%

$#

&''(

)

#$%$$#%$

&$&

%(#

(% ) $**+++ ,$-.+%/##01$*

Page 24: Fun With Stamp2SX

!" #$%& ' ()*#!!()*()*+,& !+-% .& "/& ,! #0) 1# ()*-% 0& .2 #% 3 . -.1 .%%"! ) 4- + 4 1-#2*! 4 #% 3 5&- . ! .67-#- . " -7!-% +-%!

4+ - #8! 9:;<=>! <?@ABC! #$. + +)"#%(

4. #D!EFFF!#$ &-%. . + !G@H@II@J! =KLM!4# & . "/ -%*!7!, !&#%(!" "&+&..! 4 .#$ 2*-6 + &N!! 0+#- &2*!#$2* 661&, 0+#- 1 -%4 &! " . 4 O 66!.! .+ . + .#- .. ! .",4 &-

!- ,#1-# 2*! 9:;<=>! =K?PHBHP?PHC! &! 04+#- &2*1 &! O%&- #8 .#$ 4 #- !9BHQRH@AAPHC! -!9PASI@?QHC!-.. &!! .

Page 25: Fun With Stamp2SX

!

+- #8."! ! , 0O#- &-! -%1 .- #8., .! ! - " +&,.- #8#*3

O#- + - #8%441& 2*.! 6) &!TUVTF! ! .-%&,! -.% 0#4&! . +#- . !!+3% ,% + - #8!!&W%- #8!X<Y! 0) !EZ[ZZZ! 2*.

! - #8!X<Y!6) O+)"&!G@H@II@J!/ !- .% +&

0 ! ! ..4 !% 67-O,-7! -... & !\F!]/!&#$ %#% 3!X[^ZZVX[_ZZ!9-##% 3! ^ZV^\! .]/C! . . .&- #8!X<Y!&%#$2% .4.!& ") & O- - #8! X<Y! +)"#%(!2 . !G@H@II@J!*!7!, !&!1&!`V<?@AB!,0&+)"

- #8!X<Y!]4! 0 & &- #8X<Y!9:<X<YV=>C!-. .7" !a\b!++!XE!."!#!TVE!-& %&+ -%&+4 .+ !`V<?@AB!!+3% !TVE!#$ 1#41& + - #8!X<Y!!%&+ " &+ !`V<?@AB!- #8X<Y! 0.& ! !"#$%&$'()*'(+,- ).$"/%01% 26) & &*! 7! , ! &!&& !:;<=>! <?@ABc@KS@I!bXMZ!9#$2* d*C!6+ !G@H@II@J!!eeeMB@H@II@JMLQA!6) + G@H@II@J! &1+ + - #8. !" . 4 ! ()*- #8#4 1 . N! ! " 67-4O&&&7

%,&.! 4 ! V<?@AB!% - .4 .1 + &!6) -%4 &- #8!X<Y.0) " & . "%4- & 4 6) O+)"&*!7!, !&!4.

Page 26: Fun With Stamp2SX

"

!"#$%&$'(%)&*% +,-

" !.#$%&$'(%)&*% +,-

/0. 12' !3#$%&$'(%)&*% +,-

4560 3 (7%60 !8#$%&$'(%)&*% +,-

9:,988,": $%'$%$;

<84" =>?@<842A@

B"" 12'CC1D,EFGH

4II560 ". (7%D,EFGH

05/"3 ?=J

!

!"#$#%#%&'()*+,-*./!0122!3!45!6789:./!;/! </=>7+777.?!10@!A!B/!!CDB/E./! ?!>FGHB IJB/B/<GH;HCJG ED?!!BK01HCDB/E./! ?!HB2D!EHB B!EHLME;HC!>7 N EHC>77+777DB/E./! ?! OH DB/E./! ?!.C PQ)$#R)ST#UV-8WFX H B IB/> H?!D1;.B!?!DBG <FOH?!D1;10/H HLMEY6Z!<F6[-3<?!!<77µ-GDC K0B1./=B!\V]O?!D1C!/GDCG <K0! ?!/\!\>FB?!!< !1DK 1C I\BHC1MBX+J<>F!./!!! B!E<^_^B!O7[-_O7[-!!1`ab<^G/!C;HCGCE./!!! B!E<^_^\CB\BJ!P"7]c<"J]>6WF7[-_F7[- HLC@!/<!?!!!CC>*c&>*M/

Page 27: Fun With Stamp2SX

#

!""#$%"% " &'()*'"+',-)./01

!"+ 2 $#$ 2

#!"+ 2 2 2#$

3!""

!"$#$ &'()* !""#$ &'()*

$ "!4 56

#3

%"$$+5 &'()*"""""4'78'2%&'9 µ:;

"'8-<7=7><'

!"#$"%&'"!$"(()%*+

#3 "6?' """

%+#"

+%2#? +%2#%## # # 42+%

+%2#

+%$%## % '"42'@'%

#"+#

AAB"3'"+#'8C@'2% '9 µD;

,,-. ./

3 3B3'*-E8

$ 4

F3

,,-

AAB'GHI''@' 2

AAB25'E'4'('J'6'8-@(CKELMNO

"+$3P#+$3$'QR

AAB'STIU'4AAB3V% W

"4!" 3

!"3! 'X-@-E'4'Y-L-E' ')

"4!" 3

!"3'! !" 'X-@-E'4'Y-L-E

"

01-./2/3

!B'%#""Z'9E<' ";'"

'%#"$ 2"

"4!"2 'E' ' #'(

!B" W#

[!"

/

" 4'" 2

#!"$" '!"\

J

+""]+!"" 24# B%25'9R^)_XY;' %B

"45 !"'E<'

01 .

" !"

#A!"'E<'

! '9:XS;' "$

"#3F34$3F3

3" "$

$25"4 AAB3#J'8->E(C7MNO

3F"$!4'`E`

F3

3F"$4'`8`

AAB"'"+#'8C@'2% '9 µD;

!B'%#""Z!'9E<' ;'"

'%#Wa "4$"

"4!"2 5#'E' ' !B#'(

B25'9)_XY;' %B

'9^Q;' "$

"!5b-'9*^Q;' "$

"#$%& '()&*+,

Page 28: Fun With Stamp2SX

$

"#$"%& "'()*+,-./0/12345/6/

- "&- 1-%+#- 1 + - #8!X<Y!2%%&,!!&- !;YVX<Y!&&4 .+" &+ - #8!X<Y!6) "4! V<?@AB!-"+ -%1#3] ! ..%#$!fgh[!4[! !% +-%,## ! &. & &

0/16/!" /#! TVX!-& *3% 2+ &!;YVX<Y!. 3-& #

TVT!6,,!<iE!+&!X^!+4 !`V<?@AB!& .7" !a\b! 1 7" !9HPRSI@?QHC!++!XE!4!jg<gk!9<\C!.++!XX!6 " &+ ! `V<?@AB!+! EV^!.+,! iE! 6) #$,-!h:VF! !4&. . 1 &&#- !! V<?@AB!-%+ ! V<?@AB!#-& . . !hPlSR!kPHA`K@I!+ #- - #8&&

!" #

$

%&'()

%

+ -./01 2,+,34%('/5'()&*+,6 /75 !44("18 !75/4/9:;<=>?=>("4/(18?@?A

Page 29: Fun With Stamp2SX

!

""

!!

"

""

"

"#$

!"

µ

%

"

#

!

"&

""

"&

"! &

""

µ

" %

4&(.8(8 2,+,

^;;/B!X!?!D1C1Md]R#[T`abJC/?!!0 1/!! ?!1C< /CC BEC11/!!B1 ?!!0 0?!X\C?!GJGDB1/; < \B!EC122!3>\C

1/!! .B!!DK`bVB11/; < \ I/ Ve\>\C / 1; EGB!>\C/ 1E>ZE+`abC!?!!< \CBD!1=1EK0BH !@!E>\C.;?!D1K0B\ 30!K0!\!GC`eb\+^G/ff

.;bg]h1/E?!D1K0B1./ K0C!/GDCG <K0!C1HLME\h]>FZ677[-GCEC/ ./.\HLMED.00Y6Z/ 1C1M/C1K0 i1! B!EC1HLME11M/

Page 30: Fun With Stamp2SX

0/1789:!0/.-%'! !fgh!&&#. - !_!& !&!fgh!" &0&

.++!GZVGm!.&%-!jEVj_!.!\EZΩ! !fgh!" !nEo! !fgh!&. . + !nEo! +!GZVGm

0/16;<+!GZVGT!4+!fgh!-! .! =>E! !pfqXZZT! &!+!GZVGT

%#4+,## -.!!2!=>E! *3%#$ -,#r&! & " 1) 0]]3%&-&! +3%1 0.& 4- & .!a\b!&!&"4+ +&EXb!&7" !=>E!!ab!& 2.7+ &!;YVX<Y! ,## 7& 1. + !nEo! ++ ! V<?@AB!..7"!"=>E! %#$! nZo! ) &2% #$&! + &..+1+ ! =>E!) &%-77s!

0/16;23/&!;YVX<Y! .+ &4 !_Ω! +&,.,#%10.&

]]3!>X!.!EZµt!!+4!GEX!#$-& ,*3%&.#%) + ! `V<?@AB! 0+]]3 +&,&! & . . +

0/10=>?@=A/+!G_VGEE!&#$+1!&.4&&#.&!^!! .

!X! 4-.%!) &2%!nEo!-.4-%++3% . &4&+)"! 6) %.*3%".! .#! 9BSIIVSBC! &.+) + +-%+) .7" ! a\b! 4!jqE!6) #$,.! MmuΩ!!9,!v!KP?eQHu!HPw`w?QH#$.+) + " &. ! .+ 4 &! +" -.!\!++)"#!& !E!+#$+. !#$+4 !. !,\!+.!^MmuΩ!%&!^MmuΩ!^!.+) . C

.) &%-1-.+! -%#s & %. 7" &&+)"++ ! `V<?@AB!" "#s .++ !`V<?@AB!..41& !& .!jFVjET!.!XXZΩ

Page 31: Fun With Stamp2SX

%

41"2%# . .4! %& ! nEo. # +!G_VGEE!+ !`V<?@AB! &4!%#$.+ &!&! nZo! 2%.4 &"! &11+)" ..%&1&, &7" !a\b!#x+)"+!G_VGEE!+3%40..!3 . !jFVjET!..++ ! `V<?@AB!%!-.&.&%-jFVjET!%4.#s "&

0/16;2 3+ 4!GET!&#-++ !`V<?@AB! 0+%-&!TZA;

6) . .+&%- 4.!!) . + ! "4!=>E!pfqXZZT!4.& +,## !" " 2!=>E! + 0) m! 41&!^! 41&#4+,## ! ! -% 4+! E! 41&! ! 7" +&&!ab! 2.7&!;YVX<Y!4.& +,##

+ . + ! nEo!+!GET! # +!m!+ ! =>E !fghF!%&. - 2% ! N!& &.+ !jE^!4&%--.!fghF!! + &!;YVX<Y!XXZb@L!\;!) 0#4&7 477s 1& .!UZZ!y

0/1;05A/*3%&.#%) - #8!X<Y!! 0#% ]]3%

&4+&& & (*4!j>k=cg! &4#%1V#%1+ j>! " !j>! 4-#. - ! 9fhjC!.. ,#%1. !>E!6) "4.!ZMEµt!&. !j>!"++!GE^

" .!jE^!.!XXZΩ!& + !j>-% 4&%-1+ 3&#%1+ ,#%1&

A0=BCA?D2CE=5BC654 ?&!;YVX<Y! &&+! GE\!4++& 0! &

04 .1#324+ -1 ! && #-+ ,! =h>!T!+!#%&+7" !a\b[!+]]3!GE\!-%+&+]]3+!GE\!".!jE\!&%-1V1+1#34 .&!" "#s &+)"&

Page 32: Fun With Stamp2SX

&

1#31 O+)"&*!7!, !&-% 0 .&,"! 3456B! &!f>h!-1 +&!EU!*!X&!-%788- 4 6!^^!1&

F1A3G&!;YVX<Y!7" -. .72&!X! !. -z%-&#

! iX! -% ,! iT! 4-#$-. .7! 34%-&#!- &%. &!hEVh^!&+"- & .!) 04 &;YVX<Y!%-&#+&!FVEXb! &+". ,&!"%& +)"&!>T!-%&]]3 0 &!>^!- & 1&"!ab!6) #4 +,## -%

- &!ab!%&&-%1 !a\b!&!=>X!!m_Z\!1+ ! =>X!.,#%1! !>\! ! 4. 0.- & .&&. % .!?H@Kw`PK?!HPwBQKwP!.!>U!4&]]3 0 -.7" !a\b

!+#- 1 + - #8!X<Y!"42*

.! &.#- 4.!1)1'( 9:;<#- "%04&. - #8.1 0) 4+-%-+#- 2*#$&&!!&#- %+#- 1&.&3 .! -%4&+#- - #8! ) .&.! #- - #8& & & !- #8 .-% +"!#- -%"#$- #8&!bXMZ! 2*0) 4!XM\!6) 0

>02C5/!46 !XZZc|!+)"#!2!<b;

!&" %#x&!F\~F_~cg~YG~XZZZ!!qk

!. - . !X^! %!-% ". 5&&!EZ! %

! 1 . . ! E!! 3 . 1 041#3-# !p<:!#$1 !9p<:!?Q!<PH`@I!BQH?!LQKPH?PHC!-&

Page 33: Fun With Stamp2SX

'

!;H/!5=)">%?''1)1'(@A$B#$%@ABC)'1

EME!+#&,!<?@ABg`?QHXMZ!%7!!<P?SB!w?@AB!P`?QH!MPJP!&"7"! &" #-

EMX!9C!'!D-E"*B?)*(FGHFIHJ9&" +!EME!&0 7+ &%&!&" !-+#&,!<?@ABg`?QHXMZ-&" 67- &" #- #%14! `Kw?Aw`@MPJP! &&"7" &"

EMX!9+C'!D-E"*B?)*(KLHMMMH!7!`Kw?Aw`eMPJP!-

. , ! + 4 & &" 67- "-!#- % .&" 6"3#$4&.!+ +""#&

=)$*B(?N+)O$PQHHRRR=<SST=U; &&7&" -! &"7" &" +

EMX! 0%#x& . &" 67- &" #- #%14 &" 67- & .!6) &&&6+ !c`LHQwQ?! . , !#]"% . ! 67-#%1N! %&" 67- "# 67-+

23!I;!A; EM!#r&#- +)" 4 !&#!<?@H?!!GHQRH@A!G@H@II@J!=KL!!<?@AB!P`?QH

XMZ!!:;<=>!<?@AB!P`?QH!bXMZ!%#x. + #- #!TV^

XM!# !g`?!!GHPPHPKLP!%#x. !BHPPHPKLP!+)"!-. !g`?QHQBPH@?`QK!#!<?@AB!AQP!@K!BQH?w!!hP@SI?!>QA!GQH?!-& !;pk!-%4. hP@SI?!GHQPL?!hQeKIQP!cQP!-& !cQ``P!& -& #!TV\

TM!#1 !i!# . &

#- - #8&!bX!& %&+#- +)". !!- !-#!!&[!##+&+ *[!##"+ . -& !6) 4 0& !&+# !g`?!GHPPHPKLP!!g`?QH!;BBP@H@KLP!& #!TVU

Page 34: Fun With Stamp2SX

C %5%6&'()&*' )'815& 4(D

!" #

$%&'()

$%&'()*

$%&'()

+,!-. /

012

3 104

5&

(6789(-:.!;<

= 1$(>?<@A

B%B$CB%B

&D&DE

&4& F

$%&'()*

& B$#GCG15&

(>H@<IA

>H@<IA

$&JKBG%(L)MN

$&JKBG%(L)MN

E %5 :FGH <!IHGJ %(% ) '()&* +,

K%5 :FGH 2!!IHJLI %('M 36&' )'8

Page 35: Fun With Stamp2SX

!

3 23!!3?6/!4BC/B1;!GJ654 K >>

4+ "!t`IP! & "

KVR4;UWVX 4 -7s + .

YVXZSV 4#r&-7s + ! 1!M:<Y! 04&!

[V 4)-7s + 4& ! 04&

[V\ 4)+ ! #4-7s +

]VXV<VY^_VU;:V 4 7 1! MPJP! + 6#- ++)"4 &!& . #r&#- - #8&+)"

<X 4 67!9-7s + 2*++)"C!&!

S;\VZSV 4#r&-7s +

9T 4#-

456GJ654

4+ "!9: %&+ . !g`?!.#"

`X:; 44 -++ ."!&

W 4&-. + + !!!&!

;a 4&+ !&!

\V 4 + && !!&!

VSVUSS 4+ " &-7s + !&!

ZX:HbVSUV 4-%-+ !&!

ZX:KVT 4+ .#!&! !"

<VcV<VXUV 4##-+ . N! + - #8& &!U!.

!""#$ $%&#'

Page 36: Fun With Stamp2SX

"

( )#*+,-# .%$/)#*+,!""#$ $%&#'

0121 34 5"# $%'

61721 8)#*+,9+%&%'

:1;<8;= >3=?28@AB8)#*+,C '

DEFGH<GI8@9/#J) #& #K'

0) - .. ! GHPPHPKLP! %4# + #- - #8&&-.4 ! #- %##-%. % & .-

4 B!<2GL9,M'(MN .!T!

EM !v!1.+ - #8!X! !9:<X[!:<Xg[!:<X<Y[!:<XG[:<XGgC!%4 .#1 ! !6) &!\!-1.+ - #8,&

+4- #8!X!9:<XC

-& 4- #8!Xg!9:<XgC

" 4- #8!X<Y!9:<X<YC #$%&'()*+,-./0.123/4

4- #8!XG!9:<XG'

"4- #8!XGg!9:<XGgC

XM;<v!1 &.&

TM! !v!4-#2*! !X!1.!G:;<=>!XMZ!-%!G:;<=>XM\!5678+19%3831:5;<*=>!3/4#$%&'?@*A38=1-

4!//4+ "!bWX! #$ 1&O-%4

- #8! ." "!\!

b`K 4#- ++)"! 04&!B

PVUd aXT 43+ #- .! 4 && .

&!C

Page 37: Fun With Stamp2SX

%#

JV;<aJ 4.+ . + - #8!&!D

4V^We 4&.- #8 ! 4 ".

hPlSR!kPHA`K@I!%#x+)"!&!E

:VXca 4- #8.1 !&!

"% !cPAQH!c@B!-%!hPlSR!." 4 -%#x. -& +)" .! "%-& .-& 0%! 9w?@?Sw! l@HC6) .&. + . + #- !#" " & ">PLu! <K?@J! % 04 &,. - #84 .+ -% 0&.&

Page 38: Fun With Stamp2SX

%$

($) !"#$%&'&() *+'

1?!/ !"#!$! %&$'((')*+*,+-..$/0-12

2%+345) 4!65$67!+-($8+,+89:+34$($8$!'/$

?D BC/B%

%12 2

;.4+#9:$!8,<$($8+,9.4=2;

>($8+,)3:--/?-'.,*'/$+-..$/0++,@A8$)$38,<$!4!48,

B/*C D+/E8,<$FC DG HIJGIKGLMHIHIN"O3+(9:($8+,)3:"#&$!$38,<$

0O2 *-PQ+Q>-%12 2$)R)"5/)3:1

2 ) $ !((8 2,+,

'4)3:$34-+&/)P4$9 *!"#)$ *"PQ+Q4!.$-5O,)<

Page 39: Fun With Stamp2SX

%

2+ '7M&%4342,+,(#&1)4'8318"&

!" #

$

%&'()

%

/4053/5./3

6/3789:/

6/3789:/1

/.3:

!.4+#9:$!!8,<$($8+,-%12 2"5/)3:1

;!4&S"!*+/T'/$+-..$/0++,@A

>.-! '4(34,=IJU9"#+$.,(*/<V$UWHLXY9+&/)3:+$5Z[L+*9UWHLXY

!"#$ %&'$( )*+% *,-./0*1 234 !56# 7886!689 0*1 !:;!:<=#

B)*+34'/$!4\$3

B +*9&+Q3S9#+-..$/0)3:"# &/)3:+$5]IHKMH +*9 D 2"5/)3:1>/?($ !"#$%& '()*7--)^LHI

Page 40: Fun With Stamp2SX

%

2 34() ('()&* +, 6&'()&*' )'8N+ !" #$ %&' ()'(&*+,-&.'

2C 'MO 'PQ("7) '()&*'R'()&*+,

B445!)3:+$5]IHKMH+*98,<$)3:!- '4+*9_GI=GF9=G9:\$)3:!&N5/)3:1B/?($ !"&+,#-+%.*7--))3:.^LHI

B;445!)3:+$5]IHKMH +*9+,#:'/$++, _D1 U= @HI`GLB5/)3:1a/?($ !"&'$/-(01*7--))3:.$^LHI

B>8$8,( .:234567839:;3b+/E.:" .!($cHJKGH&/.4!]Hd[efHILJ'/$+-..$/0++,*^LHI

BB/<V$Z[L/?!.-+#9:$!+-..$/0*/?!]Hd[efHILJ.($cHJKGH"5/)3:1

2E 'MO 'PQ("18"&75'7M&('()&* +,

2K 'MO 'PQ("40-?S2TU+VE

Page 41: Fun With Stamp2SX

%%

2W %5 ;IXYZ >IH J[ 'R%5) %4'()&* +,(#&1)4'8318"&\]3575&^(5&"&3%5$O 5 '4"#$&75# FIXYZ%5$'_ ]$6 /6&)

Ba.#,Z^ ^f--,12 2'/$.($+$-!]Hd[efHILJP 3+9:.#,Z^ ^f+/E.:"&$'((')*+*,+:$) "$!3(

B6/?($$5/)3:1g.!

P7:+.4+#9:$!=2;9!&$!65") .-.4+#9:$!=2;'4$3&$!.4=2;."5/)3:1

a+34'/$)*+34-4*+Q-"5/Sh$$5*.:)3:) (9 "-)7Sh$$5*'4 "$3$.<* d` +.$ +9:+-..$/0 2+,83+,) /*'/$$.<*d`+)!

>6$78!689!!:=$?>@8A B*,-./ (!689 0*1 8<(?C86D:#:=$?>A!6890*1 EF;8;:76G 7!#H !"!;!8: >

2`%55O&1('()&* +, %54(/'7M&#'P'8((8 2,+,4&$/OQ%5 !3(8 2,+,

Page 42: Fun With Stamp2SX

!

!"#$%&#'!%#'($) * !" +$%$%,-.%/,0123%-4033051%.06789%: ;;'! (< =:> % & !) : &+=?%@AB%= &#'($) * )#> + =C%D%+ %=)=+ !"#$%: E(+&F%: &* G":%,-.%($" ! H&&=:* < &&=:: + += F%;;'!($" < $" :% ;;':!" = =!($"I ($) * ! =!< (

: &#' # !)$% !"#$%#$& '())*+,-'./(*0(1())* '(+.2 /34

!" #$# %&$# '()* +,%),- ./()" #% !/0 " "0!"-123$# %&456%)" #%())7+& 89:;< =>??@;AB 13$# %& 4C6 %)" #%())7+ 89D>?=@=>??@;AB !"#$%&''%(')')(*+,&-).&&-')+/$!0'123/'%/$4%+/523 %- 1 7//#1$$#

Page 43: Fun With Stamp2SX

"

(=% JKLJMN%&+=?% @AB% < =(#=% =!

H% OMP% ! +=% .QR% % =% JK% < =(#=% =! !)

DIR0 = 1

) ! H!"=(= ) % ! !)

OUT0 = 1 < H%OMP%%JK

OUT0 = 0 < H%OKP%%JK

* %!$&"7& . 4)0&/6 $ 1.3 0* &" . 7 !$ 7) &$# #1 /&7"E'FG &# &" 0&,- $# 30 H3* IJK8"3BLMNOM8 %&.B7)PQRFS82##BTU17)0&/$

CV7W#%:XFAYZ[7)QGX'FG'V * " 0 " ! 0&#" 2* \GX'H'HV 0&#" "&$"-)//]&/"&#&$#7)7/&7"E $&" ^'V5_V"#7RF`0 " !8RF`ADF@?:Ya[D?A=D;b@?A@?B* 0&#" 0 " !

'VC3:XFAYZ["&$"-/+U U"'_/7W#%QGX'FG#%.Q'XC$ 'V' 7Q'XC/,* Q\c5'5CV`FG'VH$#2$7"W3

06'7+$(')82&"96$:$')(*.;/.'<2=+#;>?@A(;'$/. B22 ..$+ .;/.' <C= #; >?@A/ .&$/.D B22..$+ E/$$+E/$$ ,.$F&F$>?@&(

# $ !%&'(!)*+

Page 44: Fun With Stamp2SX

,

'*******************************************************' Program : LED Blinking' Filename : ACT0201.BSX' Processor : BASIC Stamp 2sx' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*******************************************************'$STAMP BS2sx'$PBASIC 2.5LED CON 0 ' Define P0 as LEDDELAY CON 500 ' Define DELAY as 500

MAIN: HIGH LED ' Set P0=1PAUSE DELAY ' DelayLOW LED ' Clear P0=0PAUSE DELAY ' DelayGOTO MAIN ' Jump to main

!"#

$%#$%# !"#

2##7%d55&&#& *"W0e$

!

-1 !/72fQNg$ 3cJOOIS$$-MAIN : TOGGLE LED

PAUSE DELAY

GOTO MAIN

Page 45: Fun With Stamp2SX

-

#.$)*+-'(

%)0&/C$#0&() 70* 21/ISh $#C"#&%- /IShi$#$ %)#. #/32$0 "2 "0!"$ 32$%&" hNj#" 7$%&T%)%&" JRcI

HVC#%.QHXC$ 7# 7QHXC/,* Q\c5H5CV`FG'*********************************************************' Program : 8 LEDs Blinking' Filename : ACT0301.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************'$STAMP BS2sx'$PBASIC 2.5DELAY CON 500 ' Define DELAY as 500DIRL=%11111111 ' Set P0-P7 as outputsOUTL=%01010101 ' Set initial value to P0-P7

MAIN: PAUSE DELAY ' DelayOUTL=~OUTL ' Complement P0-P7GOTO MAIN ' Jump to main

& '

$%#&$%#' !"#&

! "#$%&'()*+"&,# !)-"./0&1222234"5)6 &,#+7-'7 8

HV'$#2$7"W3

&F$>[email protected]$D!,.&GA

Page 46: Fun With Stamp2SX

/

.)#W 1)3$"-7"C/&"

,-32//&7"E'FG%)3/ .CXCk/&"$ 32$#) / ."l$ #/ "# *#7)2* / 0&#" $# $-

!"#$%&"'()

*+, -+,!'./ !$.'/

(0

! "-2$* 2# .)#W

#$ $ .l U!$/C2 l %$##&'$/_/&"!#( '$/i/&"")*$/Ck/&"2* '/"

! "

#

$

%

&

!

'

()) %* +)#*#",-. ).-(*/(.-0)1"2) 345 $/6"789#(: %(9(;"/7;(-%7/-

()* ()* ()* ()*

()*

()*

()* ()* ! ()*" ()*

()*$ ()* ()* ()*

()*&

()* ()* ()*!

()*

()*# ()*%

()*

()*'

()) %* +)#*#",-. ).-(*/(.-/<.#7/.)(-8(=>?$/6"789#(: %(9(;"/7;(-%7/-

Page 47: Fun With Stamp2SX

0

_VH$#2$7"W306'6+$&F$>?@AD./ H$+ .&CA82DH8I

$ 727$#&/%Pm P5 $ &"

%100000007) &n* /&"%OUTL=OUTL<<1 OUTL=OUTL>>1

!* /&"+ //.$&$# '#* /&"# //2$&$# '

#$)*(-'(

%)0&/ .0& -2,/3oo7)pp0* * /&" .l + 2* #32&$#%#&+ 2* #i$#,- ./ 7

_VC #%.QHXC$ _V' 7Q_XC/,* Q\c5_5CV`FG'*********************************************************' Program : 8-LEDs running light' Filename : ACT0401.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************'$STAMP BS2sx'$PBASIC 2.5DELAY CON 100 ' Define DELAY as 100

DIRL=%11111111 ' Set P0-P7 as outputsRELOAD: OUTL=%00000001 ' Set initial value to P0-P7MAIN: PAUSE DELAY ' Delay

IF OUTL=%10000000 THEN RELOAD ' Check last stage' reload when P7 had shown.

OUTL=OUTL<<1 ' Shift LEDs to leftGOTO MAIN ' Jump to main

9)-"$: ;-7 *<4 *-!' 68*;('6"7+83!27+' '78! ') 6")77)*./0&=12;( '7 ')* *)*->* '*8'(;(9*86"!?8@ +" 3!A $%#@$%# ' !"#@

Page 48: Fun With Stamp2SX

1

$%#A$%# ' 2) !"#A

#$)*(-'(2

0&() 7%&% _ $ #.$# 3 qJjVVVVgSGc7)3h\h0* 32$1) "0!"#%#&'&n73pp7)oo

dVC #%.QHXC$ dV' 7QdXC/,* Q\c5d5CV`FG'*******************************************************' Program : 2-ways 8 LEDs running light' Filename : ACT0501.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*******************************************************'$STAMP BS2sx'$PBASIC 2.5DELAY CON 200 ' Define DELAY as 200I VAR Byte ' Define I as byte variable

DIRL=%11111111 ' Set P0-P7 as outputsRELOAD: OUTL=%00000001 ' Set initial value to P0-P7MAIN: FOR I=0 TO 6 ' Set loop I=0 to 6

OUTL=DCD I ' Set bit 2^I=1, others=0PAUSE DELAY ' Delay

NEXT ' End loop

FOR I=7 TO 1 ' Set loop I=7 downto 1OUTL=DCD I ' Set bit 2^I=1, others=0PAUSE DELAY ' Delay

NEXT ' End loop

GOTO MAIN ' Jump to main

;(B! '> C$D '( -<(!9@E9"#F#37+"GH !

dVH$#2$7"W3>?@&AD./ H$!,.&CA82D8I.;6.D.'A.

0&3.% FOR I=0 To 6FOR I=0 TO 6 STEP 2

7)FOR I=7 TO 1FOR I=7 TO 1 STEP 2"W0e$

Page 49: Fun With Stamp2SX

77'(-I'8 "GJJ! )*" KLHFHM'(KNOFHM' '>6"+")*;-*)*"-I'8! &,#P34"5)6 "9(7 -I'" 6./0& ! *' !)-" #$%&=22222222 6"-)75;( '78+" *

$%#B$%#"/7C)"*. '(

#" $(#%'34%-

l %3#&0 '"#* 456/4C67"* /" #%2, LL%1,7$"#2* #i/&"%)32%3#"# # &$,-1,'ir'dk"#* 555555551,CCCCCCCC&%-3 7#/!2/&7"E'FG7$"#l $i/&" $ 7$WWISh" /0 "P5XPm$ .P5 ./&" 3"3!$2* IF`7) .Pm . /&" 3.!$2* fF`

&%-%,) 7$"#-2$ l $i/&" * %7%) .7$-)C7#2##0* 21 2U . $% %)2 7$W

kVC #%.QHXC$ 7QkXC/,* Q\c5k5CV`FGkV'$#2$7 :XFAYZ[7#$.W3 IShP5XPm

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Binary Counter' Filename : ACT0601.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************LEDs VAR OUTL ' LEDs on Pins 0 - 7CNTR VAR ByteMinCnt CON 0 ' Counter start valueMaxCnt CON 255 ' Counter end valueDELAY CON 500 ' Delay time in milliseconds

Initialize: DIRL = %11111111 ' Make all pins outputs

MAIN: FOR CNTR = MinCnt TO MaxCnt ' Loop through all count valuesLEDs = CNTR ' Show count on LEDsPAUSE DELAY ' Pause before next number

NEXTGOTO Main ' Do it againEND

Page 50: Fun With Stamp2SX

.

* &3ISh!"#%)$/2$%,/55555555%-%)&/77$* 5555555C8+,/CB1$555555C58/'B-%1,CCCCCCCC8/'ddB7))2#%)2##0* 21 2U7$W $%$7$".

Page 51: Fun With Stamp2SX

$%#D$%#EF3!10) )"!"7GH

#,$)*(&156

%#&30*-l / -2,/3 PKf+,* 3/ ISh%)1#/!## ISh$

mVC3:XFAYZ["&$"-/+U U"'_/7W#%QGX'FG#%.QmXC$

'*********************************************************' Program : Twinkling LED' Filename : ACT0701.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************'$STAMP BS2sx'$PBASIC 2.5LED CON 0 ' Define P0 as LEDI VAR Byte ' Define I as byte variableCYCLE CON 25 ' Define CYCLE as 25

MAIN: FOR I=0 TO 90 ' Set 0 to 35% duty cyclePWM LED,I,CYCLE ' Send PWM to LED

NEXT ' Do loop

FOR I=90 TO 0 ' Set 35% to 0 duty cyclePWM LED,I,CYCLE ' Send PWM to LED

NEXT ' Do loopGOTO MAIN ' Jump to main

')6--QQRSK!9)-"SK7&,#!;(-*)*#/0T8'*!*;<4U 6(RVJ1"34")*;( &,#+- *' ;4;(7)*' &,#+ "';7-+)

D ++8#+)#*9) !"#B

mV' 7QmXC/,* Q\c5k5CV`FG7#$#2$ :XFAYZ[

Page 52: Fun With Stamp2SX

mVH$#2$7"W306'+$>?@+ 6/'%(')82&!/'HJA/%K,$$"K*A/+ 6*A$,$

!/&!/'HJ .A..&A#$+ 6*A $,$&$.A/' !,

7132$##0&$## ISh $%CYCLE7)1" $.W DUTY0&"&23/.FOR

+","-+.2* "/0+ )/#32&$ %&.2* %& 4C6 ) )#1#/!$ 0* 32$7$ ) $ )/#$&%&" .`mXC7$#0e ##02* $&#"-+&" 7$12$&#"-+&2* /#&$)$/7$.7$ "0!" #%PKfU%). "1$&#"-+&"37$ "0!"U%) "2 ##)/#PKf7$$ /$&#"-+& 0 7) "0!" #%PKf%)" #% #1"3W0* $/##1.7)327$ ) "0!"-7 ,-$#

ID%* +)#*#",-. +)#) . 7*-% "/.)(-8(

01+.234

/&7"E 'FG 3PKf$ s0)* PKf$ .7//3$-

PWM pin, duty, cycles

$ pin* 0 " /&7"E'FGduty * "#7"-7" 5X'dd

"#32$$&#"-+& PKfcycles * "#732$%3#

/ PKf7"# $-

DUTY VAR BYTECYCLES VAR BYTEDIRS = $FFCYCLES = 100

MAIN: FOR DUTY = 0 to 20 STEP 2 PWM 0, DUTY, CYCLESNEXT

FOR DUTY = 20 to 0 STEP 2 PWM 0, DUTY, CYCLESNEXTGOTO MAIN

Page 53: Fun With Stamp2SX

"

#- $ 789:#:( ;<=>?@A@B=C

2%/&7"E'FG/ !70 #&%-%)&./ ! 30/* 2,32 4 62* 4 6$332-* qjStJRc7)&%-%)&"$# 7#/!2/&7"E'FG3&$#T) )2 %, 3-# * 2%2#) $ W.1/ %2#) $ &)""

iVC3:XFAYZ["&$"-/+U U"'_/7W#%QGX'FG#%.QiXC$

µ

' *) *JJ)H/* /6" 11K./+K. !1 1

+556789: ;<= 30 C30 - 1W 0* 2&$+2 #1 32 $#22 7)3 ##3//3$#* >?@ABCD3-32/3&$+2,2* #) )#32$.7//3$-

>?@ABCD%+ 6#E;/L&H&.+ 6/L!" 6+ 6/CLM!" 6+ 6/N%+ 6#E;/O0 " /&7"E'FG* $"-7"P51,PCd&H&.+ 6/O132$$"-7"5XkddHd$ C%)/ #5V_&&#&!" 6+ 6#E;/O" 2# #1/'VdMu132$$"-7"5XH'Lmkm

"# 3qjStJRc$-FREQOUT 12,1000,1000

%)3&$#1'Ld55Mu$# ##_55&&#&PC'1" 2&$'#11 7$$-

FREQOUT 0,1000,1000,1200

#1 #1* 'Ld557)HL555Mu%)W$# 7)2 2* / $"2* )$&32/2 !$3&$ 3$$ 32$2#1/5

Page 54: Fun With Stamp2SX

,

iVH$#2$7"W306'+$&DA;H$ H<,A=A:$&/$&P2QB$+

iV' 7QiXC/,* Q\c5i5CV`FG

$%#'$%#*) *JJ)H/* /6" 1!"#'

'*****************************************************' Program : Metronome' Filename : ACT0801.BSX'*****************************************************'$STAMP BS2sx'$PBASIC 2.5INTERVAL CON 500 ' Define INTERVAL as 500SPK CON 12 ' Define SPK as P12DURATION VAR Word ' Define DURATION as Word variableFREQ VAR Word ' Define FREQ as Word variable

DURATION=125 ' Set duration 50msFREQ=1200 ' Set frequency 3kHz

MAIN: FREQOUT SPK,DURATION,FREQ ' Send frequency OUTPUT TO P12

PAUSE INTERVAL-((DURATION*4)/10)' Interval time 500ms,Delay = 500-(0.4)DURATION ms

GOTO MAIN ' Jump TO main

LWMNXY;(+) <"VZ[\ 'J+''+ +' ! ']J+''+ +;)*$^0,%_`&'77 '#/%`0$.^34")>R !a]6"7 * ! *-!* 9*8!**6"

Page 55: Fun With Stamp2SX

-

#/$DE>FBG6%H% '%

2%1 $%3 qjStJRc &% i7#$# 2$ #13qjStJRc-#1"$"$+,-"-i#132/i"#"$"0*-l* $8\BL8hBL8SBL8qBL+ 8OBL8QBL8`B7)$.8\CB

vVC #%.QiXC$ 7QvXC/,* Q\c5v5CV`FG

vV'$#2$7 :XFAYZ[7#w &$,-%30

&%RRP H7$;A$ +,4''67AD$"K7A9.;$#/

'******************************************************' Program : Melody note playing' Filename : ACT0801.BSX' Processor : BASIC Stamp 2SX/i-Stamp'******************************************************'$STAMP BS2sx'$PBASIC 2.5SPK CON 12 ' Define SPK as P12FREQ VAR Word ' Define FREQ as word variableI VAR Byte ' Define I as counter byte variable

C CON 419 ' Note C FrequencyD CON 470 ' Note D FrequencyE CON 528 ' Note E FrequencyF CON 559 ' Note F FrequencyG CON 627 ' Note G FrequencyA CON 704 ' Note A FrequencyB CON 789 ' Note B FrequencyC1 CON 837 ' Note C1 Frequency

MAIN: FOR I=0 TO 7 ' Set loop 8 timesLOOKUP I,[C,D,E,F,G,A,B,C1],FREQ ' Get data from tableFREQOUT SPK,1250,FREQ ' Send frequency output to P12PAUSE 200 ' Delay 200ms

NEXT ' Do loopPAUSE 1000 ' Delay 1sGOTO MAIN ' Jump to main

6"+";(*)*) <" A "578 7-!"'!!'7;bbb@baaaa;<4->; ( !( * G+''+ +6"'*)7 ' ;( * ' 2 + *";( '78+"'* **8

$%#L$%#*) *JJ)H/* /6" 1!"#L

Page 56: Fun With Stamp2SX

/

C) <"cdefghfHij * ![\D MIDI MIDI MIDI Note Frequency Note Frequency Note Frequency C 0 8.1757989156 12 16.3515978313 24 32.7031956626 Db 1 8.6619572180 13 17.3239144361 25 34.6478288721 D 2 9.1770239974 14 18.3540479948 26 36.7080959897 Eb 3 9.7227182413 15 19.4454364826 27 38.8908729653 E 4 10.3008611535 16 20.6017223071 28 41.2034446141 F 5 10.9133822323 17 21.8267644646 29 43.6535289291 Gb 6 11.5623257097 18 23.1246514195 30 46.2493028390 G 7 12.2498573744 19 24.4997147489 31 48.9994294977 Ab 8 12.9782717994 20 25.9565435987 32 51.9130871975 A 9 13.7500000000 21 27.5000000000 33 55.0000000000 Bb 10 14.5676175474 22 29.1352350949 34 58.2704701898 B 11 15.4338531643 23 30.8677063285 35 61.7354126570

C 36 65.4063913251 48 130.8127826503 60 261.6255653006 Db 37 69.2956577442 49 138.5913154884 61 277.1826309769 D 38 73.4161919794 50 146.8323839587 62 293.6647679174 Eb 39 77.7817459305 51 155.5634918610 63 311.1269837221 E 40 82.4068892282 52 164.8137784564 64 329.6275569129 F 41 87.3070578583 53 174.6141157165 65 349.2282314330 Gb 42 92.4986056779 54 184.9972113558 66 369.9944227116 G 43 97.9988589954 55 195.9977179909 67 391.9954359817 Ab 44 103.8261743950 56 207.6523487900 68 415.3046975799 A 45 110.0000000000 57 220.0000000000 69 440.0000000000 Bb 46 116.5409403795 58 233.0818807590 70 466.1637615181 B 47 123.4708253140 59 246.9416506281 71 493.8833012561

C 72 523.2511306012 84 1046.5022612024 96 2093.0045224048 Db 73 554.3652619537 85 1108.7305239075 97 2217.4610478150 D 74 587.3295358348 86 1174.6590716696 98 2349.3181433393 Eb 75 622.2539674442 87 1244.5079348883 99 2489.0158697766 E 76 659.2551138257 88 1318.5102276515 100 2637.0204553030 F 77 698.4564628660 89 1396.9129257320 101 2793.8258514640 Gb 78 739.9888454233 90 1479.9776908465 102 2959.9553816931 G 79 783.9908719635 91 1567.9817439270 103 3135.9634878540 Ab 80 830.6093951599 92 1661.2187903198 104 3322.4375806396 A 81 880.0000000000 93 1760.0000000000 105 3520.0000000000 Bb 82 932.3275230362 94 1864.6550460724 106 3729.3100921447 B 83 987.7666025122 95 1975.5332050245 107 3951.0664100490

C 108 4186.0090448096 120 8372.0180896192 Db 109 4434.9220956300 121 8869.8441912599 D 110 4698.6362866785 122 9397.2725733570 Eb 111 4978.0317395533 123 9956.0634791066 E 112 5274.0409106059 124 10548.0818212118 F 113 5587.6517029281 125 11175.3034058561 Gb 114 5919.9107633862 126 11839.8215267723 G 115 6271.9269757080 127 12543.8539514160 Ab 116 6644.8751612791 A 117 7040.0000000000 Bb 118 7458.6201842894 B 119 7902.1328200980

Page 57: Fun With Stamp2SX

"0

$%#L$%##$+#*!"#MN#(9.O

#10$)H7(

1,&%-$##.% "$" 7#/!2/&7"E/02w $ ."#1"$")$/"T) //3qjStJRc7)3IJJxRPU%)$#$"/UT/"y)3 $

C5VC #%.QiXC$ 7QC5XC/,* Q\cC55CV`FG

C5V'$#2$7 :XFAYZ[w %30

06'+$&DA;H$ H(.<STUUVWXUUYUW=A%K,$.&06'(.& E/H*A&PC$+ $,$&6;$% H(.' !,$DE/$$ ,.'A.

'********************************************************' Program : Simpe Melody Box' Filename : ACT0901.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*********************************************************'$STAMP BS2SX'$PBASIC 2.5SPK CON 12 ' Define SPK as P12DURATION VAR Word ' Define DURATION1 as word variableFREQ VAR Word ' Define FREQ1 as word variableSTEPSIZE VAR Word ' Define STEPSIZE as word variableI VAR Byte ' Define I as byte variableTEMP VAR Nib ' Define TEMP as nibble variableNOTE VAR Byte ' Define NOTE as byte variable

C2 CON 837 ' Note C2 FrequencyDL2 CON 887 ' Note Db2 FrequencyD2 CON 940 ' Note D2 FrequencyEL2 CON 996 ' Note Eb2 FrequencyE2 CON 1055 ' Note E2 FrequencyF2 CON 1117 ' Note F2 FrequencyGL2 CON 1184 ' Note Gb2 FrequencyG2 CON 1254 ' Note G2 FrequencyAL2 CON 1329 ' Note Ab2 FrequencyA2 CON 1408 ' Note A2 FrequencyBL2 CON 1492 ' Note Bb2 FrequencyB_2 CON 1580 ' Note B2 Frequency

C3 CON 1674 ' Note C3 Frequency

Page 58: Fun With Stamp2SX

"1

DL3 CON 1774 ' Note Db3 FrequencyD3 CON 1879 ' Note D3 FrequencyEL3 CON 1991 ' Note Eb3 FrequencyE3 CON 2110 ' Note E3 FrequencyF3 CON 2235 ' Note F3 FrequencyGL3 CON 2368 ' Note Gb3 FrequencyG3 CON 2509 ' Note G3 FrequencyAL3 CON 2658 ' Note Ab3 FrequencyA3 CON 2816 ' Note A3 FrequencyBL3 CON 2983 ' Note Bb3 FrequencyB_3 CON 3161 ' Note B3 Frequency

P CON 0 ' PauseS CON $FFFF ' Stop

MAIN: LOOKUP I,[G2,BL2,C3,D3,EL3,D3,C3,A2,F2,G2,A2,BL2,G2,G2,F2,G2,A2,F2,D2,G2,BL2,C3,D3,E3,D3,C3,A2,F2,G2,A2,BL2,A2,G2,GL2,E2,GL2,G2,S],FREQ ' Read notes tableLOOKUP I,[4,8,4,8,2,4,8,4,6,2,4,8,4,6,2,4,8,4,8,4,8,4,8,2,4,8,4,6,2,4,8,2,4,6,2,4,8,0],DURATION ' Read beats tableIF FREQ=$FFFF THEN EXIT_LOOP ' End of song?FREQOUT SPK,250*DURATION, FREQ ' Make sound from table with beatI=I+1 ' Increase index to next noteGOTO MAIN ' Back to play next note

EXIT_LOOP:I=0PAUSE 1000GOTO MAIN

$%#M$%##$+#*!"#MNO

Page 59: Fun With Stamp2SX

! !"#$"%

&'(')*)'+,**-.$./-01(12''"1".$3)*0'()"%(&'('+**-.1"0"41$+*-'$+*-5.1)1$)40-!1+*061-() !*-5 789:;<=>

&'('*) &+)*- "%)1$)? @AB

$1"CDE1 &'.))*1)!%1F(5'.5""%%&& $.

GH.5)1)*310$'1$5..5*?7IJKKLJI !" #$$%&'( !" && (') *+, -"$./ 0

!"#$ %&'(

&1234+56Ω7010*&'(')*01M%"@GB(51.1(5 %(5 "%.)*5('(" @AB &'?5.((5 *-5

H .5-)*1.5 010*"&(%33N1')?.)*+ .5$N.')*1$'$"%33N')

Page 60: Fun With Stamp2SX

"

()1$M 5".11"DO*5"M%1)*0'"% &PQRRSO!11)*0.5 ((.$(..*-

!"# 1 )*()+*-5

!"#$ %& !'"$()&* +

'&'()TALTU+)*-%1.5 *5*?)1)*0U5.)1$&.10$.(/()(

DIRA = %1111

"&(.5+&'(')*-.V24/)TULTA+*-&'.( )!%15"F(5&'(') TULTA +*-&'()'1(5 ()40"%+.)*0W5(&'((5"*-))*05(1 .X')*01$'$(

$%&'$("1"%((10"%+%&'

-!*-*06 5 ((.$( 5&(X !"5 (5$'1$($"%"(.5 5(1$5.."5 &.5& TYZ *+5 '13$..$ $(F @'5$/B %[($(5$&& \E]^SQR *(1

Page 61: Fun With Stamp2SX

!"##$%&'()%*'+'++,%))%& -./.& ( ##$%&/ 01

## $ !%&''&%

!

"

#

$ % &

'

)*+, - +. /0 1)2-)3+". 4 #) 5+"56 "#)

)$2232 (' 452262

7-)"889+. -

$(#

$( $( $( $(

$($

$(

$( $( $( $(

$(%

$(! $( $( $(

$(&

$("

$( $( $( $(

$('

)*+, - :;+)< =/> 1)2-)3+". 4 #) 5+"56 "#)

Page 62: Fun With Stamp2SX

223 ,.-522627 (89)5:;22<23=!"

223>')--8.?6!@ABC''()!2D7,%)EF,GHI

'$STAMP BS2sx

'$PBASIC 2.5

'*********************************************************

' Program : Basic input output

' Filename : ACT1101.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*********************************************************

DIRC=%0000

DIRA=%1111

CHK_KEY: IF IN8=0 THEN LIGHT

DARK: LOW 0

GOTO CHK_KEY

LIGHT: HIGH 0

GOTO CHK_KEY

! "#$$$$% &'()!*+,- ./0.11 2( -3&4)-4&536%./565, &&'()7*+,- .$0.82(5,5-9,./)2:$;%<)*+=%5-)49> %<)9<)3 4=5,)??@'5:$;%'5<.$',93 4-ABCD 5,, 3) EFGH %)??@'5 :1; %'5>< .$9 56-ABCD=5,, <5-9,3./3949> >)=5,3)??@'5:1;<3.$' '33 4&./2'5:$;

1 7 1889+. - 22

Page 63: Fun With Stamp2SX

(

# $ !))*+

J/'()'+..822J7 *%/'DD,+*/K. -.%'(),82',%)EL*GHI,%)E2 !"7'%,7,7'()8%'()'8J4 !"**'+* +%M))%&,E<*E2+'%/'()'7J4K*+ 7*J'()'J4+K*.8 47

)$2 32 (' 452 62

7-)"889+. -

2 3 ,.-52 627 (89)5:;2 <23=!"')--8.?6!@ABC2 3N'()!2D7,%)EF,GHI*+IOPQR;OSB?TAU

!"#$%&'"#$( %) *+$,"#-+./01 2.345678 9 :); :!;

Page 64: Fun With Stamp2SX

,

171889+. -

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Switch-controlled light' Filename : ACT1201.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*********************************************************DO

DEBUG HOMEDEBUG ? IN8 ' Display value of IN8 and IN9 on Debug terminalDEBUG ? IN9

IF (IN8=0) THENHIGH 0PAUSE 100

ELSEIF (IN9=0) THENHIGH 1PAUSE 100

ELSEPAUSE 100

ENDIF

LOW 0LOW 1PAUSE 100

LOOP

2 3V'()! D7,%)EL,GHI*+IOPQR;OSB?TAU

<"#$%='"#$( %! *+$,"#-+./01 2.345678 9 :); :!;

7?":+1+;+ =@ABCD@E'$F&G

Page 65: Fun With Stamp2SX

-

# $ !))*+ ....

22*2 D7/##$%&'()*%'.'() J*)%&K*8// W<X )%&W2XK'()' 7%Y-,7-.J* ('()%.'.' )%&W2XW<X/8'*.'()/8*.'K'() Z@[RRUO\]?@^_`

)$2>32 (' 452>62

7-)"889+. - 2>3 ,.-52>62 (89)5:;2><23=!"'$STAMP BS2sx'$PBASIC 2.5'*******************************************************' Program : Toggle switch' Filename : ACT1301.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*******************************************************LED CON 0 ' Define LED as P0SWITCH CON 8 ' Define SWITCH as P8 inputSW_VAR VAR Byte ' Define SW_VAR as byte variable

LOW LED ' Off lightMAIN: BUTTON SWITCH,0,255,0,SW_VAR,1,TOGGLE_LIGHT ' Wait for switch is pressed

GOTO MAIN ' Jump to main

TOGGLE_LIGHT:TOGGLE LED ' Toggle light statusPAUSE 200 ' DelayGOTO MAIN ' Jump to main

1 7H 1 **.6I) )))

Page 66: Fun With Stamp2SX

(/

2>3>')--8. ?6!@ABC

2>3N'()!2D7,%)EF'.,GHI

!"#$%&'"#$( %)

2>3V'()!2D/,GHI

"#$( %)

*% - (/=a;;b1 '()-./%) cOUAd

VVD7.J78-DJ.'D)/.4

4 (/BUTTON pin,downstate,delay,rate,bytevariable,targetstate,address

//,'()%&J e*%'()D)ZP[QT^O`-./* !"##$'()DZAQ@[6SOCOA@` **-8.*&J&f/8' @ASRO@\@A@O -.'##$/.)J 9W<XW2XK8

(,,%), !"'()

! " (J*'()J4W<XgW<X'()>*+"#!?+@$+#ABW2XgW2X,7,%)'(),7

"#!$ (*.*,(''*##$'()D './'J<*8##$''() ##$'()D/8+%8J/cOUAd VV*h#8*8##$'()D

%! " (',' *'##$'()D

&$ "'!%!&#"/* < (/=a;;b1/

!%(" ! " (8,,'()W<Xg8'()W2Xg'()J4

!%" -**-8J&f// @ASRO@\@A@O

Page 67: Fun With Stamp2SX

(#

!"#

)*+,-+-

'(). (.4'i8'()2/##$%)'()*'24/'()8/+%/=a;;b1*/.))/%')'/ /.)*'jkJ/.)/8''*.*8('/4'j'*%%)D/=a;;b1KJ (8

)"J9#889+)-) ;K2LMANBFO@P

/=a;;b1J4 ( -4 '4*//=a;;b1*'J*,,,'//c[]T\@A@O/=a;;b1*eD)'()J''/.)*/ @ASRO@\@A@O8'2-**-8.8' J/ @ARO@\@A@O < -**/J8

J'().//J*.4c[]T\@A@O/=a;;b1*''4,-/'//cOUAd/=a;;b1**&*&8' @ARO@\@A@O*//*/,'()J4D/J'()..4l'*c[]T\@A@O/ =a;;b1*'/' SA@O %*&/ */,'()'./.)/i/.)),/%')'*.'()*-'%

Page 68: Fun With Stamp2SX

(

#" $ !0*+123

*/'4/'() '+',/Emn%''()89 Zc?BBOS\]?@^_` -. !"*/'()'' J4*+88/'/&/'',GHI'.,/Emn%. (/n01*n5"%,,,/8./Emn

89 (GHI'78J ('8/'/&89848-.*%',-*4 -.##$)%&,%), !" 8 ( /'/&D7* (j* 'K)%

)$2N32 (' 452N62

7Q- ;6I1)2R$ %&'(

2N3 ,.-52N627 (89)5:;2N<23=!"

Page 69: Fun With Stamp2SX

(

*%

J('' 6GHI8//-./4FOR N=1 TO 3/

'***************************************************

' Program : LED Dimmer

' Filename : ACT1401.BSX

' Processor : BASIC Stamp 2Sx/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'***************************************************

LED CON 0 ' Define P0 as LED

I VAR BYTE ' Define I as byte variable

N VAR NIB ' Define N as nibble variable

CYCLE CON 25 ' Define CYCLE as 25

SW_UP VAR IN8 ' Define SW_UP as P8 input

SW_DOWN VAR IN9 ' Define SW_DOWN as P9 input

MAIN: IF SW_UP=1 THEN CHK_DOWN ' Check SW_UP pressed?

I=(I MIN 1)-1 ' Decrease PWM if pressed, ,minimum 0

CHK_DOWN:

IF SW_DOWN=1 THEN SEND_PWM ' Check SW_DOWN pressed?

I=(I MAX 127)+1 ' Increase PWM if pressed, ,maximum 128

SEND_PWM: FOR N=1 TO 3 ' Set loop 3 times

PWM LED,I,CYCLE ' Send PWM to LED

NEXT ' Do loop

GOTO MAIN ' Jump to main

'%&443)-./',.I%-([email protected])<.$%-EL -) MN4K7D%<)&3))1B/',&4MN4KO% -' <)&)$

171 ;6IR)"*+. - K+:6**.* ST= 2 .

Page 70: Fun With Stamp2SX

("

# $ 04%56!

/('. J.4, !"?6!@ABC&$)%&)%&8 /'.' -.o%*,&$)*,##$.-% !"J/%&'()8-.8 4,..l*)/ W'.X

)$2V32 (' 452V62

µ

2V3 ,.-52V627 (89)5:;2V<23=!"')--8.?6!@ABC2V3>'()!2,%)EF',GHI*-%

@C#A"#D-+%)EF*"+:-; "#$( %&-9+"A@(G@+#:9;DH(++ @-+F#(G"#*-+FI+J#":-;-:;

J"#@+#A !""#$!%$& !""#'

7-22U;2"V+1)2R$ %&'(

Page 71: Fun With Stamp2SX

(

17122;2"V+**..*)2$ %&'(

% -*p)%&'./ba;Ea;* (/;bqqGH

J*,)%&

+ ..,7&*/)%.%p7j,8-//-)

7, +4.%$J7/'* 8 (

'***********************************************************' Program : Head or toe' Filename : ACT1501.BSX' Processor : BASIC Stamp 2Sx/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'************************************************************'$STAMP BS2sx'$PBASIC 2.5LED0 CON 0 ' Define LED0 as P0LED1 CON 1 ' Define LED1 as P1SPK CON 12 ' Define SPK as P12SWITCH VAR IN8 ' Define SWITCH as P8 inputI VAR Byte ' Define I as counter byte variable

OUTPUTLED0 ' Make LED0 as outputOUTPUTLED1 ' Make LED1 as output

RESET: HIGH LED0 ' Set initial value to P0,P1LOW LED1

MAIN: IF SWITCH=1 THEN MAIN ' Wait SWITCH pressedLOOP_: TOGGLE LED0 ' Flip 2 LEDs

TOGGLE LED1FREQOUTSPK,25,600 ' Make sound "TOK" on speakerPAUSE 20 ' Delay 20msIF SWITCH=0 THEN LOOP_ ' Loop until SWITCH depressed

FOR I=0 TO 49 ' Loop 50 times laterTOGGLE LED0 ' Flip 2 LEDsTOGGLE LED1FREQOUTSPK,25,600 ' Make sound "TOK" on speakerPAUSE 20 ' Delay 20ms

NEXT ' Do loopGOTO MAIN ' Jump to main

Page 72: Fun With Stamp2SX

(

/*.&) (J8 (8 -./'4 /##$%&'()'##$.'./rsHtba;J%Y W.X/'/&'.8-//-) D7J..8%.,.-//'J8

)$2u32 (' 452u62

µ

7W-2)+ 1)2R $ %&'(:;<XJ889+. -

# $'%'.

2u3 v-),.-52u627 (89)5:;2u<23=!"2u3>')--8.?6!@ABC2u3N'()!2

@+#(:K5LL5M6N4OMLL5/8.;*+$,"#$#+#+A+5P Q74O@+*RR,+(S # +++#

Page 73: Fun With Stamp2SX

((

'$STAMP BS2sx'$PBASIC 2.5'******************************************************' Program : Melody chime' Filename : ACT1601.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'******************************************************SPK CON 12 ' Define SPK as P12DURATION VAR Word ' Define DURATION as word variableFREQ VAR Word ' Define FREQ as word variableSWITCH VAR IN8 ' Define SWITCH as P8 inputI VAR Byte ' Define I as counter byte variable

' Note frequency tableC CON 419 ' Note C FrequencyCH CON 444 ' Note C# FrequencyD CON 470 ' Note D FrequencyEL CON 498 ' Note Eb FrequencyE CON 528 ' Note E FrequencyF CON 559 ' Note F FrequencyFH CON 592 ' Note F# FrequencyG CON 627 ' Note G FrequencyAL CON 665 ' Note Ab FrequencyA CON 704 ' Note A FrequencyAH CON 746 ' Note A# FrequencyB CON 789 ' Note B FrequencyC1 CON 837 ' Note C1 FrequencyP CON 0 ' Pause

MAIN: IF SWITCH=1 THEN MAIN ' Wait for switch is pressedFOR I=0 TO 32 ' Set 33 notes loop

LOOKUP I,[G,P,G,P,AH,P,C1,P,G,P,G,P,F,P,FH,P,G,P,G,P,AH,P,C1,P,G,P,G,P,F,P,FH,P,G],FREQ ' Read notes table

LOOKUP I,[1,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,2,1,2,1,1,1,1,1],DURATION ' Read beats table

FREQOUT SPK,390*DURATION,FREQ ' Make sound from table with beatNEXT ' Do loopGOTO MAIN ' Goto play again

%3 43)-./ &36&4 O/ % &./2('&4CJH!G2&- IF SWITCH=1THEN MAIN 2 & P0CQRST 4',33 5, +)93 UOVQW XYWZ[W\]^ QR_`Wa ',)',3=-<&)',4( ')' - &4LOOKUP 5)5,- 88 3,-(<&6'>5+'->)'&)36

17W12)+ R+-W

Page 74: Fun With Stamp2SX

(,

*%%-.8,/ /GbbwaE (.'-*/'

.'- LOOKUP I,[G,P,G,P,AH,P,C1,P,G,P,G,P,F,P,FH,P,G,P,G,P,AH,P,C1,P,G,P,G,P,F,P,FH,P,G],FREQ ' Read notes table

LOOKUP I,[1,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,2,1,2,1,1,1,1,1],DURATION ' Read beats table

'.'4 ''-'.FOR I=0 TO 32 ' Set 33 notes loop

'.*8%.>>'-

- GbbwaE*K'/'.'./'J,'lj% ')( 3VJ,7 8-. (/.&l/Zx`'(-. *

% -8/'/4$'.>L< 'Ias5;0b1J/

* '*,%K',7

Page 75: Fun With Stamp2SX

!

!"!"#!$%% & &' !( (## &")* +,-!.(!!/!"#'!&!*"00&*(!"1!"#2 3 145("6 26!

!"# !!$"%&''($)$'!' *!"!"$+ ,-./$!0!!"% 1 2 )3 &")$ & * 3 4!!$ 5 " !!!"% !6!78!7"64$!4"% *53 !7#99:" '" 5$!0 )!(!"'!%# #$))$

;<34!3 !7*&=;> 3 !*

"#$ %&'()*

µ

!"#$%

Page 76: Fun With Stamp2SX

+,

;<,"6!!$"$+""!"# !!$*&=;> *?3 %&)@=AB;C<D-.

'$STAMP BS2sx

'$PBASIc 2.5

'*********************************************************

' Program : Door alarm

' Filename : ACT1701.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*********************************************************

DIRC=%0000 'Port C group as INPUT

DIRA=%1111 'Port A group as output

CHK_DOOR: IF IN8=1 THEN OPEN

OUT0=0

GOTO CHK_DOOR

OPEN: OUT0=1

FREQOUT 12,10,800

GOTO CHK_DOOR

!"# $%&'()'*)+,-./01234()+56)'7 89:;;<=+('6+5$ >6'? &@, %A>>'? -./0123 ((BC$+;!"D%>E!:+)+DFC6(>6BD+)+>D@G=6A'5$+$'*)+C+&'()'*)+,-./0123H6>E!:C6(>6BD+A'

&'&'( )*

;<E 8!!$)F>-GHIJ4 5 6)@"54!;<K-') "6)@"5"!* #

!" #;<L -"!* #

$$%"&'()$ '*+,-!%.//!0%1!%.234(5678// -/ ,-- "!" 99:! #

Page 77: Fun With Stamp2SX

+#

"#+$-.#/

44!!$*&KLM?&"N !"# !!$''($)@& 8!" 8 $!"&$"$!!99:''($4 "#'& 7%5 O *'&PQR<<<S.BTTUU/$!0*&4!4!)@&*&$! 0?L*5$!0!!$""/ /4$!0"&$"$!7!) 5 3 4!!$ 54?38"8/ 0?#3 !V !''($!!$)3)$'!' *!"!!M@!""/ /$!0! 38$ 2))$ )#4!8!%W!!

X<34!3 !7*&=X> 3 !*

µ

+ ,-* .&' !"#$%

Page 78: Fun With Stamp2SX

+

&'+&',-* .' !"#$%/01

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : 8-LEDs random light' Filename : ACT1801.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************RAND VAR ByteRUNNING VAR RAND.NIB0COUNTN VAR ByteBT VAR ByteDIRL=%11111111

CHK_START: BUTTON 8,0,200,250,BT,1,STARTGOTO CHK_START

START: FREQOUT 12,1000,1000RANDOM RANDBRANCH RUNNING,[FINAL,ZeroL,ZeroR,TripleL,TripleR,FirstR,FirstL,BOUND,CENTER,LEFT,RIGHT,SepL,SepR,CoupleR,CoupleL]

FINAL: OUTL=%11111111FOR COUNTN=0 TO 3 PAUSE 180 OUTB=OUTB<<1:OUTA=OUTA>>1NEXTRETURN

ZeroR: OUTL=%11111111FOR COUNTN=0 TO 7

PAUSE 180OUTL=OUTL<<1

NEXTRETURN

ZeroL: OUTL=%11111111FOR COUNTN=0 TO 7

PAUSE 180OUTL=OUTL>>1

NEXTRETURN

TripleR: OUTL=%01010101

FOR COUNTN=0 TO 7

PAUSE 180

OUTL=OUTL<<1

NEXT

RETURN

Page 79: Fun With Stamp2SX

+0

&'+&',-* .' !"#$%/01

TripleL: OUTL=%10101010FOR COUNTN=0 TO 7

PAUSE 180OUTL=OUTL>>1

NEXTRETURN

FirstR: OUTL=%10000001FOR COUNTN=0 TO 3

PAUSE 180OUTA=OUTA<<1

NEXTFOR COUNTN=3 TO 0

PAUSE 180OUTB=OUTB>>1

NEXTRETURN

FirstL: OUTL=%10000001FOR COUNTN=0 TO 3

PAUSE 180OUTB=OUTB>>1

NEXTFOR COUNTN=3 TO 0

PAUSE 180OUTA=OUTA<<1

NEXTRETURN

BOUND: OUTL=%00011000FOR COUNTN=0 TO 3

PAUSE 180OUTA=OUTA>>1:OUTB=OUTB<<1

NEXTRETURN

CENTER: OUTL=%10000001FOR COUNTN=0 TO 3

PAUSE 180OUTA=OUTA<<1:OUTB=OUTB>>1

NEXTRETURN

CoupleR: OUTL=%00000101FOR COUNTN=0 TO 7

PAUSE 180:OUTL=OUTL<<1NEXTRETURN

CoupleL: OUTL=%10100000FOR COUNTN=0 TO 7

PAUSE 180:OUTL=OUTL>>1NEXTRETURN

Page 80: Fun With Stamp2SX

+1

X<, "# !!$*&=X> 8)F>-GHIJX<E-)"!%&2"!#*5X

, /&'(); < <+/ $ ,-#%""1%=>?$ %@?)A#%#") </)1%B$/>-"%CB$/%>-"CB$/%">-"!-1D1"'CB$/D1"'%>-"C B$ >-" !%E-

LEFT: OUT0=1

FOR COUNTN=0 TO 7

PAUSE 180:OUTL=OUTL<<1

NEXT

RETURN

RIGHT: OUT7=1

FOR COUNTN=7 TO 0

PAUSE 180:OUTL=OUTL>>1

NEXT

RETURN

SepL: GOSUB LEFT:GOSUB RIGHT

RETURN

SepR: GOSUB RIGHT:GOSUB LEFT

RETURN

&'+&',-* .' !"#$%/01

B'CI5=#C+'?G+$6J%B'CD% C6(B'C+I)'CC>E!:=DF.K% LM;" A C6 -./0123 ((BI++D%6%B'C+>CN65)'C+JB+I+A (4A 5C'<O":=PD(Q6+$%6F5 %B'C+>CN6@R)'CC'>QSDD+=C$+TS(BL<O"7

B'C+>CN65C+J=($4+5 D%=U=='?C5$ $4+$( 4(# N6DI$6$6 >B'CA+TT BA+'? '6$%C A>VC5$+

Page 81: Fun With Stamp2SX

+/

" # $ *23&23&

8 ?&"$"&**&$!0 4!"/*! "#)* ** )"N 8 ?&3 !!(3 *&)!'$ $74 " *)$'!' *!"!" %&43 !!!7"/"/*! *&''($)$'!' *!"! 5 4)"! !7**("!%&*&"&#"%&$ (!:1 )$'!' *!"!)$ 4"N !#(!:"(4 $!!' "%&"!&$ !* !#99:"*&$!"& $1$#!* 4! !!$"N '$***&"# 38"!( $' $!!4 " "%&38!" "$ 5$!!0!"N Y!!$

Z<34!3 !7*&=Z>3 !*Z<,"# !!$*&=Z> *?3 %&)@=ABZC<D-. 8)F>-GHIJ

µ

2 ( 3456*45*(6 !"#$%

Page 82: Fun With Stamp2SX

+

'*******************************************************

' Program : Roullette

' Filename : ACT1901.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*******************************************************

'$STAMP BS2sx

'$PBASIC 2.5

SPK CON 12 ' Define SPK as P12

SWITCH VAR IN8 ' Define SWITCH as P8 input

I VAR Byte ' Define I as counter byte variable

J VAR Byte ' Define J as counter byte variable

DIRL=%11111111 ' Set P0-P7 as outputs

RESET:OUTL=%00000000 ' Set initial value to P0-P7

MAIN: IF SWITCH=1 THEN MAIN ' Wait SWITCH pressed

OUTL=%00000001 ' Load first stage LEDs

LOOP_: GOSUB ROLL ' Call roll LEDs subroutine

RANDOM I ' Random times in byte

PAUSE 20 ' Delay 20ms

IF SWITCH=0 THEN LOOP_ ' Loop until SWITCH depressed

I=(I/4)+(I//8) MIN 32 ' Calculate random times

FOR J=0 TO I ' Roll LEDs as calculated value

GOSUB ROLL ' Call roll LEDs subroutine

PAUSE 20+(5*J) ' Delay 20ms and slower in every times

NEXT ' Do loop

PAUSE 5000 ' Delay 5s. (stop already)

GOTO RESET ' Jump to restart

ROLL: FREQOUT SPK,25,1200 ' Make sound "TIK.." on speaker

IF OUTL=%10000000 THEN RELOAD

' Check last stage reload when P7 had shown.

OUTL=OUTL<<1 ' Shift LEDs to left

RETURN ' Return

RELOAD: OUTL=%00000001 ' Reload

RETURN ' Return

&'2&'456*45*(6 !"#$%/01

$5>B'C=%I++TS4%B'C5C$+E;;9B+65I++#)$ +>TSA W5XYZQ[\YZZ[]"^G=(+>A $+N66DH>TS4A 5C'_%'6+E!:DF.K+A'+>C' C6($I6%_X4(A N66DH>

Page 83: Fun With Stamp2SX

+

E<E*-*& #![X"!* #!$!$- <,/ "1/ $!$&'()F*+G/

%,?$-" !H,?$- 99:!" # !$%"&'/$&-/ $,";"1 $,!,--A/ !-1 <%

@!"#%!$ ;%=/ <//-= =;%:'!'; < #!"-/ /,- !",

3 !!$3!( $4 '!5#! *&48('&R=SQ\8!""]' *&3)$ & E, )$ " ; ' :4' ( $7(,LL$!!$3 !!* I=(I/4)+(I//8) MIN 32 )_,LL`Kab_,LL``XacdEbXe ' 5)"N ! 7M?&$' "&$#?5 "!%&2 $'7:L,C*38' "8 !$"&$' $#?5 " %&

3 !!$) !!$3 *&*!"& $"N !!$ RQ*38$!0"!3 3 '!5 2 ))#?5

Page 84: Fun With Stamp2SX

++

",$42

3 4!!$ 54"&$"$(!:!99: ("#) & '%"&$"N K 0?$ 4"&$4 $#?5 /$!03'$!7%5 O "$3 4!!$*& $"#$4! (*&"&$$#?5 )3 4!!$"N !!'! f8"g8!%\hijklmjn*&!!4(" !#" 2)K " "%" )!!4" 5 2

,C<34!3 !7*&=,C>3 !*

78 9:4 *45*(6; < !"#$%

,C<,"# !!$*&=,C> *?3 %&)@=AB,CC<D-. 8)F>-GHIJ,C<E**

, /$&' %/ &' </" ")1 &'()!%E-/ </-"!"!$ % <,!</;- <<I!JKLLMNOLLPLNC M5LK563MLKC Q3MROL SLOO T3NN3UM V78UNN3WOL !"% &'()C(XC(Y(I , &' / !$!! </

µ

!" #

$ %

$ %

$ %

$ %

Page 85: Fun With Stamp2SX

+

&'78&'9:4 )*78/01

'$STAMP BS2sx'$PBASIC 2.5'***************************************************' Program : Melody Box' Filename : ACT2001.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'***************************************************SPK CON 12 ' Define SPK as P12DURATION VAR Word ' Define DURATION1 as Word variableFREQ VAR Word ' Define FREQ1 aS word variableSTEPSIZE VAR Word ' Define STEPSIZE as Word variableI VAR Byte ' Define I As byte variableTEMP VAR Nib ' Define TEMP as nibble variableNOTE VAR Byte ' Define NOTE as byte variable

' Note frequency tableC2 CON 837 ' Note C2 FrequencyDL2 CON 887 ' Note Db2 FrequencyD2 CON 940 ' Note D2 FrequencyEL2 CON 996 ' Note Eb2 FrequencyE2 CON 1055 ' Note E2 FrequencyF2 CON 1117 ' Note F2 FrequencyGL2 CON 1184 ' Note Gb2 FrequencyG2 CON 1254 ' Note G2 FrequencyAL2 CON 1329 ' Note Ab2 FrequencyA2 CON 1408 ' Note A2 FrequencyBL2 CON 1492 ' Note Bb2 FrequencyB_2 CON 1580 ' Note B2 Frequency

C3 CON 1674 ' Note C3 FrequencyDL3 CON 1774 ' Note Db3 FrequencyD3 CON 1879 ' Note D3 FrequencyEL3 CON 1991 ' Note Eb3 FrequencyE3 CON 2110 ' Note E3 FrequencyF3 CON 2235 ' Note F3 FrequencyGL3 CON 2368 ' Note Gb3 FrequencyG3 CON 2509 ' Note G3 FrequencyAL3 CON 2658 ' Note Ab3 FrequencyA3 CON 2816 ' Note A3 FrequencyBL3 CON 2983 ' Note Bb3 FrequencyB_3 CON 3161 ' Note B3 Frequency

P CON 0 ' PauseS CON $FFFF ' Stop

DIRA=%1111 ' Set P0-P3 as outputs

MAIN: TEMP=NCD(~INC&$000F) ' Get inputIF TEMP=0 THEN MAIN ' Wait for switch pressed by TEMPOUTA=DCD(TEMP-1) ' Get switch inputI=0BRANCH TEMP-1,[SONG1,SONG2,SONG3,SONG4] ' Branch to song 1-4GOTO MAIN ' Back to main if inputs not valid

Page 86: Fun With Stamp2SX

,

&'78&'9:4 )*78/1

SONG1:LOOKUP I,[G2,BL2,C3,D3,EL3,D3,C3,A2,F2,G2,A2,BL2,G2,G2, F2,G2,A2,F2,D2,G2,BL2,C3,D3,E3,D3,C3,A2,F2,G2,A2,BL2,A2, G2,GL2,E2,GL2,G2,S],FREQ ' Read notes table

LOOKUP I,[4,8,4,8,2,4,8,4,6,2,4,8,4,6,2,4,8,4,8,4,8,4, 8,2,4,8,4,6,2,4,8,2,4,6,2,4,8,0],DURATION ' Read beats table

IF FREQ=$FFFF THEN EXIT1 ' End of song? FREQOUT SPK,250*DURATION,FREQ ' Make sound from table with beat

I=I+1 ' Increase index to next noteGOTO SONG1 ' Back to play next note

SONG2:LOOKUP I,[D2,EL2,E2,C3,E2,C3,E2,C3,C3,D3,EL3,E3,C3,D3,E3, GL2,EL3,C3,P,D2,EL2,E2,C3,E2,C3,E2,C3,A2,G2,GL2,A2,C3,E3, D3,C3,A2,D3,S],FREQ ' Read notes table

LOOKUP I,[2,2,2,4,2,4,2,8,2,2,2,2,2,2,4,2,4,8,4,2,2,2,4, 2,4,2,8,2,2,2,2,2,4,2,2,2,8,0],DURATION ' Read beats table

IF FREQ=$FFFF THEN EXIT1 ' End of song?FREQOUT SPK,250*DURATION,FREQ ' Make sound from table with beatI=I+1 ' Increase index to next noteGOTO SONG2 ' Back to play next note

SONG3:LOOKUP I,[E2,E2,E2,E2,E2,E2,E2,G2,C2,D2,E2,P,F2,F2,F2,F2, E2,E2,E2,D2,D2,E2,D2,G2,S],FREQ ' Read notes table

LOOKUP I,[4,4,6,4,4,6,4,4,6,2,8,2,4,4,6,4,4,6,4,4,6,4,6,4,0],DURATION' Read beats table

IF FREQ=$FFFF THEN EXIT1 ' End of song?FREQOUT SPK,180*DURATION,FREQ ' Make sound from table with beatI=I+1 ' Increase index to next notePAUSE 5GOTO SONG3 ' Back to play next note

SONG4:LOOKUP I,[G2,P,G2,P,BL2,P,C3,P,G2,P,G2,P,F2,P,GL2,P,G2,P,G2,P,BL2,P,C3,P,G2,P,G2,P,F2,P,GL2,P,G2,S],FREQ ' Read notes table

LOOKUP I,[1,2,1,2,2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,1,1,1, 1,2,1,2,1,1,1,1,1,0],DURATION ' Read beats table

IF FREQ=$FFFF THEN EXIT1 ' End of song?FREQOUT SPK,390*DURATION,FREQ ' Make sound from table with beatI=I+1 ' Increase index to next noteGOTO SONG4 ' Back to play next note

EXIT1:OUTA=%0000 ' Off LEDsGOTO MAIN ' Jump to main

Q $6%D6 BB'C(4+#(>A D%'(>$ N6C6 +4=A'5 5C6(6%D6 B5 H5++aA D6D%$=IC$6)';<C%D6 E!:(6C6 6 T5$+=

Page 87: Fun With Stamp2SX

#

*"& "$! 8 48^mhHGe! ! !7)3 4!!$*&X F>-GHIJ" !

*&!!$3 !!*QQop[4"8/ $' !$$ '$$!0#1q"3 "!& ,<L$!0#?5 !!*38$ )3"'!%&8$4(1'^e"N "%&$3 !!*

"3 !!$$!3'&A3 !"M' ,r!' (4"%&*38 8 #"*&" 7 3 #: 5 )

Page 88: Fun With Stamp2SX

"#$5(&..1

"N 8 ?&4!!$*&38"8/ 0?!34!"$ "& !!$''($*38) 8!%&!qO+38$ !34!" 8"3 4!!$*& ,C ""# !!$''($38$ /4)"N "'!%&!""*' '"sq8!%M"@"@ K

""*' '"sq8!%M"@"@ 5$!0!#?5 ))$ 4'&PRtQpB"4!' !*&"&#)$ 4"N ' '$0&8!%' # "3 !"" '& 7 PQR<<<S.B /4*38)"99:*&

,<34!3 !7*&=,>3 !*"# !!$*&=,C> *?3 %&)@=AB,CC<D-. 8) F>-GHIJ

,<,**, /$&' %/ &' </" ")1 &'

() !%E- / </-"!"$ %%-"!"C !"/C !">!!"%Z!!>' #"&' ()C (X (I,-"!"!$-- @-!%E!">!,-&'(Y <!"

µ

!"#

$ %

$ %

$ %

$ %

7 =6-6;' !"#$%

Page 89: Fun With Stamp2SX

0

&'7&'=6--6;')*7

'$STAMP BS2sx'$PBASIC 2.5'********************************************************' Program : Sound effect box' Filename : ACT2101.BSX' Processor : BASIC Stamp 2Sx/i-Stamp'********************************************************SPK CON 12 ' Define SPK as P12DURATION VAR Word ' Define DURATION1 as word variableSTEPSIZE VAR Word ' Define STEPSIZE as word variableFREQ VAR Word ' Define FREQ1 as word variableSWITCH VAR IN8 ' Define SWITCH as P8 input

MAIN: BRANCH NCD(~INC&$000F),[MAIN,BIRD,UFO,SIREN,LASER] ' Get switchGOTO MAIN ' Back to main if inputs not valid

BIRD: DURATION=50 ' Set duration 20msSTEPSIZE=25 ' Set step size=25 => 62.5HzFOR FREQ=2200 TO 2000 STEP STEPSIZE

' Make sound from 5.5kHz downto 5kHz step 62.5HzFREQOUT SPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopPAUSE 100GOTO MAIN ' Jump to main

UFO: DURATION=10 ' Set duration 4msSTEPSIZE=30 ' Set step size=30 => 75HzFOR FREQ=1200 TO 2550 STEP STEPSIZE

' Make sound from 3kHz to 6.375kHz step 75HzFREQOUT SPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopFOR FREQ=2550 TO 1200 STEP STEPSIZE

' Make sound from 6.375kHz downto 3kHz step 75HzFREQOUT SPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopGOTO MAIN ' Jump to main

SIREN: DURATION=50 ' Set duration 20msSTEPSIZE=10 ' Set step size=10 => 25HzFOR FREQ=1200 TO 2550 STEP STEPSIZE

' Make sound from 3kHz to 6.375kHz step 25HzFREQOUTSPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopFOR FREQ=2550 TO 1200 STEP STEPSIZE

' Make sound from 6.375kHz downto 3kHz step 25HzFREQOUT SPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopGOTO MAIN ' Jump to main

LASER: DURATION=5 ' Set duration 2msSTEPSIZE=20 ' Set step size=20 => 50HzFOR FREQ=2000 TO 3000 STEP STEPSIZE ' Make sound from 5kHz to 7.5kHz

step 50HzFREQOUT SPK,DURATION,FREQ ' Send frequency

NEXT ' Do loopGOTO MAIN ' Jump to main

Page 90: Fun With Stamp2SX

1

"$%&"!&$ 4!4!*5 K0307/4)&38" " !!$!4*5K4!uSA $4"]K $3!) 2#!!$'&DR=SAv

*"& ""@"@"N "%& 2

4" 0$!!$ ,#?5 )!!$4" 99:"#*&$7 " 0 --,M?& 7 #![X[Z!$ !!$/4* "%&" "#-,*&#![Z" " "N $4!* #'&SAM?&4!:"]' *&7*&("* 5

"N '& '97(##$7# d"$%&!*'& 5"$+,-.4!4#$7"#*& *'& 5 $3"N fg8!%)$ @-*&"N fg3"N *&$ '97(4 5 ' "&$8 ?& #$7CC*&"N fg$,'%E, *&$ '97('%E4)' E$"N K 5 84!*'& 54)Y$"N K$!0' )!4 #$7 5*&"N fg3$ '97()! Y*&) 58 ?&/4*!*&"N fg*&$ '97(3 !:*&"N C*58$84!*'&SA4)' $"N C!!$ !* $ 5W1 = %1101 w '97(*&"M"N fg'%EDEBUG ? NCD W1 w' SA#x! #'& 5'% 38!!4# ##$7$!0*)"!/*&(4 8 5!3'&SA!4#$7x*38*!) #$73 x$# K

Page 91: Fun With Stamp2SX

!"#$"%&'

&()*$ "!+*,-*#("!,./

012-'(3,+4 4 #% !("#!#5..12%% !!%&'4 #

, *(!#!) 6#&'3,+3$4!3,+*#(7(,&'4 #, # (&'"3,+-8!#3,+&"9,%:;<=>?@?AB<C<@DE<FGH

"9,3,+-8!-%4 ()%*(,*3&I JK3$-4!

-8!%%"#+$#L.MN )#%"9,-# ( $4%"9,%4"9,"3,+

O PQR..L I"9,"S-*&T%

-8!%%"!)&U0.M(&)&-# (3#%0..12*

% %#"V%"!3,+3&&3$-4!#4 3,+I "!3%3,*%*

(#-8!PQR..L-)3,+T/5

!""#$ %&'())*

Page 92: Fun With Stamp2SX

, I&'#4 J"WWV4N+3,+-8!-%#*,%X %Y')3,+

T/+ , ,("WWV"4 6#*(#4 JN 3$-4!4!%6% 4(3,+

K**%))% #*N #4!%6%3,+#*J*(

*%K*N 3, 3%+"*(,4!%6%3&3,+,,+

!% 4!" !#$%&'"&#( () 4!* !#$%&&'*+,-',4!%6%#*+, 3$4!%6%8&, *(*% IK* 4!%6%8&, *N-8!J#+!-4!, %*+

3$ #4!%6%K*+, 3$ 4!%6%8&, *(#% IK*

%% *N-8!4!%6%8&, J#+!-4!, #*+3$ %% 4!%6%, *N

I834Z[;:ZB\]^E[B^E@>_^E;`<BaH

-%, 3,+I%#-3, *(-8!"9,%

PQR..L 9N+3$"!#,# !%&

PQR..L#&#!% , %-)3,+T/L+!%-4!, 3$

$!% %,

5b$4-4!I&,!) c5d"3,+,*

ZFe

b*% #!) *c5d"%&!$%+fP;4gFhgJ"! +

"9,PQR..L3$J*( % *Ic.d3$-4!("4 6# , 3,+#)#

%& , 3,+#I4 )#J*(3$

( "+,-$#.$!"/0"#.

*. #.$#"1"/2 (3450 !""#$ %&'())*

Page 93: Fun With Stamp2SX

!" #$% &'#()*$+,- ./00 1+* #$'2

//3*)4//5 #

!"#$%&'()*

!

!" #

$

%&'()%

6(( "1$#77 .#.$"8!93:;<=

Page 94: Fun With Stamp2SX

+

//3/$&4//5 21+6#478//039:;&'#&+$ <5:=>?@

'$STAMP BS2sx'$PBASIC 2.5'********************************************************' Program : Switch controlled relay' Filename : ACT2201.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'********************************************************RELAY CON 13 ' Define RELAY as P13SWITCH CON 8 ' Define SWITCH as P8 inputSW_VAR VAR Byte ' Define SW_VAR as byte variable

LOW RELAY ' Set relay as output=0MAIN: BUTTON SWITCH,0,255,0,SW_VAR,1,TOGGLE_RELAY ' Wait for switch is pressed

GOTO MAIN ' Jump to main

TOGGLE_RELAY:TOGGLE RELAY ' Toggle relay statusPAUSE 200 ' DelayGOTO MAIN ' Jump to main

/6(( /"1$#77 .#.$>>?/8.93:;<=

//3#:,2A BC#*#A$ #$#('#+6A '* D #$

!"#$"%&'()*&"!&(+( ,!*-" ,(..& &"/,0" &

//3E:,FG F #$#('#+6A '* D #$

.(1 203 (1!!2

H**'A#I+/ #(1I'*'A#+

JH+*&$*+&A8KLL !MN! 4O FTOGGLE_RELAY: IF OUT13=1 THEN DELAY_OFF ‘ Check current state

DELAY_ON: PAUSE 2000 ‘ Delay 2 second (ON delay)

GOTO TOGGLE_NEXT

DELAY_OFF: PAUSE 5000 ‘ Delay 5 sec. (OFF delay)

TOGGLE_NEXT: TOGGLE RELAY ‘ Toggle relay status

GOTO MAIN ‘ Jump to main

Page 95: Fun With Stamp2SX

F(P /:; +*A Q() '2 G1R ST=U@@UV?W=WVX &$(*$ R 6*$+, &'#- ./00 &$* / ' 'Y'R&$H*'Z [[Q$ 65/55E#*R('R\I'1'+

/3*)4/5 #/3/AR*GR:8!BB!N]K8KN4;5/:;/3$&4/5 F&'#+$ <5:=>?@/3E:A$)A BCG*+* !"#(R

/,!2*0!456 73, % 89:4/,(0;*-<!2400 =/8"

!,"#$%&'(-.*..* /0

!

"

#

$%

6(* "#@#$/#$#A">>?/ .93:;<=

Page 96: Fun With Stamp2SX

/11

'$STAMP BS2sx

'$PBASIC 2.5

'-*******************************************************

' Program : 1 Phase stepper motor control

' Filename : ACT2301.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'********************************************************

DELAY CON 100 ' Define DELAY as 100

SW_LEFT VAR IN9 ' Define SW_LEFT as P9 input

SW_RIGHT VAR IN8 ' Define SW_RIGHT as P8 input

DIRA=%1111 ' Set P0-P3 as outputs

OUTA=%0001 ' Set initial value to P0*P3

MAIN: IF SW_LEFT=0 THEN CCW ' Counterclockwise when SW_LEFT pressed

IF SW_RIGHT=0 THEN CW ' Clockwise when SW_RIGHT pressed

GOTO MAIN ' Jump to main

CW: PAUSE DELAY ' Delay

IF OUTA=%1000 THEN RELOAD_CW ' Check last stage reload when P7 had shown.

OUTA=OUTA<<1 ' Shift LEDs to left

GOTO MAIN ' Jump to main

RELOAD_CW:

OUTA=%0001 ' Set initial value to P0*P3

GOTO MAIN ' Jump to main

CCW: PAUSE DELAY ' Delay

IF OUTA=%0001 THEN RELOAD_CCW ' Check last stage reload when P7 had shown.

OUTA=OUTA>>1 ' Shift LEDs to right

GOTO MAIN ' Jump to main

RELOAD_CCW:

OUTA=%1000 ' Set initial value to P0*P3

GOTO MAIN ' Jump to main

!" "#$%&'($")*+,-./01234 5($67($8$#$95667#:$$+;# <=>")*+%&?012@4 5($61%&'47($8$#$95665"5:$$+;)# <=($56A$

/6(* /"#@#$/#$!5#A">>?/8.93:;<=

Page 97: Fun With Stamp2SX

/1/

/3J:/A$)A B^G*+* !"#(R /,!2*0>&!456 73, % 89:4/,

(0;*- < !2400 =/ : ">?/,&()+7& @:A<

H GR'&$5#GA "! 4O D#+*#$GA #(#'GA#*$'+* A(#$#+A '* G*'$$)A'A S_UVW =WV`aUX

B(*8C"++-#DE"#@#$/#$A"#@!5#A"

B(* >""#@#$/#$.1 D$

%'2'% '('1$A%R #AG1 1A$ [[Q'*A$AH)*('+% '(A(',*$'12F$)A FA$+6'*A#b$ G#($'R(2F$)A &G*R#( &$ HA$'*'RG#($2F+*

&G*R$)&#A )9/5RF( #/A#( FA'#R A#(A%/6 F # FFE6G16c/c#(EA$#A#(1A$+6#F$'*RF2 FJ#(d$&$$JG1$A$+6#F$AQd$(*$+6#F$# F/AA #*A$+62('*R+*

% )A$ &$Z [[Q(*#G F#(6A#'2+#A$ +A*6A*$6/c#(E#*

Page 98: Fun With Stamp2SX

/1

# 6'A'1('*6+$ 6Ec#(/#*# 6G F*$# Z [[Q(*A '*Y'R 9/5# Z [[Q1 R'26

1P /:;1%GHA$((Q05/0?4 F2+AH+ R$)&#A+*&$(*A [[Q* RDA+,'1 (),2F(+,- ./00 $A)9/5/

$&GG*'$AA* R# eQ( F2A*)#+$ A - ./00G FA*)#+A#(R*'A##R*$AA*)#'RA+ FF1'*+, #(RH *)#+* A( *)#'AA+

#* R'G'2(A +2F$)A &G*#() 'G#($f3JYARH**'*'G*A #EC#)G+*G#1%#'2d0YG#($R'd0+*GAA ECQ g#6R #*R(%/AH*'*f3JYAR*A # FF^d#)' '*'G

GR'(2F$)A A*)#+$ #( H*'A*)#+*RAR('R2FA F $A+R RR* [[Q #A(*A 'A [[QR+R('$' FF1 R+AH #(*A+*

B(*( "#@#$/#$#"1"/2(34 .%&'())*

Page 99: Fun With Stamp2SX

/1,

R6(# eQ(G#*$ '26$ FA6)#R Shaii T=U@XA(A [[Q(*$6$ F(Z [[Q(*+$ 6$)A#* #$ #($# +A$ '26 4/E5G1**$Z [[Q(*+$ 6 #(/* RR/(Z [[Q+$ 6/#(H 6(Z [[Q(*+6#(ERE(Z [[Q+$ 6E#(#*# +6 #(/G F *$ F'*+*'1G S=W`aUXA'26A*$G1 *# 2F

!2"#$%&'(-.*..* 0

6(F8C"++-#DE"#@#$/#$A#@"#A"

/E3$ *)4/5 #/E3/AR*GR:8!BB!N]K8KN4;5/:;/E3$&4/E5 F&'#+$ <5:=>?@/E3E:A$)A BCG*+* !"#(R

/,!2*0!456 73, % 89:4/,(0;*- < !2400 =/ 8 " "// @:..47!2 /, " )%?1/E3J:/A$)A B^G*+* !"#(R

/,!2*0>&!456 73, % 89:4/,(0;*- < !2400 =/ : ">?/,&()+7&@<A< "//@:..47!2 /, " )%?1

Page 100: Fun With Stamp2SX

/12

/ 6(F /"#@#$/#$"#A">>?/8.93:;<=

'$STAMP BS2sx

'$PBASIC 2.5

'********************************************************

' Program : 2 Phases stepper motor controller

' Filename : ACT2401.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'********************************************************

DELAY CON 100 ' Define DELAY as 100

SW_LEFT VAR IN9 ' Define SW_LEFT as P9 input

SW_RIGHT VAR IN8 ' Define SW_RIGHT as P8 input

STAGE VAR Byte ' Define STAGE as byte variable

DIRA=%1111 ' Set P0-P3 as outputs

STAGE=0 ' Set initial STAGE as 0

GOSUB DRIVE ' Drive stepper motor

MAIN: IF SW_LEFT=0 THEN CCW ' Counterclockwise when SW_LEFT pressed

IF SW_RIGHT=0 THEN CW ' Clockwise when SW_RIGHT pressed

GOTO MAIN ' Jump to main

CW: STAGE=(STAGE+1)//4 ' Increase stage within 0*3

GOSUB DRIVE ' Drive stepper motor

GOTO MAIN ' Jump to main

CCW: STAGE=(STAGE-1)//4 ' Increase stage within 0*3

GOSUB DRIVE ' Drive stepper motor

GOTO MAIN ' Jump to main

DRIVE: LOOKUP STAGE,[%0011,%0110,%1100,%1001],OUTA ' Get data

PAUSE DELAY ' Delay

RETURN ' Return

6:B ($!" "#$%&'5C 5D6B#6 $+$$+66 E 7D)F::* :*5($6 :*)G0H.&:"5"6:$D9:#$6#IJ $$:#6 $+$$+66$E

Page 101: Fun With Stamp2SX

/1

RF%+* G$1HA$'*RH'+*$A#($2F%AG#($R&$) '*'4/J5('R+*A RF%DD('A '2#(6 #AG1 FZ [[Q(*+$ #$6$#(* 6A#'2*$ FAD#'*+*'2F (($(' F#GH)*'A'2F$AA *A#(R('*D#$G2R F'*'*G#1%+RR(*''*'+/RA1

! " #$%&'( -.*..* 3*0-

6(G8C"++-#DE"#@#$/#$H$A"#@

/J3*)4/J5 #/J3/AR*GR:8!BB!N]K8KN4;5/:;/J3$&4/E5 F&'#+$ <5:=>?@/J3E# F E #* R #(D# !" FE A B05B

7/10()400 0; ))B -40>?7!&.!?.(1 !2/,)*0%.?"(17!&.,*&" ))() ))4-@"=!('/,.&()()400 ))@-%% !()

Page 102: Fun With Stamp2SX

/1

/ 6(G /"#@#$/#$H$A"#@>>?/8.93:;<=I/J

!

"

!

#

!

$

!

$

6(G "#@#$/#$H$A"#@>>?/.93:;<=

'$STAMP BS2sx

'$PBASIC 2.5

'*******************************************************

' Program : Stepper motor controller in half step mode

' : with continuous function

' Filename : ACT2501.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'********************************************************

DELAY CON 100 ' Define DELAY as 100

SW_L_CONT VAR IN11 ' Define SW_L_CONT as P11 input

SW_R_CONT VAR IN10 ' Define SW_R_CONT as P10 input

SW_LEFT VAR IN9 ' Define SW_LEFT as P9 input

SW_RIGHT VAR IN8 ' Define SW_RIGHT as P8 input

STAGE VAR Byte ' Define STAGE as byte variable

L_CONT VAR Bit ' Define L_CONT as flag

R_CONT VAR Bit ' Define R_CONT as flag

Page 103: Fun With Stamp2SX

/1

DIRA=%1111 ' Set P0-P3 as outputs

STAGE=0 ' Set initial STAGE as 0

L_CONT=0 ' Clear left continue flag

R_CONT=0 ' Clear right continue flag

GOSUB DRIVE ' Drive stepper motor

MAIN: IF (SW_LEFT)AND(SW_RIGHT) THEN MAIN_1 ' Check any switch are pressed?

L_CONT=0:R_CONT=0 ' Clear both flags if not

MAIN_1: IF SW_LEFT=0 THEN CCW ' Counterclockwise when SW_LEFT pressed

IF SW_RIGHT=0 THEN CW ' Clockwise when SW_RIGHT pressed

IF SW_L_CONT=1 THEN MAIN_2 ' Check left continue switch

L_CONT=1:R_CONT=0 ' Set left continue flag, clear right continue

MAIN_2: IF SW_R_CONT=1 THEN MAIN_3 ' Check right continue switch

L_CONT=0:R_CONT=1 ' Set right continue flag, clear left continue

MAIN_3: IF L_CONT=1 THEN CCW ' Drive left continue if L_CONT=1

IF R_CONT=1 THEN CW ' Drive right continue if R_CONT=1

GOTO MAIN ' Jump to main

CW: STAGE=(STAGE+1)//8 ' Increase stage within 0-8

GOSUB DRIVE ' Drive stepper motor

GOTO MAIN ' Jump to main

CCW: STAGE=(STAGE-1)//8 ' Increase stage within 0-8

GOSUB DRIVE ' Drive stepper motor

GOTO MAIN ' Jump to main

DRIVE: LOOKUP STAGE,[%0001,%0011,%0010,%0110,

%0100,%1100,%1000,%1001],OUTA ' Get data

PAUSE DELAY ' Delay

RETURN ' Return

/ 6(G /"#@#$/#$H$A"#@>>?/8.93:;<=I J

!2"&& =C& !2">& D < "()% E!D :"()% 8E400 /,!2"*0'/"/,(!2"()& C&&!2 7!& !2>& D@E ! D:E ))0% ))"*&

Page 104: Fun With Stamp2SX

!"# $%&'() "* + ,%- ./012131%%-$4% $%&'()56$"* *./01 +676"5 -,$ $%&'()"#"5%- 58%-,./01

09:"#5"; '0/: "09 + '0/:%8"#!,<='>?0.:9@=+*,%A/BCDE093#=: %4=&F%$

! "#$%& '( $) ' *+',$+-- , .-$,/+ !

!"#$

!"#$%#"&'()$*+ (,- ./0-##$!--$1 !,% -2$(0 %%#$,%"-%-3,%0%0"%#"1 !!0%%#$*%"4'!1)1 !56789:!0 ((-##$(-#"$$#$)!(1--#$!'!:+3 .0*$;0-#"

+/!!"#%%#$$2$#$+01#1/')!-(%*";- < +-#+#$"--"= $;/ >?@ABCDCEF=1)!+#$GH#$ #0&,I->J@BKLE@MF

Page 105: Fun With Stamp2SX

'$STAMP BS2sx'$PBASIC 2.5'*******************************************************' Program : Easy timer' Filename : ACT2601.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*******************************************************LED CON 0 ' Define LED as P0SWITCH CON 8 ' Define SWITCH as P8 inputTIME CON 5000 ' Define time interval in millisecondSW_VAR VAR Byte ' Define SW_VAR as byte variable

MAIN : LOW LED ' Off lightSTART: BUTTON SWITCH,0,255,0,SW_VAR,1,TIMER ' Wait for switch is pressed

GOTO MAIN ' Jump to main

TIMER: HIGH LED ' Toggle light statusPAUSE TIME ' DelayGOTO MAIN ' Jump to main

!"#$

!"# "$%&'''%! "$(#"&(%(#)*#+(,-(#%*./

%&%& &'() !"#$

"+"#: 5$ $%&'()+ $* %?GH)"+I ,;01131J8%019131

Page 106: Fun With Stamp2SX

"5 - 5*"* ";;KL+"#M)N0%* ;KL":J8% :

O9:"#5"; 'O/:"

O9 + 'O/:%8"#!,<='>?O.:9@=+*,%A/BCDE

O93#=: %4=&F%$ 0! ( 12345 -3%* *65 - -

#'$-*+78 6 9:;' +6 , <=>?@<ABCDEF%'G*", $;/+*+'+#'$-*+78 6 9:$ /+( .%''6 ( '$-78 6 9:6 , $*( <=>?@<ABCDEF)/+$( -*+

%&'($)*

µ

* +, -&)(./& !"#$

Page 107: Fun With Stamp2SX

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Pendulum clock display' Filename : ACT2701.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************TIME VAR ByteCOUNTN VAR NibDELAY CON 95BT VAR Byte

DIRL=%11111111DIRH=%11111111TIME=0START: BUTTON 8,0,255,250,bt,0,STARTPENDULUM: OUT0=1

FOR COUNTN =0 TO 4PAUSE DELAYOUTL=OUTL<<1

NEXTFOR COUNTN =4 TO 0

PAUSE DELAYOUTL=OUTL>>1

NEXTTIME=TIME+1'FREQOUT 12,1000,1200DEBUG CLS,"Time of pendulum",CR,DEC TIMEGOTO PENDULUM

%&*%&+, -&)(./& &'() !"#$

*0&'(1%&+, -&)(./&%2(3()4567895:#;"<

I"* !! "*$ !*P %FREQOUT 12,1000,12006 N)M'QJ8"#R1!5!4 $%ST)UV(?,$"*"#$48-58 *4!%W : X,

Page 108: Fun With Stamp2SX

+

"5 -56I8 + 4! 8- !5"5 - ;F. 4Y%X XM)NF% !M)N: :.

F9:"#5"; 'F/:"

F9 + 'F/:%8"#!,<='>?F.:9@=+*,%A/BCDE

,-$

µ

!"

!"#

$%

&

& #&'

= > ?=? -( !"#$

Page 109: Fun With Stamp2SX

.

'$STAMP BS2sx'$PBASIC 2.5'*******************************************************' Program : Timer 80 seconds' Filename : ACT2801.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*******************************************************RELAY CON 13 ' Define RELAY as P13SW_START VAR IN8 ' Define SW_START as P8 inputSW_RESET VAR IN9 ' Define SW_RESET as P9 input

MASK VAR Byte ' Define MASK as byte variableTIMER VAR Byte ' Define TIMER as byte variableSTART VAR Bit ' Define START as flagTIMER_SET CON 80 ' Set timer 80s

DIRL=$FF ' Set P0-P7 as outputs

RESTART: OUTL=$00 ' Clear all LEDsLOW RELAY ' Set relay as output=0START=0 ' Clear start flagTIMER=TIMER_SET ' Set timer = 80sMASK=$FF ' Set LED mask all onOUTL=MASK

MAIN: IF SW_RESET=0 THEN RESTART ' Check SW_RESET pressed? restart if yesIF START=1 THEN CHK_NEXT ' Check start flag is set? skip if yesIF SW_START=0 THEN TIMER_ON ' Check SW_START pressed?

' jump to set flag if yesGOTO MAIN ' Loop to main

CHK_NEXT: PAUSE 1000 ' Timer 1s.TIMER=TIMER-1 ' Decrease timerMASK=~DCD(TIMER/(TIMER_SET/8)+1)&MASK

' Calculate time remain to show bargraph LEDsOUTL=MASK ' Copy mask to LED outputsIF NOT TIMER=0 THEN MAIN ' Check timer=0? back to main if notOUTL=$00 ' Clear all LEDsHIGH RELAY ' On relay

LOOP1: IF (SW_START)AND(SW_RESET) THEN LOOP1' Wait any key to exit

PAUSE 10 ' DebounceGOTO RESTART ' Restart

TIMER_ON: START=1 ' Set start flagFREQOUT12,1000,1000 ' Start voiceGOTO MAIN ' Jump to main

%&=%&> =? -( &'() !"#$

Page 110: Fun With Stamp2SX

/

F93#=?'T?J8Z !#=:J8%4=&F%$5

$6/+$'6 ' '$--36 6'','.%''6)$'6 #$H+-;' +6#H# $%& $$/++-7 6+' I' -JK ''#J #6'$-" 3 6'(L

H M@IN+#*;+'OK'#$J '$-)-8 #3%'+'#'$'6

H @PM@+','#$ J '$--8 $'6 #$J (6+',

( '.%''6 $$ 3% , H +'-$3 .-M@

I, , TIMER_SET CON 80 [ !,,%-:/11I4 -56,%?GH)T"* [\VTNZ56, %-:/01131

"+56 "#%?'T? 4!]%$#= ?'T?J-$J+ -56I; = !**! $

"I56"#%H'^4!$%_46IM)N *!,+% 56*F4!"*M)NF,4

I4%- "*[*% "*,%

CHK_NEXT: PAUSE 1000

[

CHK_NEXT: PAUSE 60000 ‘ Delay 1 minute

56 "$5: [: *!I[.9: "*$*[PAUSE 100Z,#%

Page 111: Fun With Stamp2SX

;5"5 F$48-"+ -56 I8:1 +565%! #=! 56$L7==4 56LJ8%5 F

*X #=,<Z ! "76 $%565 "# ;*854!5% *!Z5%-Z*%,! $* $*,,<"**!7= !"#,<<] ;%6 -Z56I;%,< -*$+%+%$"*,5 4!LJ85$"*6*%"* J8$*% 5999,*% " !%-

R9:"#5"; 'R/:"

R9 + 'R/:%8"#!,<='>?R.:9@=+*,%A/BCDE

0123$$$4567 89:6;<

@ 2 -AB+,&(((CDEF(&

Page 112: Fun With Stamp2SX

%

'$STAMP BS2sx

'$PBASIC 2.5

'*****************************************************

' Program : Bed timer

' Filename : ACT2901.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*****************************************************

RELAY CON 13 ' Define RELAY as P13

SW_START VAR IN8 ' Define SW_START as P8 input

SW_RESET VAR IN9 ' Define SW_RESET as P9 input

TIMER VAR Word ' Define TIMER as word variable

TIMER_SET CON 15*60 ' Set timer 15 minutes

I VAR Byte ' Define I as byte variable

RESTART: LOW RELAY ' Set relay as output=0

LOOP1: IF SW_START=1 THEN LOOP1 ' Wait SW_START pressed

HIGH RELAY ' On relay

TIMER=TIMER_SET ' Load timer value

MAIN: FOR I=1 TO 10 ' Set loop 10 times

IF SW_RESET=0 THEN RESTART ' Restart if SW_RESET pressed

PAUSE 100 ' Delay 100ms

NEXT ' Do loop

TIMER=TIMER-1 ' Decrease timer

IF TIMER=0 THEN RESTART ' Back to restart when time is up

GOTO MAIN ' Jump to main

%&@%&2 -AB+,&((( &'() !"#$

R93#=?'T?J8Z !#=:J8%4=&F%$5

$6/+$'6 '$--36 I+34#H 6'++-7K 6'@PM@'$-" I34K ''# ! '$-"-8 I34#K #3%$'6 '+(6.-*2 +-7 , 6'H%:34+ 3 .- M@I/+N++-7#*;+'OK.%''6)%:'$-$'6 '+'(6

I4*I4 ";SVT, #

[:. 56,;FOR I=1 TO100[

,$01(% 21'31''(((%4)* "$++(,-567+(,-%*.89:#$; <$$ $:%*:$ "$ $%*5=6

Page 113: Fun With Stamp2SX

!"#$%&'$#()# *$+,-(.(/-. 0$-1(#!##(1223-$+12231("#"(4!%&5678#!("# *$+-(#( -9-(9"#%&56784*$#1(

+:; -*; 9 #(!<=% '<>?@A=BCBDEBDA%BF>FAGH,9(1223#$ -9- ((($--(1!(9(1223$ IJ4 $"+:;4"($$#1(

- !"<=%## *$+*$ K$%&$".( (1"(91($".(.0( I!# (.(/""#%&5678-#<=%/-.("J(41(+##9.0( (0;#4" !-1

"# %&5678$$+-9$+# *$+ 9$.0($%& (I; #.JL)M (93#NOP$I; 19## *$+.0 -$## *$+ *#1(1($ * ## *$+ # NOP $#4".(I;9J#$%&#4 KI+".(IQ;J # *$+$9$+/#( !# *$+9$+".(## *$+ -9-

!""# %&5678 $-$I;.0(""#4 K RMS-( (# -# 9$+# *$+$(.0( -0Q"1(9# *$+ -#(9J ! 9$+## *$+$9T--$#MUVP

Page 114: Fun With Stamp2SX

$ -$ RWS 4-( *$9+# - "(J-9$+#491($9 KWUX1##4( -($.91 $("1(1J:# WUX 1 *$1( -.0(.9$+ !"#$%"&'()*+,- ./0/1.234!5/

$#-".(9+;"#%&5678.0(.#(1#!(" --# *$+(1(-.0(/-#1($"# %&5678 ":*$#(1( -("%&Y<'J.JL)M,1(-(*$%ZQ11(

9#1%Z #$ K#(I [\$"#$$# <=%!#( 9 !1( <=% $J --- ! 9 ( (*$9--*I#("+-J+$"#9J!$ K ; ;!#(+:]J.0(9($ K 5&'^B?_A>`B5BaCBH_AbHB&G)Bcc>d>BDA,9 K#(+:]J//# (+:]JJ ($"-(+:]J" ($J

! "

! " #$%&' '!()*$(+',-+.! !,+'/"0

'1+$

!"#$%&'('$"#)*

Page 115: Fun With Stamp2SX

!"#$ %&'()*+,-.,/--0 123, -,41321 56$7893-,4-+:1-; +< -++=

>?@ABC,1D>?EA >?@F-+,1D>?EA.GB=13H 0D6$>??A@IJK0 3,'EJL)&M>?@>-=1, !"#$ %&'()*,N+G -=.3. .O5- -, 1, 1-+G. !"#$ %&'()*

!" #!$

! "# $#

P,.B=-;P3+119ODQ3

!"#$%$%#

µ

#$%"&'())(

Page 116: Fun With Stamp2SX

'$STAMP BS2sx

'$PBASIC 2.5

'*********************************************************

' Program : Light Monitoring

' Filename : ACT3001.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*********************************************************

LDR CON 14 ' Define P14 as LDR

DELAY CON 990 ' Define DELAY as 990

RC_VALUE VAR Word ' Define RC_VALUE as word variable

MAIN: HIGH LDR ' Discharge C on P14

PAUSE 10 ' Delay for discharge

RCTIME LDR,1,RC_VALUE ' Measure RC time constant

DEBUG DEC ? RC_VALUE ' Debug value on debug terminal

PAUSE DELAY ' Delay 990ms+10ms

' discharge time = 1s. (approx.)

GOTO MAIN ' Jump to main

*'#$%*'"&'())(*&(+,- ./0123'&454)6-7)89:;<9=2.>1?

#$%@45&)+"+,-A8*&()&B&-CD45"C5('5)7-A8CE"C-'7 A8'77)

Page 117: Fun With Stamp2SX

!"# $%& #%' &!(

C,..B

!

1 -,42+:0+-.,/ FJK1B -=1221 +:0PC2C:R .21;C:R

B2S++:0-=122156$789,-.TAU

!B-;..+- ?@V3

RCTIME 1, 1, Tcount

2+:0WA-,4+:R2..+-;.,R2S-1-,4TAU+.-;.3,$XY"(L

1B2156$789,R-;.,R1C.+:01B-G-B2156$789,R23=+C TAU3,+:01C.-;.,R-,4- A? <1B-;.,R?@AµZ,3,

DIR4 = 1 ‘ P4 as output

OUT4 = 1 ‘ Charge the capacitor which connect at P4 of BS2SX

PAUSE 100

RCTIME 4,1,T_COUNT

Page 118: Fun With Stamp2SX

&

!""'(")#*+,

C 1>?-:1-O9V-+3,-:=1 -++C,..G1 2P23,B1=113-=1:-03 232,132156$789, -,4+C -:=1 -,4P.O9

>A@ABC,1D>AEA >A@F-+,1D>AEA.GB=13H 0D6$>A?A@IJK0 3,'EJL)&M>A@>-=1, -=.3. .O5- -, 1, 1-+G.O9V

%& ' &() *! !"#!$

µ

#$"CE&''&45&-(A8

Page 119: Fun With Stamp2SX

-

! "# $#

P2+.-+ P-, 115D[\93

% "# $#

P-, 1 ..P.-,4R-, 121 LOOKUP ((((RC_VALUE)/256) MAX 8) -1),[$01,$03,$07,$0F,$1F,$3F,$7F,$FF],OUTL

-,4OUTL=DCD ((((RC_VALUE)/256) MAX 8) -1)

'$STAMP BS2sx

'$PBASIC 2.5

'*********************************************************

' Program : Light Monitoring display on bargraph LEDs

' Filename : ACT3101.BSX

' Processor : BASIC Stamp 2SX/i-Stamp

' Copyright (C) 2003 Innovative Experiment Co.,Ltd.

'*********************************************************

LDR CON 14 ' Define P14 as LDR

DELAY CON 500 ' Define DELAY as 500

RC_VALUE VAR Word ' Define RC_VALUE as word variable

RANGE CON 5000 ' Define RANGE as 5000

DIRL=$FF ' Set P0-P7 as outputs

MAIN: HIGH LDR ' Discharge C on P14

PAUSE 100 ' Delay for discharge

RCTIME LDR,1,RC_VALUE ' Measure RC time constant

LOOKUP ((((RC_VALUE)/1024)MAX 8)-1),

[$01,$03,$07,$0F,$1F,$3F,$7F,$FF],OUTL

GOTO MAIN ' Jump to main

*' #$ *'"&'*&(+,- ./0123) A8'&45&-(A8F&

!"#$%&' (!)*+!!,- " ./"0 &112'3 *+ ./ &4!50)(67 898 :;+ 9&4 ./*0;

Page 120: Fun With Stamp2SX

.

#(#%/)%

1>? >A2.PG:]2+, 2156$789G2-C-,41B=1T-, R-BU 2=- =3.O53-=PGR-B.O52- ^<, R-= RR<-=

>F@ABC,1D>FEA

>F@F-+,1D>FEA.GB=13H 0D6$>F?A@IJK0 3,'EJL)&M

>F@> -=1-12B=.3. .O5-,4 =- 2B3H_3,.O52 -,4R-B

+ !,! -./.* (.

µ

µ

#$@"C(5G(C,- G&-(./0123

Page 121: Fun With Stamp2SX

0

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Morning alarm' Filename : ACT3201.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************SPK CON 12 ' Define SPK as P12LDR CON 14 ' Define P14 as LDRRC_VALUE VAR Word ' Define RC_VALUE as word variableUPPER CON 1000 ' Define UPPER as 1000LOWER CON 300 ' Define LOWER as 300DONE VAR Bit ' Define DONE as bit variableMUTE VAR IN8 ' Define P8 as MUTE

MAIN: HIGH LDR ' Discharge C on P14PAUSE 100 ' Delay for dischargeRCTIME LDR,1,RC_VALUE ' Measure RC time constant'DEBUG 0,DEC ? RC_VALUE ' Debug light value'remove remark symbol when debuggingIF MUTE=1 THEN CHK_LOWER ' Set DONE bit if mute switch pressedDONE=1 ' Set DONE bitGOTO MAIN ' Jump to main

CHK_LOWER:IF RC_VALUE>LOWER THEN CHK_UPPER ' Check RC_VALUE to toggle relayIF DONE=1 THEN MAIN ' Jump to main if mute (DONE=1)FREQOUT SPK,250,1600 ' Beep.. Beep..PAUSE 20FREQOUT SPK,250,1600PAUSE 500GOTO MAIN ' Jump to main

CHK_UPPER:IF RC_VALUE<UPPER THEN MAIN ' Check switch if RC_VALUE<UPPERDONE=0 ' Clear DONE bitGOTO MAIN ' Jump to main

>F@`B0JA1C.WV- 2

! ,012 ("34#567'$( ()-./8.9 ! #:;8-&,( .<=>$ +; ,"!(*";) #8-.<=> ()$!"(.*()

*'#$@*'C(5G(C,- G&-(./0123) A8

"-5!" "9*:") &460 &1< 9 "9 5!" "9 0!/= 9 " :>?07 -3; *+@ A/ 41BCD 0!/= E0/8"+ ")8E 6 F0 0/ 0!/= 05059:> A/ 41B67 @-E(9(67 /0"?5059:9+(7 '33@E!G>9+ / 8/ (5!" "9 " "*+!/= >-!

Page 122: Fun With Stamp2SX

1

/23#%

21+.T-, R-BU1>FTB0aU2;-=1T= U3.1O5 R2R-B-=11 O52.,G1= -0:R+-+.+.- 0 G2P2R,<03HHb-+1+- 0-:=1B-,4B03H- 3

>>@ABC,1D>>EA

!" #

$

%&'()

%

µ

#$$"H7,! ( G&-(./0123

Page 123: Fun With Stamp2SX

>>@F-+,1D>>EA.GB=13H 0D6$>>?A@IJK0 3,'EJL)&M'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Twilight switch' Filename : ACT3301.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'*********************************************************RELAY CON 13 ' Define P13 as RELAYLDR CON 14 ' Define P14 as LDRRC_VALUE VAR Word ' Define RC_VALUE as word variableUPPER CON 3500 ' Define UPPER as 1000LOWER CON 2800 ' Define LOWER as 600

OUTPUT RELAY ' Set P13 as outputMAIN: HIGH LDR ' Discharge C on P14

PAUSE 100 ' Delay for dischargeRCTIME LDR,1,RC_VALUE ' Measure RC time constant'DEBUG DEC ? RC_VALUE ' Debug light value

'remove remark symbol when debuggingIF RC_VALUE>UPPER THEN ON_LAMP ' Check upper value for ON lampIF RC_VALUE>LOWER THEN MAIN ' Check lower value for OFF lamp

OFF_LAMP:LOW RELAY ' Off relayPAUSE 1000 ' DelayGOTO MAIN ' Jump to main

ON_LAMP: HIGH RELAY ' On relayPAUSE 1000 ' DelayGOTO MAIN ' Jump to main

*' #$$ *' G"H7,! (

5!" "9 &40 (9" *: 8(7 /8 ( : '33 "=8"-"/0? 6(0 &1<80= "-"-"/0? 0" 9= "(9 "!,!,"-"/0?9 "8/!"9)D:03%'H

>>@>-=1-12.O5-,4 - 2B=.3.O52 -,4 = - 2

+ !(.?!!( !(! ! . !8"(0& 8 ( '"!& 8 @0ABCD1B ! (%( ( =! (%(0 =!(

Page 124: Fun With Stamp2SX

! "# $#

P2B+.-+-,cE,c P-, 1311 dWW95EOeff95gG1dWW95Oef95-

% "# $#

,BdWW95EOef952F2B-2-B-,cE,c=hijL % j'jI)(k -.l?? 2+.1-+3P-,.-.2B-.H3,

=%8&,4EE& (&F!

=%8&,2EEEF.<GEEF.< ! " #$%&

Page 125: Fun With Stamp2SX

& 4 ")#

PGG112 +2156$78912.O5.RR,<0-0:RC gG1-,4-;,-,0-0 B+1.O5 .R-;,-,0-0R3,g=+2..GP23,,R0-,4C 11,c -=13=-,4- = -,c-=1=-,4-

>`@ABC,1D>`EA -;,-,0-0-+1-;-0J$9WW958e$e5

>`@F-+,1D>`EA.GB=13H 0-,4D6$>`?A@IJK0 3,'EJL)&M

!

"µ#

#$$"H7,! ( G&-(./0123

Page 126: Fun With Stamp2SX

*' #$I *'" GC7JC!C7!&-('

'$STAMP BS2sx'$PBASIC 2.5'*********************************************************' Program : Stepper motor rotation controlled by light' Filename : ACT3401.BSX' Processor : BASIC Stamp 2SX/i-Stamp'*********************************************************SW_SET VAR IN8 ' Define SW_SET as P8 inputLDR CON 14 ' Define P14 as LDRRC_VALUE VAR Word ' Define RC_VALUE as word variableSET_VALUE VAR Word ' Define SET_VALUE as word variableSTAGE VAR Nib ' Define STAGE as nibble variableDEVIATION CON 200 ' Define DEVIATION as 200DELAY CON 50 ' Define DELAY as 50 ms

SET_VALUE=1000 ' Set default =1000DIRA=%1111 ' Set P0-P3 as outputsSTAGE=1 ' Set first stage on P0-P3GOSUB DRIVE ' Drive stepper motor

MAIN: HIGH LDR ' Discharge C on P14PAUSE 1 ' Delay for dischargeRCTIME LDR,1,RC_VALUE ' Measure RC time constant'DEBUG DEC ? RC_VALUE ' Debug light value

'remove remark symbol when debuggingIF SW_SET=1 THEN CHK_VALUE ' Set zero if SW_SET pressedSET_VALUE=RC_VALUE ' Set zero value

CHK_VALUE:IF (ABS(SET_VALUE-RC_VALUE))<DEVIATION THEN MAIN

' Jump to main if error not more then DEVIATIONIF SET_VALUE>RC_VALUE THEN CCW ' Check value to rotate CW or CCW

CW: STAGE=(STAGE+1)//8 ' Increase stage within 0-7GOSUB DRIVE ' Drive stepper motorGOTO MAIN ' Jump to main

CCW: STAGE=(STAGE-1)//8 ' Increase stage within 0-7GOSUB DRIVE ' Drive stepper motorGOTO MAIN ' Jump to main

DRIVE:LOOKUP STAGE,[%0001,%0011,%0010,%0110,%0100,%1100,%1000,%1001],OUTA' Get data

PAUSE DELAY ' DelayRETURN ' Return

5!" "9(9"6=9!!"?9"? I + 89=-9J, K 89=9-9J, /80=07 " / (*:") "-9506(90 /LH#$%&'M9 :4$%1B 9"?80= 60 H#$%&'N4$%1B9"? 89=-9J, / 69 H#$%&'O4$%1B9"? 89=9-9J, 8" "-!!"?9"?!G P/?A!6 " 8 /8950 F -)(9"650 " :>?-*"?3; LH#Q1M *+E !G / "89

Page 127: Fun With Stamp2SX

>`@>-=1-122O53m33. -2+-;,-,0-0

+ /..0 0 *!"/H< + /..0 0 * "/H< +&(9 /..0 0 * *

! "# $#

,P2 2-.=1, J9$noDOd9 2-.1-.3119o7D$7e[

% "# $#

,BapHq0B1DIJ:<1-.1-.3, 32GPG.= . P13-.1-.3, 9o7D$7e[ -=1G:<G113-3,=-3, -:=11-;,-,0-0R1233,

"#$% &' B, - +..-=1-,4..3-=1=-.C<0 r)!jY*"L s 221+C 13-,4.-Ett-=12-,4.C<0-.tt 321DIJB-=1 .- + .2 -,4.- 221DIJ,3,W1 = -99 u2Ett.,fADEBUG SDEC ? W1 u+fA..-=1W1 = ABS W1 u221DIJ.+fADEBUG SDEC ? W1 u+fA..-=1 221DIJ

-=12, .+ !"# $ %&'()* +,.1=9Id\J96vfAEtt 221DIJ -,4tt

Page 128: Fun With Stamp2SX

!"#$!!%!&'

() ! *+,()! -.!/01!23'))'&3. !-&23&44&3&5!-.!/01! 2367! -58! ,! 9! 6!%:!57! "!-(3-.!/01! 35&2)' -.!/01%:!57! "!); !"#$%&'"&()*+,-./%%0%()*#12314# 5, 67"& 8'9:;< 93(5<-.! /01! 233'!1=>?@!A=BCDEFG!3(55<235'

-.! /01! 93(2 &5(;-./01!!*+H.&&<39235-.!/01!!)' !"#$!)!DI#JFCK!923(!#LMNOA!'3.

!"#$%"&'#$()"&*&#+'#"# ! 3'('! PQQ! 3'359+35&((5( <H<

,!# !"#$%"-!./0)1!$"210.-3 -!" 4567!,H3.'<<3

!" #$%&'()*+,-./0 $"11234566 " $!#$%&'75"89

&5&'!&3.((&39()!SEROUT 15, 240, ($FF,$01)

H3'3.9593!KFR=!(!#LMNOA!-&('&'3&!S!)&T4)9'5&(59-.!/01!<'3.''3!2'!SEROUT15,240,5,(“Hello message”)

Page 129: Fun With Stamp2SX

!" #$

!"#

!"#$#%&'()*+*,##-'#.+/#

$ %&

' ()* '

+, ()* +,

01-221

-,.. )*! -,

/0.. )*! /0

)1(2 3%4/5/ 67

829# :6

!"#$%$&'()*+,- !"# $%&'()&%%*+' ,-%.(/0. )%"'/$) #!"#$%$&' /01#"'23/$"/$) #+456701#+'%/89::;<=>?<@(#2%$A(#/'/$) #!A#+A 5;B:CD<C<E9<C89EE>D< F;G7 H!A#+A2.&$) # 3-12"3$45+(6,-%.(/0."')%(' '3%%$"%%,IJK:LH1"' J'+%(%%,I,MK:LH1"' ,M'"+'N+%("'!" #$#%&'()'*+*,,(,O-7789"#"2$:*-'/*;(6(4();,-%.(/0"'23$$"3*PP%A++A(QMPP%A++A(%%%A+J%A+2%A+!A+R%A+&,%A+*-2"<<=#7> $5+;(/?*)( 65@+*4 ,-%.(/0 ' 3 %%$" %%'%A'ST3O3'%%%."#+/+5<U?C8:V9WU866IXYVCZCVF[7H')2."#+'%! +&'$!A+ +"'2(# [\H'."#+'%2/$$/( /+ H"'2(R[\[ 9"9>2"3 ()2/%(#++(%$2+)]S[^_6\;#7>=AB O&$"&+2`Rab885a7cA!&+ dde&'5@C?U>V

UDfK:F7&+' 5^\F^7

Page 130: Fun With Stamp2SX

!"#$%&'()*++, --+. /#)*012345678 902:;4367<+<=>??"@=??#+AB#CDA+AE8*$0DF7 $<G+ B#+<<$ E+H+#"B+* --+.A*(#<IJ550I7=KFL0K7"&432MN2:OP60&7++,)<<#)$"C)*B+B#+A*#BQAE* EIR,SIJ

'A'Rg').&'e +(#$hij2 A(kAl!#$"/%%&',M+'N3%(",MB3

Om-,.(#nOmT,'(!(R+,MB3(#$o'+ ;S[nn6n

!"#$%&'$()*$ +,-

RS-232D O W N L O A D

O F F

P7 P6 P5 P4 P3 P2 P1 P0

S T E P P E RM O T O R

L D R

RELAY

P13RELAY OUT

P11 P10 P9 P8

SERIAL DATA

+5V.P15G N D

SWITCH INPUT

P12SOUND/FREQ.

O U T P U T

P14R C - P O R T

AX-2SXBASIC StampACTIVITYB O A R D

L E D O U T P U T

RY.

R E S E TDC INPUT

O N

N CC

N O

!"#$%&'()*+,-!"."

Page 131: Fun With Stamp2SX

.

Om-3/'(#nOmT,%(1'."#2` n6OmP,-]G /2UT:>Ef '+'()(#/,MB3

'$STAMP BS2sx'$PBASIC 2.5'****************************************************' Program : Fun with serial LCD module' Filename : ACT3501.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'****************************************************SO CON 15 ' Define SO as P15I VAR Byte ' Define I as byte variableVALUE VAR Byte ' Define VALUE as byte variableDELAY CON 250 ' Define DELAY as 250ms' Serial LCD module setting in standard mode, direct connect,' baudrate 9600bps and 1/16 duty (2 lines) type

PAUSE 1000 ' Delay for LCD initializeFOR I=0 TO 7 ' Set loop for write CGRAM 0-7 (1st Custom Character)

LOOKUP I,[%00110,%01111,%11110,%11100,%11110,%01111,%00110,%00000],VALUE ' PACMAN Right face dataSEROUT SO,240,5,[$FE,$40+I,VALUE] ' Write CGRAM 0-7

NEXT ' Do loop

FOR I=8 TO 15 ' Set loop for write CGRAM 8-15 (2nd Custom Character) LOOKUP I-8,[%01100,%11110,%01111,%00111,%01111,%11110,%01100,%00000],VALUE

' PACMAN Left face data SEROUT SO,240,5,[$FE,$40+I,VALUE] ' Write CGRAM 8-15NEXT ' Do loop

MAIN:SEROUT SO,240,5,[$FE,$00] ' Clear Display

SEROUT SO,240,5,[$FE,$80,0," Mr.PACMAN "]' Show PACMAN Right face and follwer message on 1st line

SEROUT SO,240,100,[$FE,$C0," Now showing.. "]' Show 2nd line message with 100ms delay

PAUSE 2000 ' Delay 2s to show

FOR I=0 TO 14 ' Set loop 15 times PAUSE DELAY ' Delay 250ms SEROUT SO,240,[$FE,$80+I," ",0] ' Delete previous PACMAN

' AND WRITE PACMAN TO NEXT rightNEXT ' Do loopPAUSE DELAY ' Delay 250msSEROUT SO,240,[$FE,$8F," "] ' Delete last PACMANPAUSE DELAY ' Delay 250msSEROUT SO,240,[$FE,$CF,1] ' Delete last PACMANFOR I=14 TO 0 ' Set loop 15 times PAUSE DELAY ' Delay 250ms SEROUT SO,240,[$FE,$C0+I,1," "] ' Write PACMAN to next left

' AND delete previous PACMANNEXT ' Do loopPAUSE DELAY ' Delay 250msSEROUT SO,240,[$FE,$C0," "] ' Delete last PACMANPAUSE 1000 ' Delay 1sGOTO MAIN ' Jump to main

Page 132: Fun With Stamp2SX

/

#G++#) 9"8#+#+A#B8)C&TULV E<+#W+*B#B8X9A*#9+# E#X9"+C+A*# "A+)*BUK%YZ?'[ /# "A?"UK%YZD'R /# "A /#C \YUZYF8 #8#+++"8 #8#++]+*+G+ 9S+C) 8

B#) 8 B8<A*8#+9#9+# E#A*#<+A^??0<G+ ]LL%YZ9"][ /#*<+ABG+B8 /#^D?7)* \YUZYF8 #8#+++0]SA*#B# "A?# #7+*<+_Z3`\YUZYFa9#< 9+# E#A*#<+B# AbFcdefcd2:ga9"**+A" $h??#+A"8#+ A#+A

) 9" EC #G++#>B#+A*#B8 \YUZYF## ++9#8)*9"A*#+ #<*A*# B8B#, ++)*9"8#+< E"R?#+A "9+G++#C 9"G++ $+** 8 9+# E#) 9"+G++#B# A#)*9"A*# B8+ +]+*#9S<* E9<C 9+# E#X9" /# # $+* # #B8A< E

%/"%/"/0&12 /'34 $!%&'()*+,-%&5

''')/'.3++. H!A#+A22 &J+/'++.!"R(#^SnX.&J2%+ '+)%

' $pH%!A+ f>8C$) #;SYq6'1R' 'o.

( #'%/,MB3$) #"#p . "#$ 0 ""#2(0T $) # $ 0 '!A%"%rr+$"/

. H#+%' g3c*PP%A++A(2/# /,MB3#$$) #;SYq6'3*Pg,P3,(

H"' /,MB3 .$) #!AsN 5;B:CD<C<X9<C7()' # R'A

Page 133: Fun With Stamp2SX

0

2CB2D !"#EB =C !"#7F+ A#+ ' 'e.'%% A' +t 3G.$) # ;SYq6 ' 2%%+2R

!"#$%

+ A#+'+A+'%01#'o$"uv;"3m* Rg +4 /&'89::;<=>?<@'R $) #(#+'+22 )%' %%R

&'!($)%

.'%'$) #+ A#+uv;'+,!"#+$%$&%(%'Rg )%

2CB2D !"#EB =C !"#GH#7H %%(#$'%.&$) #+4+'+'!2)g+ A#+uv;2+ , !"#'$) #'% )% !. d'Ne w x !"#') )% (R'e.'%% A' +t3G.$) #;SYq6.' )%$) #!A#+A &2'%'(#3 %%'$) #/$) #!A#+AR

!"#$% *'!($)+%

!(- #;SYq6,mc3*Pcy,3Qz

$) #'2(,m%+QMPP%A++A(%%+/+!"#$ !(- .

;SYq6,mc3*Pcyw_CVV9:>Ef|xz '2(,m%+QMPP%A++A(%%+/+ $_CVV9:>Ef|!(- /

;SYq6,mc3*Pcy,m*cx6C@:UDC3xz # '2(,m%+QMPP%A++A( %%+/+ !"#"' SnX+)u*Pg A#+%((# )% $6C@:UDC3

B>E87# IJKL79D93 !"#R'' +$R$$) # nq; 5'e.'%% A' +t 3G7e3mPTmPPAAA( )%'e $+''R!"#. Ho$(# 2(.

Page 134: Fun With Stamp2SX

0

!" #$!%" &'(

AC<G+ /# ^ /#<G+ A*#C+8eOM54 + B#8#*<+9G+CG+8 8 LL%YZW+*B#)CTUL<A*99"G+8#B8<]05P3ec3 i - .jABB#+G+8#G+8 )C TUL+< EA ." /#C A8A*#+#+RV[9$8 /#A++, B8"8X7 *CAG+8#]+*$9)%" *+,-./012+

A<+C+ ^8 ^( X 0#"#G+B8B ^7 /#+G+8#B8<] * G+8#]+*$9 )*CA*CB##99"A+ A*# 3%" 456789:/,.;21<+=+,>

AC <G+ #AE

klLBB#+G+8#+A*#8+#CG+B88#*<+9G+ 0LL%YZ7 8

_?a_aSE#

&BG+8# ."+_?a B8 <]# ++_a B8 <]*CA # +]+*

A#*B+A$< C<G+ ^8+*,S G+8#B8CB8 <]9"# ++ "8#*<+9G+G+8 9"SE#?%" #(

AC <G+ #AE

LB<<$+ m m9,+ /#_?a /#+ m9,+ /#_a /#+ m9

UB<<$+ <]#9,+ /# _?a /#+ m <]8<] ,+ /# _a /#+ <]

nB<<$+"<],++B8<]"G+8#B8 /#_a

<G+ AB*<^?U /#+ B8 m9<]"^?o /#+ B8 m9<]" B8<]"@%" # 4 & A&B#C

AC #AE

+#<]" SE#*C +G+8#&lU"%lT]S++,$ #AE

M NM O=D# 2 !"#P P "#$ 0 2(0 u,PTu,OP , "#$ 0 2( u,*Tu,, P "#+'N2(0 u,JTu,], , "#+'N2( u,Tu,v

D%" "5EF&G "

/#<G+ AA<+G+< -+A$A<G+ 8#SAC C<G+ #AE

LTBB#+G+8#9G+##B#+ )CTUL_?aG+8#B8G++#B#)8>_aG+8#B8G++#B#)8D

F BG+8#9G+## A+B8_?a _a 8++

o B<+"A* B#+_?aRV[9$_aRV?9$

Page 135: Fun With Stamp2SX

0-

/0&1'1# #"6"7$5!8! 52 9 "7$# #"68 ):;<=1%&' ()*>?@ !0 A5"" ! "

! ! "#$%&'(&)*+%', ! -.%*/+%/+%#"01)%* 2 !! -/+.34&5&%/+%#"01)%* 6 !! -/+.34&-,&%/+%#"01)%* 7 2! 38 6!2 38 7!6 38 9- 2 /":!7 38 9-"9;$ 2 /":! /+-.34&-,& 2 /":! /+-.34&5& 2! /": /+'#5#"01)%*.34&-,& 2 /": /+'#5#"01)%*.34&5& 22 /":2

26 /":2

)" #H5" I

Page 136: Fun With Stamp2SX

0

g'A'+"#(# oH1'./. '' /,MB3/()'% UT:>Efc A+. )/!'o2 A#AN4t#$"~'%h%%% A' +t(#.2A /~'%.&R H% &,.#/ $$%/,MB3(3'A(3'$#$"# wFx 5XXF7 ' #. A+. #3+$" A+. 6nS6 g+ #~'%A#%"&% A+. n;S()(#$ $gs

OM-,.(#nOMT,'(!(R+,MB3(#$o'+ ;S[nn6nOM-3/'(#nOMT,%(1'g2` n6OMP,-]G /2UT:>EfOM-O (' A+. ,(#+'%J3(#+'%Q '+'()' /,MB3

!01# -,23145"( (*"",!-! 678932':)"#&:!(;*,!-!01#&:)"!01.&'-,2314<-!:(=>6(1

$12 $3#$

+ ! BC" #$ ' 2 $2D& 5/0&@'@ !%&'()*+,-

Page 137: Fun With Stamp2SX

00

'$STAMP BS2sx'$PBASIC 2.5'****************************************************' Program : Basic stopwatch' Filename : ACT3601.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'****************************************************

SO CON 15 ' Define SO as P15I VAR Byte ' Define I as byte variableTIME VAR Word ' Define TIME as word variableSW_VAR1 VAR Byte ' Define SW_VAR1 as byte variableSW_VAR2 VAR Byte ' Define SW_VAR2 as byte variableSW_START CON 8 ' Define SW_UP as P8 inputSW_CLEAR CON 9 ' Define SW_CLEAR as P9 inputSTART VAR Bit ' Define START as bit variable

' Serial LCD module setting in standard mode, direct connect,' baudrate 9600bps and 1/16 duty (2 lines) type

PAUSE 1000 ' Delay for LCD initializeSEROUT SO,240,5,[$FE,$00] ' Clear SLCD display

SEROUT SO,240,5,[$FE,$80,"1 Hour stopwatch"]' Show title at 1st line

SEROUT SO,240,5,[$FE,$C0," Time : : "]' Show current status at 2nd line

TIME=0 ' Clear time to 00:00GOSUB SHOW_TIME ' Show counter

MAIN: BUTTON SW_START,0,255,0,SW_VAR1,1,START_STOP' Check switch P8, START/STOP

BUTTON SW_CLEAR,0,255,0,SW_VAR2,1,CLEAR_TIME' Check switch P9, CLEAR

IF START=0 THEN MAIN ' Back to main if stop

FOR I=1 TO 100 ' Set loop 100 timesPAUSE 10 ' time base 10msBUTTON SW_START,0,255,0,SW_VAR1,1,START_STOP

' Check switch P8, START/STOP in delay loopNEXT ' Do loop

IF (TIME//100)//60<>59 THEN INC_TIME' Check 2 lower digit = 59?

TIME=TIME+41 ' Add 41 for increase miniuteIF TIME//6000<>0 THEN SHOW_NEXT ' Check minute added = 6000?TIME=0 ' Clear time to 00:00 if overflowGOTO SHOW_NEXT ' Jump to SHOW_NEXT

INC_TIME: TIME=TIME+1 ' Increase timeSHOW_NEXT: GOSUB SHOW_TIME ' Show time

GOTO MAIN ' Jump to main

Page 138: Fun With Stamp2SX

0

%/" +%/"! BC" #$ ' /$$&..'%&5

START_STOP: FREQOUT12,1000,1250START=~START ' Complament statr/stop statusGOTO MAIN ' Jump to main

CLEAR_TIME: FREQOUT12,700,1250FREQOUT12,700,1250TIME=0 ' Clear time to 00:00GOSUB SHOW_TIME ' Show timeGOTO MAIN ' Jump to main

SHOW_TIME: FOR I=3 TO 2 ' Set loop from 3 downto 2SEROUT SO,240,[$FE,$C9+(3-I),(TIME DIG I)+$30]

' Send minutes in 2 digits ASCII formatNEXT ' Do loopFOR I=1 TO 0 ' Set loop from 1 downto 0

SEROUT SO,240,[$FE,$CC+(1-I),(TIME DIG I)+$30]' Send seconds in 2 digits ASCII format

NEXT ' Do loopRETURN ' Return to main

) 9"<*9 E +A+8,+A \D,C) X9"]Q&pY%p+C) # +)*B##) # +9"B8+8#+?#+A /#H+#+8 "#C ?? B8 /# #+A# # )*9"A+9A +\@**

8 9+A8#+<) 9"9<++ q99$ ##A9"<+,+<++ R@X9"<+A+ "# G+) 8 A< E8#S,+<+#+A# E#,S R@#+A) X9"<+A > <+B#8 *88 AX<+#+A# E# ",+<+A# E#A<+ /#???+9 +< )) X9" <+B8 +#A?B8)*+G++## E#,+A+A +\D +A# *CX9"8*$",+A + \@* <+AA*CX9",CB8+* /# ? # B8$< EAA+ A*# ++9"# 8<A*<+9"A+A*) **+<+B8$< EG+B8<+A8X## E#,C+."AG++#*C

' $/'%'g3 $"(A( '

'()''' /3'. $g( 3'Hg$A(/$"# wFx$#$(A(

'%()2/`'6nS601#H' % H(&'$R"#' A+. J"#()'+ % A+. J'(),A(+ &,PAAA( !"# H&2(((#'' A+.

Page 139: Fun With Stamp2SX

0

'~'%'A'(# OM !'2/'!"# 4!A# A+. '3+g*+'o2/$$" $"#+RPT3mmA((# g+/ $' 4''A'R H)2/''o'!"#!A#gPT3mm(2

$"#+RR A+. #*+$"PQNP$I0?"@A,)(BCDB NRRP $L0?0"(@A3",-2! :!"-" :, EFGFB ST$U0" 3-:!HIJDFCGF VWX$Y0" -:!9FJDFCGF /(R A+. (#O* H'$#$+"#2

O-,.(#nOT,'(!(R+,MB3(#$o'+ ;S[nn6n

3"4563#$7-#$

+ ! BC" #$ ' 2 $2D& 5/0&@'@ !%&'()*+,-

!

Page 140: Fun With Stamp2SX

0

'$STAMP BS2sx'$PBASIC 2.5'****************************************************' Program : 0-255 seconds timer' Filename : ACT3702.BSX' Processor : BASIC Stamp 2SX/i-Stamp' Copyright (C) 2003 Innovative Experiment Co.,Ltd.'****************************************************SPK CON 12 ' Define SPK as P12RELAY CON 13 ' Define P13 as RELAYSO CON 15 ' Define SO as P15I VAR Byte ' Define I as byte variableTIMER_SET VAR Byte ' Define TIMER_SET as byte variableTIMER VAR Byte ' Define TIMER as byte variableSW_VAR1 VAR Byte ' Define SW_VAR1 as byte variableSW_VAR2 VAR Byte ' Define SW_VAR2 as byte variableSW_VAR3 VAR Byte ' Define SW_VAR3 as byte variableSW_VAR4 VAR Byte ' Define SW_VAR4 as byte variableSW_DOWN CON 11 ' Define SW_DOWN as P11 inputSW_UP CON 10 ' Define SW_UP as P10 inputSW_CLEAR CON 9 ' Define SW_CLEAR as P9 inputSW_START CON 8 ' Define SW_START as P8 inputSTART VAR Bit ' Define START as bit variable

' Serial LCD module setting in standard mode, direct connect,' baudrate 9600bps and 1/16 duty (2 lines) type

OUTPUT RELAY ' Set P13 as outputPAUSE 1000 ' Delay for LCD initializeSEROUT SO,240,5,[$FE,$00] ' Clear Display

SEROUT SO,240,5,[$FE,$80,"0-255 sec. Timer"] ' Show title at 1st lineSEROUT SO,240,5,[$FE,$C0," Time : sec."]

' Show current status at 2nd lineTIMER=60 ' Set defalut timer = 60s.TIMER_SET=60 ' Backup setting timerGOSUB SHOW_TIME ' Show counter

MAIN: BUTTON SW_DOWN,0,250,100,SW_VAR1,1,DEC_TIMER' Check switch P11, decrease timer set

BUTTON SW_UP,0,250,100,SW_VAR2,1,INC_TIMER' Check switch P10, increase timer set

BUTTON SW_CLEAR,0,255,0,SW_VAR3,1,CANCEL' Check switch P9, cancel timer

BUTTON SW_START,0,255,0,SW_VAR4,1,TIMER_ON' Check switch P8, start timer

IF START=0 THEN MAIN ' Back to main if stopFOR I=1 TO 100 ' Set loop 100 times PAUSE10 ' time base 10ms BUTTON SW_CLEAR,0,255,0,SW_VAR3,1,CANCEL

' Check switch P9, cancel in delay loopNEXT ' Do loop

%/"E2#F ' G- .! 2 $2D%&5HI

Page 141: Fun With Stamp2SX

0.

%/"E2#F ' G- .! 2 $2D%&5H$I

TIMER=TIMER-1 ' Decrease timerGOSUB SHOW_TIME ' Show timer remainIF TIMER<>0 THEN MAIN ' Check timeout?FOR I=1 TO 3 ' Set loop 3 times FREQOUT SPK,1250,1600 ' Send beep tone PAUSE100 ' DelayNEXT ' Do loopHIGH RELAY ' On relaySTART=0 ' Clear START bitGOTO MAIN ' Jump to main

TIMER_ON:FREQOUT12,1000,1250START=1 ' Set START bitIF OUT13=0 THEN MAIN ' Check relay still on?LOW RELAY ' If on, off relay before restart againGOTO MAIN ' Jump to main

CANCEL:FREQOUT12,700,1250FREQOUT12,700,1250START=0 ' Clear START bitLOW RELAY ' Off relayTIMER=TIMER_SET ' Restore last setting valueGOSUB SHOW_TIME ' Show time

GOTO MAIN ' Jump to main

INC_TIMER:FREQOUT12,1000,1250TIMER=TIMER+1 ' Increase timer settingGOTO SHOW_NEXT ' Jump to SHOW_NEXT

DEC_TIMER:FREQOUT12,1000,1250TIMER=TIMER-1 ' Decrease timer setting

SHOW_NEXT:GOSUB SHOW_TIME ' Show timeTIMER_SET=TIMER ' Backup setting valueGOTO MAIN ' Jump to main

SHOW_TIME:FOR I=2 TO 0 ' Set loop from 2 downto 0 SEROUT SO,240,[$FE,$C8+(2-I),(TIMER DIG I)+$30]

' Send seconds in 3 digits ASCII formatNEXT ' Do loopRETURN ' Return to main

Page 142: Fun With Stamp2SX

0/

O-3/'(#nOT,%(1'g2` n6OP,-]G /2UT:>EfO-O (' A+. ,T* '+'()' /,MB3

"*+26789#%K.*2"!LM.NNGFJOPQFDPQFRL%LGFJO=*"!-2S ::!3" !%L! !01#!

)'LLL (1"T 2 (! *-EU!-!01.(; -!,= L%L :!":*-*" (*-!?"!01/ 33-!*V 3-!;: !01"( (,"!(

/'R2.$) #]q66Y\'%,P,, H()0R)2"#'' A+. $2()'+R()2 '1R

'+'!A#'()'~'+R3mmA(g3mm( H!A#)4'

FOR I=1 TO 100 ' Set loop 100 times (1sec. Per cycle) PAUSE 10 ' Time base 10ms BUTTON SW_CLEAR,0,225,0,SW_VAR3,1,CANCEL

'Check switch P9, cancel in delay loopNEXT 'Do loop

gFOR I=1 TO 6000 'Set loop 6000 timers

'(60 sec=1min.per cycle) PAUSE 10 ' Time base 10ms BUTTON SW_CLEAR,0,255,0,SW_VAR3,1,CANCEL

' Check switch P9, cancel in delay loopNEXT ' Do loop

Page 143: Fun With Stamp2SX

!.'%% A' +t3G5]3GT[7"UT:>Ef!."#+! +&'!"# / "# ! ;J.()A' w,x!++()'' ! A+. '+A%!++(!*.!)/!J/ )%% !++($+ +'%+'o%&()gS&' )%(!$o'+ ."#+&'e (#.' "# %%&'!% ! ,3b( A%o' )%+ 2.! % +o + !$o'+ )%+ +o + !.'%+ ,3bmPPTJPPEn!R2`R!"#''2`'%R

2 ! )($-3 40,'',$($)&/&0%1 !

!

!%&'&3 '((.

!776777$'$" (//1;<($'$"

1,01;=1<$'6'(( "

3>/*' $ 1'.$$ '!9

.$$ 9$$+>*1( 1$$ ) $

$$$$$ ?>*6$ $"

*!79577377$$ '

'$$$ $'("

A A < ?''>?(>= A<#< ]] ?'('@>?'[= ?'('D(>'=# H]#] ?'R'??@>iX)#<?'R('>(= iA9A<?'RRR'(Ri`]AX#?'>>>'(>R(567869:;:8iddd`MOOecr6645f`5cs#-<=>ituvX#9#A*?'@>('@??'

#-?@6AB96

C #E J I &'"(((lR(]`$$?l,`$$+#+$w??)j ?'[>['[??'>)+?'[>['[??R8;i645fx2:4V`5c`6fC8A@8if66Oillddd`2:4V`5c`6f

03$*/0$/0/

D968:E9F9:F

.G$-3 40,'',$(

#-H>$)&/)$)&/&0%1 ! !AsN )%'(#+'$ '! !(RUT:>Efc% nGT3Gc +c/,MB3%%&'! ."#+c0`+ $"(