ࡱ> u@ $bjbj i\(((8R(,~(L=((((&)&)&)000o=q=q=q=q=q=q=$>R8A~=0/000=&)&)=<<<0&)&)o=<0o=<B< = =&)( 2T(S5` =o==0= =A<A =A =d00<00000== < Using PICAXE with Keypads 4 key input For input to the PICAXE you can use a 4 key matrix. It uses input pins 0,1,6,7 in the order shown in the PCB layout. Input pin 2 is not used but is connected to the central input of this block so that you can use another switch or sensor block. Pin 2 can take an analog input so you could use a light sensor block or other analog sensor block. There is a 1M pull-up resistor indicated on input 2, but this does not need to be used in many cases. Here's a program that lights an LED corresponding to the key pressed: symbol key1=input1 'rename input symbol key2=input0 symbol key3=input7 symbol key4=input6 main: if key1=0 then flash1 if key2=0 then flash2 if key3=0 then flash3 if key4=0 then flash4 goto main flash1: high 1 goto endloop flash2: high 2 goto endloop flash3: high 3 goto endloop flash4: high 4 endloop: let pins=%00000000 'reset all LEDs goto main This block is exactly the same as the one above but simply with the keys in a different arrangement. It is useful for controlling a buggy with left, right, forward and back commands. Both blocks use an active low input for the PICAXE. In other words the input pins are held high except when you press a key. Here is a shorter program which allows you to press more than one key at once: main: let b0=pins 'get inputs b1=b0&%11000011 'mask unwanted bits let pins=b1 'set outputs goto main 12 Key Matrix (commercial) - Keyboard scanner In order to read 12 keys we use outputs 0-2 of the PICAXE to push each column high in order. At the same time the 4 inputs 0,1,2,7 are used to read each row to see whether it has gone high. If it has then the key pressed can be deduced by the program. Pin 6 is available as an input pin for the preceding block. The pull-down resistors hold the inputs normally low. Commercial Keyboard scanner from CJL ' Keypad Reader for PICAXE18 symbol col1=output1 'output 1 - column 1 symbol col2=output2 'output 2 - column 2 symbol col3=output0 'output 0 - column 3 symbol row1=input1 'input 1 - row 1 symbol row2=input7 'input 7 - row 2 symbol row3=input2 'input 2 - row 3 symbol row4=input0 'input 0 - row 4 symbol key_value = b1 'value of key pressed symbol display=output4 'lcd display on pin 4 ' scan each column in turn by setting only 1 column high ' then check each row for switch pressed by calling key_test init: pause 500 'for LCD to initialise serout display,N2400,("Ready") scan: let key_value = 1 high col1 gosub key_test low col1 let key_value = 2 high col2 gosub key_test low col2 let key_value = 3 high col3 gosub key_test low col3 goto scan 'loop back key_test: ' return straight away if no key pressed if row1 = 1 then add1 if row2 = 1 then add2 if row3 = 1 then add3 if row4 = 1 then add4 return 'key value will already be 1, 2, or 3 so add 0 or 3 to this value add4: let key_value = key_value + 3 add3: let key_value = key_value + 3 add2: let key_value = key_value + 3 add1: the following lines are only used for testing serout display,N2400,("Key is ",#b1," ") 'show number on LCD debug key_value show number on computer high 7 flash an LED on output 7 pause 100 you will need to do something low 7 with the key press return you must have this line! There is a different keypad scanner used in the PICAXE lock kit from  HYPERLINK "http://www.picaxe.co.uk" www.picaxe.co.uk, which takes rows high and checks columns. See chi008.pdf at the documentation page of  HYPERLINK "http://www.picaxe.co.uk" www.picaxe.co.uk. ' Keypad Lock for PICAXE-18 (slightly altered) 'output 7 - FET to drive solenoid bolt 'output 6 - piezo sounder 'output 4,5 - bicolour LED 'output 3 - row 4 'output 2 - row 3 'output 1 - row 2 'output 0 - row 1 'input 0 - column 1 'input 1 - column 2 'input 2 - column 3 symbol key_pos = b0 ' number of keys pressed symbol key_value = b1 ' value of key pressed init: let key_pos = 0 ' reset position to zero ' scan each row in turn by setting only 1 row (and LED) high ' if a switch is hit call key_test subroutine below scan: let key_value = 0 let pins = %00010001 gosub key_test let key_value = 3 let pins = %00010010 gosub key_test let key_value = 6 let pins = %00010100 gosub key_test let key_value = 9 let pins = %00011000 gosub key_test goto scan ' key_test sub procedure return straight away if no key pressed key_test: if pin0 = 1 then add1 if pin1 = 1 then add2 if pin2 = 1 then add3 return ' key value will already be 0, 3, 6, or 9 so add 1, 2 or 3 to this add3: let key_value = key_value + 1 add2: let key_value = key_value + 1 add1: let key_value = key_value + 1 sound 6,(60,50) ' Make a beep ' increase position counter by 1 and test for 1st,2nd,3rd or 4th push let key_pos = key_pos + 1 if key_pos = 1 then test1 if key_pos = 2 then test2 if key_pos = 3 then test3 if key_pos = 4 then test4 ' *** Now test the value for each position individually *** ' *** If value is wrong, restart, if correct loop until *** ' *** fourth go. If fourth is correct open lock! *** ' *** Key code is set to 9-3-5-1 *** test4: if key_value = 1 then open goto reset test3: if key_value = 5 then continue goto reset test2: if key_value = 3 then continue goto reset test1: if key_value = 9 then continue goto reset ' *** Got here so open lock and set LED green for 5 sec *** open: let pins = %10100000 wait 5 ' *** Not correct value so reset position counter then return *** reset: let key_pos = 0 ' *** Okay so continue by returning back to main loop *** continue: return Keyboard scanner for homemade keypad In order to read 12 keys we use outputs 0-2 of the PICAXE to push each column low in order. At the same time the 4 inputs 0,1,2,6 are used to read each row to see whether it has gone low. If it has then the key pressed can be deduced by the program. Pin 7 is available as an input pin for the preceding block. The pull-up resistors hold the inputs normally high. ' Keypad Reader for PICAXE18 symbol col1=output0 'output 0 - column 1 symbol col2=output1 'output 1 - column 2 symbol col3=output2 'output 2 - column 3 symbol row1=input6 'input 6 - row 1 symbol row2=input0 'input 0 - row 2 symbol row3=input1 'input 1 - row 3 symbol row4=input2 'input 2 - row 4 symbol key_value = b1 ' value of key pressed symbol display = 4 used for the LCD display ' scan each column in turn by setting only 1 column low ' if a switch is pressed call key_test below init: pause 500 'for LCD scan: let key_value = 1 low col1 gosub key_test high col1 let key_value = 2 low col2 gosub key_test high col2 let key_value = 3 low col3 gosub key_test high col3 goto scan 'loop back ' return straight away if no key pressed key_test: if row1 = 0 then add1 if row2 = 0 then add2 if row3 = 0 then add3 if row4 = 0 then add4 return ' key value will already be 1, 2, or 3 so add 0 or 3 to this value add4: let key_value = key_value + 3 add3: let key_value = key_value + 3 add2: let key_value = key_value + 3 add1: the following lines are only used for testing serout display,N2400,("Key is ",#b1," ") 'show number on LCD debug key_value show number on computer high 7 flash an LED on output 7 pause 100 you will need to do something low 7 with the key press return  FILENAME 5 Using PICAXE with Keypads.doc www.school-electronics.co.uk page  PAGE 2   &'():@   - . ~     {{f_U_UhO9}h;5>* h;5>*(hh;CJOJQJ^JaJnH tH h;nH tH hh;nH tH  h0h; hh;h;#jhih;5UmHnHujh;UmHnHuhih;5>*h;5>*CJhih p5>*CJ h p5>*CJ h ph p5>*CJ hih;5>*CJ !(- . O b u   . = K Z   y y y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y    Pgd;   P gd;gd;i$$ 5 Z t  "#Ifg+OstDy 1y 1y 1y y y 1y 1y 1y 1y 1y 1y 1gd; 2( Px 4 #\'*.25@9gd; #$!037CDE]k:EZ\*   4<Va+,<=nx h+?h;CJOJQJ^JaJ h;0Jjh;U h Sh;CJOJQJ^JaJh;CJOJQJ^JaJ hO9}h;h;jh;UmHnHuBDEl 0:PQ+y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1 \ @gd; \ @@gd;gd;+Os 5W(B]oy 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y y y y y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1 \ @@gd; \ gd; \ gd;gd;>DSlnort235CEmvxyfgef FGᬞ h >@h;hd h;>*h2h;>*jh;UmHnHuh;hUXCJOJQJ^JaJ#hUXh;CJH*OJQJ^JaJ h6h;CJOJQJ^JaJ h+?h;CJOJQJ^JaJh;CJOJQJ^JaJ4=>mn2HXYly 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1gd;$;Riqr!"BCOy 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1gd;:Flx  MTefFGde y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y y y 1y 1y 1y 1y 1gd; ) M q r !3!L!M!e!o!!!!!!!!!!!"";"E"\"y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1gddgd;G !!!!!2!e!o!!!!!!!!!!!""":"P"Q"g"h"~""""""""""_###############ӒӒӒӒӒӒӒ h ShCJOJQJ^JaJ h9hdCJOJQJ^JaJhdCJOJQJ^JaJ h9hCJOJQJ^JaJhCJOJQJ^JaJh;CJOJQJ^JaJ h9h;CJOJQJ^JaJ9\"s""""""#5#Y####$C$^$_$g$h$i$$$$$y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y 1y  \ gd \ gdgdgd;#$#$B$I$]$^$g$h$i$j$t$u$$$$$$$$$$$$$$$ȹwjw[wWShh h0JCJaJmHnHuhh 0JCJaJ!jhh 0JCJUaJhh CJaJhhCJaJhh]CJaJmHnHuhh CJaJjhh CJUaJhh; h9h;CJOJQJ^JaJ h ShCJOJQJ^JaJhCJOJQJ^JaJ6&P 1h:p;. A!"#$% n0 bd6{w$RPNG  IHDR]50PLTE!9AAA nbKGDH cmPPJCmp0712Om IDATx훽e7ٙ-ӆr+D A@[m "FRRQdvP@1AhHI 5% ^{{3#Uޛnˤ|ۼ#8#ORsQt#m@?n2@  I*|X^8nU!z _Ww%l.yp TbIڲ?=3ߔEiNÍ> 4y-+H۝@ޫ|cib2e "3&К = dV X^A~e`_P@D״vhAx9-e0Y n>z2dWB( >1ųk,=}6dV|iØE _yΒ1u:H[4\2~ 9cÄE4=@Q\2(#Uе$P rBҡȖbՒjt0eCkv;% m%m!;(3ʫjwҍ&h+0W Hdnl8h-32x-u49pݒ3x~*P52t0klA;C2kWK KUsޫǞ܃Ы5T LtpNlqÆՊWx@O?Tg0?8U虖\G+Y`VmPO3!7{"@ x+^Vw* mٍ3u)$Ĥ^s SKb`VC׏'xP|QIxC/i: ]vt8xP</ sp35m0"Z hqa]Ţ V@ !3WTXdɱ[Ap-&#@7@uMw5ti Y"U-w]"sG`[2ǒLq+f dvRvͺFٵI*yQdދ7EX0֘T̢ zYMer[6B"s@X@:@~=<^c ]_:( $E`DW"-$\ȱ?Ʀ+d=߰DX5N\\M;C딶MStfh,~b'bOA8iFv Nc RHn%/_L7 jl K+8~$-j]le%@ءT^$ B˿D[NyD[9siqn% ߆n;"7 BDȧy-lJ/kXǓ}MmCpnؽ#`w@{0RiY,AIJ䮷s2@DGCҲķV#uoயsH:7b2IENDB`n iѾP֧~PPPNG  IHDR]50PLTE!1nRRRUbKGDH cmPPJCmp0712Om ^IDATx?]~Njf5ۃ %MMt.v ЭC9SN^"J (`L-d!cu 个ёtt }7|ォ=tt^tc' p'@pB[Ny8N8NpQ)%~Ye%Ֆ=` n=郇nU& _wЩh, 3 |1BgSO2,76bQxb0N (-m,?0 4? }XKW$hӟ t.t, *"2r@`v9RO-6ϟ(cC@v'j0284[Ѹl:4Y...h  ˀ1)4 FZY@aĨEp$@#,`LIVc}ҸlP|{ Hva$Ks$Aėٿz ~ G\c5vxOS-xbxUc0y$cwg7\!; Rl`0j:)(/%" V``+suk(u磩Hn0'P|p{;ugɽ-Pj HV-{Rx$}_{ ñ(zc<+8}t̀zM}u<з%(52Bw'Ƣlc}/@[ Zʬ"lxQ;ҙmc5e# 2ze;֮jQG#:ތdHs/-r$@FͅrKF$cM ''/յ#k5#'S$YAH Us;Erg̃ bQg/<nRT.kξ =R?"juRJ=V>RL/ْ͔@>6m 3fL{x f|0M[^V0*gYҧrr \r2pUEv`e*`eՌGS"k@jl9,OT:꾲/,h\y(#P$hյ~eavvQM b 1A b1A b O$1A b@qh|ChQbѯZ3NJ1=zndxxK;&Ļ~ 1 #m3KW[F{W~hb 1A b*t_M{/3<ƊcԎkGvd~3+ 61;bHUcN)Bg+cݟ~h빏Ӽ(\n5au{̈"ԿXbNt}:#T(q[F;VQNJ uE Ja+UaMxs>;|ݸaQZh~"å+=CFX#T?53CGdu~3q\au{9Zy5yX3 :?:co˜az>Wj$փ|u_M~_ʰxtNQcoOʾ˜h>entcE@}:CTge U۽[r۵-_a6~H{#fy"{c`d6U!mr|;^FI|f8'*>PX b\6?S. к_ŽrMR g+Tzp ~*VrBeE͛| ϛ|J1%P1:d_ ֡'!8']qR)QCHJG?bYyVzv،CRB;y/@^˞t PI%N7&NޝR|?  (ZEEpOD8?'kpCLQ ϻ_ߛe%?wr/ԩXDX S9zqշCI5lRt)_:!sfNϦQY6 2 ơM` =KȘ1(6ϟ^TP<"θR9M_mzmBnՀض@aQŸ:0(&4s\GCӚsR=1L/Kupt8U/Mn ({ /kkv$]ޑ=Op΅`Cv#d\de0\ {ߴXYN\o"ON%33@C/I ቨY2Ke1P"s!AV6 ==m7i .'gbxʞqG\qX|'y0CM&Cn?Vu8 J17+E,6j7 fWm]]|igA0yНmp*) nn0!$4I8+.&jd~uqNm"C epNQ[;C3*,ԟS*X;Y]53hѺY":v6@O ..#B| [ y#^Ye2?=tAKܭB;5r6C|$g Npzn6`fZ̯eg9&W1hJP2"_=+1d)A:0ͯ/=%.)6X/6`9y'MCoXQ M^A{A8>B+](ɡIۘ=)89QYS*\bXF avq" 6?*;ȯsғѿOzR}ZџT/9T|Ѿ}ml.U%wgQ>l-֯0~r ޕz\ #Bhiȳʞng=y׌t$%b*̛{ܴ|W%5 VTjl*[AQfqBes<}\`aEP o؟`g".r"3ZK߱6c6PiElJqLl% ']DS+la}N19RLb\\g@vOA{{ ) LuXvu˼O0~_pMrO]]:kCORW`B?b9Q,4,l{B D(eIL=}sc{;3@m^oJqz5zJakM=?xzARGwܼy.<0`1@2gx:"5)DI>" A՟d1f~ѽKR\ ׿m).'\KG5`x/O83˙"&Os QЮ^A ODžͥIg==05Q #$R4Ӏ1ItIlK/S 0 .FrHM ?1:{w`=A=MEXm kyNR B |Ojd"N쵖$5N3S\!fxŊ+5<Ǜܩ+؟iw;E?[?!֌npZ@oQA_:Ovm'Sͅp@O JIČ_pCz ()ͩS3#J>}?X$嵂C4zVK`t!=,L$h{ sCBNqx?Y ?KAm XӒo'NL%X(-F[9g!.9j/sMײe?!sCAUSw{)KUE8F ͳCS+Dq>[A'۾,PO; ]) y" fbsyRoz~Q-&C`p򾥱LusI3ꇛ5)'uxȨt:(;hB,oY~tKqyO`&V5'ٟ")v.kOgw|p @]}qp\(LEkӓ  z"P "gJ. h|Gy~ J-yd%ն,إ~Bo cX~4-.Uwi03iP9Iqx ?uw}}U xȰ\7Z!tnSq#jk ɕE{&hfYG\ª4+iyũ64q}Phstg>~4PD?RݴUIeq{Kl_u?s_wI~|!h0hD"LrJߡ؎k ?[_+Y^kCP1ӟOi)fZi۷? ~/88?7=vV^÷X-G4+?%:++t@>xKx̻7+mݓop`oRン4^"Nr#S`5tOzh\{-8/.~^B={^lc;?V!+SMWэXsʁ3i@7r#z=yvqa\^O; Ž#1zѺWoʟ=8#Ӧfas -Hp ״x/TP@8IENDB`n0J|vT80PNG  IHDR{z0PLTE!JAAAbնbKGDH cmPPJCmp0712OmIDATxAfIRsfn6̩SE]faSݹXaU``]A^fSlP#,xK7xc?͈Ȉ|W;]{/2322Qeؘ̋>>\x84K>1TMy43ҍ7Yĥs-\cÓY3}/7uqŇp!]ҿeK|͏cfAխ9G&yS\7ɣ.:uշ7lj k'W O.=c"X4| L;Р/ xpc;qTku}`C قiغbXP҃c.!w/xbϸApꭻ^.8~ҸKteޅ(n$-8(pZ?1 u8؟.=mhDtS|xڸm(A"Jġ7˞<'ո k# =3UR:vȄԚ\ } ]8P㞚T 1q;Bb*d gY[גuƁp q |Uˎswz9ce8DN1npcpQ"`pi'ḷG*0 .ܵW.˼ W+7-&G+wIA;;IXm̼ډN]N 6y 4]޻EwEy 78 k~&J\^^ 枂[Vsx&@zo.2C\!x\24춐 {Ƕ'X #!]U$@FB]a's9JMT4&y".ݴ`ƹ&$z [{D8p+㰩C)?ɴUuQ4fѹ@x0WJpAfik[;9 /;*qܣU8] @T$jָbMbyvs8:055’`k\nkaCإkCCCGTqioWn bMgx(ܤ Z]\/Lg-_g`keBKĶy4Tm3qsu1mnti96qU]zU8##^Nɧqiƌ5=kܵefP6-a,T8#2Y+Sσ<ˌU(XӾlB9ƨ.< =LiPA.hɫxAɧ,+B`/P>Vc.*wJ>e_g+tg\:=Lg7EVx՜xm~nLޫxUJՖ5GJZb'-ҙ&{i\'VAp]yXw LN vKQtOD>$.wxa~Sz6e; O} 쀢HtHpqs;ʧj:!m'ZKRxOXϴNOUGknF޽{qpJϜp`ٌK3dJhs돞_p1VL; >hOk=Ob=a?$@ԩ*Yoj-3cQWhXa̱ g꼊]ߛÝ|}w\XJ=1oJKUn~I+@JX]JUJKꎹOj GB8*{bRp銥!~j.bj"N.cW?X*3". 7w}TNdy /9E̳Ǒ]^z. ogVhe N,nqVp7\ t?L*H%$=]L@MVr[<|a΀7,Oypg:1뙄s?*,]?LƹWU4niiYYܳp#*Utbzy-9,SY^cKt6M6NT5Of%*˧S9mɺJ;S:+QӺdU8UOY?©Oo*RZpJ>8ϯmJ ̴nY>oOBd,C\y$.[RIO َCV C#" O^>@GUګ8%Pz4 ySUN>FCUbwS":=>2Upebsln*0O3Uµ;ঢ"n \Zp=XqzGdquaW\3ܙINʂi7b*hnËZ':tиa9{h6;14 +8d. g0]V".qYz^곡>j-lVlpRs} uڷnVM?ғVpŐxP$< sj-tU)r%:]94R̬2+Ӽ lSu*qs2#t+2lmQ4|:)nZzX,),Bͳ)$mNv%ɧyM9v@HpN*w8:=&pⵕټ\Ugh:R#Pόr6'thn~'n驫qK:ȧO$ْ|zlJk>9,c6u%)]hkS>Z<+^Nv{|M*E'0/pc] @;2 QQ/hB[Xiq2NO1!8Fegz *gpG;fMHzRA}Yzbr&ӽG_3 >44Q4eofޫGfT8ϼ5c~Q~5pf(+=O<|2q J`_sp;? x9 .phwsi E|PJ5WKxruw7ƽ8f+"ͭmg n5Ξn;!(^> nze:L_"1*]P}nzoΓk3٧qNǙ#.iRTʫ\S+(:gʧgZ'8Q=_^NDɧtylو˗lq4PO+kpS^Z.NR?=@"{͸&?/6FjJ8ո]pS$Apq$*)Oh .*-k4H`W)٧q *i}*Rj܂桩 {A8nދ…kD* Ы.8TNM+.ٵrk%2.E6ԙX23KӼKv8O p~Jgq2Lu.Vf] g*4ܞęNɧTLkp+WYh\#uwjnQȧmI?Gor8q36c\/f\r(g8OQhSs+V@Iv%l-: qeK3q=ĿPFO .2Z>-9q`-l'`fc0/zfЄwvgpOOhs8OkK"斒OXo]ó=_,;=ӹǚl[莹Yr4[(`ך%䝷 N~9o3nS+nCCZ\itvKb[pE>cKnQf݄{۹pQN:O7]-opeM wǼWvТgKybVD>u6u=^6bVkPBgΩɱ;kqj- kcֶɮ+qڭɮK_P OS\v27l} 7-noLݍ5,ϿFrc *,m)յ?hY=o~^jX'yecS;ߪ7*s|b??67 IENDB`L@L ;Normal$CJOJQJ^J_HaJmH sH tH DA@D Default Paragraph FontRiR  Table Normal4 l4a (k(No Liste@ ;HTML Preformatted7 2( Px 4 #\'*.25@9CJOJQJ^JaJtH 4U@4 ; Hyperlink >*ph4 @4 ;Footer  9r .)@!. ; Page Number4@24 Header  !D(-.Obu .=KZ5Zt"#Ifg+Ost D E l   0 : P Q + O s 5 W (B]o=>mn2HXYl$;Riqr!"BCO:Flx  MTefFGde)Mqr3LMeo;E\s5YC^_ghi00p00p0p0p0p00p0p00p0p00p00000000000p0p0p00000p0p0p0p0p0p0p00p0000p000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00 0 0 00 00 00 00 000000000000000000000000000000000000000000p0p0p000000000000000000000000000000000000000000000000000@0@0%2(.KZ5Ztf: P Q + O s W =>m!"BFGdC^_gh|0|0|0|0|0|0|0|0|0|0|0|0|0Oy0Oy0Oy0@0|0|0|0Oy0|0|0|0Oy0Oy0Oy0Oy0Oy0>@;Oy0Oy0Oy0|0|0"|0"|0"|0#|0#|0#|0(|0(|0(|0#|0#@0@0|0/Oy0 @0@0@0Oy0Oy0Oy0Oy0Oy0 @\My0w[[[^ G#$! D+ \"$ $ + < XX +OVX^!Hob$bd6{w$R8 8Db$iѾP֧~PP pOb$솏|(Zb$ϖ =eG*rVab$J|vT808sb$TM7X"'BCJZauy{; C m s   ! & ' / ; ? Q Y 5 > A J Y b e n }    HO$-INOW^g"q|}  ';?PYmqY`y$,W`puv~;C $'0?HKThii.4OUbhu{!%>BZa[^uyIQgm +1OUtz E I m s     ! & 1 4 ; ?  6 : X ] )/CI^dpv>Bnt #36INZ]mp%'<>SUjprw#(COR  ;?mq MRUXfiGOek )/MSrx 37MQfipuFH]_tvDG`fhii333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333i C J LeighChristopher Leigh:5ABUX] p\"Q ;dV`P@$V@@UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New"1h{+| =,3=,3#4[[3H)?:Using the PICAXE C J LeighChristopher LeighOh+'0 $0 L X d p|Using the PICAXEdsin C J LeighPI J  J  Normal.dotIChristopher Leighd9riMicrosoft Word 10.0@^в@X8@nu@|=,՜.+,D՜.+,L hp  Dean Close Schoole3[{ Using the PICAXE Title 8@ _PID_HLINKSA*[http://www.picaxe.co.uk/[http://www.picaxe.co.uk/:JGhttp://www.electronics.pwp.blueyonder.co.uk/picaxe2_files/image014.gif:HGhttp://www.electronics.pwp.blueyonder.co.uk/picaxe2_files/image016.gif:NGhttp://www.electronics.pwp.blueyonder.co.uk/picaxe2_files/image010.gif8HGhttp://www.electronics.pwp.blueyonder.co.uk/picaxe1_files/image006.gif:LGhttp://www.electronics.pwp.blueyonder.co.uk/picaxe2_files/image012.gif  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrtuvwxyz|}~Root Entry F ^Data J1TableRAWordDocumentSummaryInformation(sDocumentSummaryInformation8{CompObjj  FMicrosoft Word Document MSWordDocWord.Document.89q