'Arrays Dim font(552) ' Pin out ' 2 pinLCD.CE ' 3 pinLCD.DIN ' 4 pinLCD.RST ' 5 pinLCD.DC ' 14 pinKEY.R4 ' 15 pinKEY.R3 ' 17 pinKEY.R2 ' 18 pinKEY.R1 ' 21 pinKEY.C3 ' 22 pinKEY.C2 ' 23 pinKEY.C1 ' 25 pinLCD.CLK ' 26 pinSERVO pinLCD.CE = 2 pinLCD.RST = 4 pinLCD.DC = 5 pinSERVO = 26 SetPin pinLCD.CE, 8 SetPin pinLCD.RST, 8 SetPin pinLCD.DC, 8 SetPin pinSERVO, 8 KEYPAD key.code, Key.Int, 18,17,15,14,23,22,21 'SetTick 60000, ReadTemp, 1 'Read Temperature once a Minute servo.val = 1500 Pin(pinLCD.CE) = 1 ' Enable High Pause 25 Pin(pinLCD.CE) = 0 ' Enable is active low SPI Open 5000000, 3, 8 'Setup SPI ' Load font to RAM for speed For I = 0 to 551 Read font(I) Next I LCD.Init() LCD.Clear() 'GoSub WriteDegree LCD.GotoXY(0, 0) LCD.StringOut("CircuitGizmos") LCD.GotoXY(0, 1) LCD.StringOut(" Servo Tool") For I = 0 to 12 LCD.GotoXY(5 + 6*I, 5) LCD.ByteOut(&HAA) NEXT I For I = 0 to 5 LCD.GotoXY(I*2, 5) LCD.ByteOut(&H54) LCD.ByteOut(&HAA) NEXT I For I = 0 to 5 LCD.GotoXY(71+I*2, 5) LCD.ByteOut(&HAA) LCD.ByteOut(&H54) NEXT I SERVO 2, servo.val/1000 DO IF servo.val <> servo.old THEN LCD.GotoXY(42, 3) LCD.StringOut(" ") LCD.GotoXY(0, 3) LCD.StringOut("Pulse: " + STR$(servo.val) ) LCD.GotoXY(0, 4) LCD.StringOut(" ") servo.old = servo.val ENDIF servo.tic = (servo.val - 800) / 16.66 LCD.GotoXY(servo.tic-1, 4) LCD.ByteOut(&HFF) LOOP END Key.Int: IF key.code = 1 THEN servo.val = servo.val - 10 IF servo.val < 12 THEN servo.val = 20 ENDIF IF key.code = 2 THEN servo.val = servo.val - 100 IF servo.val < 12 THEN servo.val = 20 ENDIF IF key.code = 3 THEN servo.val = 800 ENDIF IF key.code = 4 THEN servo.val = 1500 ENDIF IF key.code = 7 THEN servo.val = 2200 ENDIF IF key.code = 8 THEN servo.val = servo.val + 100 IF servo.val > 3012 THEN servo.val = 3000 ENDIF IF key.code = 9 THEN servo.val = servo.val + 10 IF servo.val > 3012 THEN servo.val = 3000 ENDIF SERVO 2, servo.val/1000 IRETURN SUB LCD.Init() Pin(pinLCD.CE) = 1 ' Enable High Pause 25 Pin(pinLCD.CE) = 0 ' Enable is active low Pin(pinLCD.RST) = 0 Pause 15 Pin(pinLCD.RST) = 1 Pin(pinLCD.DC) = 0 ' LCD EXTENDED COMMANDS LCD.ByteOut(&H21) Pause 20 ' SET LCD Vop (CONTRAST) LCD.ByteOut(&HC8) Pause 20 ' SET TEMP COEFFICENT LCD.ByteOut(&H06) Pause 20 ' LCD BIAS MODE LCD.ByteOut(&H12) Pause 20 ' LCD STANDARD COMMANDS LCD.ByteOut(&H20) Pause 20 ' LCD IN NORMAL MODE LCD.ByteOut(&H0C) Pause 20 Pin(pinLCD.DC) = 1 End Sub SUB LCD.ByteOut(LcdData) Junk = SPI(LcdData) End Sub SUB LCD.Clear() LCD.GotoXY(0, 0) Pin(pinLCD.DC) = 1 For Chr = 1 To 504 LCD.ByteOut(0) Next Chr End Sub SUB LCD.GotoXY(PosX, PosY) Pin(pinLCD.DC) = 0 LCD.ByteOut(&B01000000 Or PosY) LCD.ByteOut(&B10000000 Or PosX) Pin(pinLCD.DC) = 1 End Sub SUB LCD.CharOut (LcdData) Pin(pinLCD.DC) = 1 font.index = ((LcdData - 32) * 6) For I = font.index To (font.index + 5) junk = SPI(font(I)) Next I End Sub SUB LCD.StringOut(Text$) For CharCount=1 To Len(Text$) LCD.CharOut(Asc(Mid$(Text$, CharCount, 1))) Next CharCount End Sub '------------------------------------------------- ' Font DATA table '------------------------------------------------- Data &H00,&H00,&H00,&H00,&H00,&H00 ' 32 20 Data &H00,&H00,&H2f,&H00,&H00,&H00 ' 33 ! 21 Data &H00,&H07,&H00,&H07,&H00,&H00 ' 34 " 22 Data &H14,&H7f,&H14,&H7f,&H14,&H00 ' 35 # 23 Data &H24,&H2a,&H7f,&H2a,&H12,&H00 ' 36 $ 24 Data &Hc4,&Hc8,&H10,&H26,&H46,&H00 ' 37 % 25 Data &H36,&H49,&H55,&H22,&H50,&H00 ' 38 & 26 Data &H00,&H05,&H03,&H00,&H00,&H00 ' 39 ' 27 Data &H00,&H1c,&H22,&H41,&H00,&H00 ' 40 ( 28 Data &H00,&H41,&H22,&H1c,&H00,&H00 ' 41 ) 29 Data &H14,&H08,&H3E,&H08,&H14,&H00 ' 42 * 2A Data &H08,&H08,&H3E,&H08,&H08,&H00 ' 43 + 2B Data &H00,&H00,&H50,&H30,&H00,&H00 ' 44 , 2C Data &H08,&H08,&H08,&H08,&H08,&H00 ' 45 - 2D Data &H00,&H60,&H60,&H00,&H00,&H00 ' 46 . 2E Data &H20,&H10,&H08,&H04,&H02,&H00 ' 47 / 2f Data &H3E,&H51,&H49,&H45,&H3E,&H00 ' 48 0 30 Data &H00,&H42,&H7F,&H40,&H00,&H00 ' 49 1 31 Data &H42,&H61,&H51,&H49,&H46,&H00 ' 50 2 32 Data &H21,&H41,&H45,&H4B,&H31,&H00 ' 51 3 33 Data &H18,&H14,&H12,&H7F,&H10,&H00 ' 52 4 34 Data &H27,&H45,&H45,&H45,&H39,&H00 ' 53 5 35 Data &H3C,&H4A,&H49,&H49,&H30,&H00 ' 54 6 36 Data &H01,&H71,&H09,&H05,&H03,&H00 ' 55 7 37 Data &H36,&H49,&H49,&H49,&H36,&H00 ' 56 8 38 Data &H06,&H49,&H49,&H49,&H3E,&H00 ' 57 9 39 Data &H00,&H36,&H36,&H00,&H00,&H00 ' 58 : 3A Data &H00,&H56,&H36,&H00,&H00,&H00 ' 59 ; 3B Data &H08,&H14,&H22,&H41,&H00,&H00 ' 60 < 3C Data &H14,&H14,&H14,&H14,&H14,&H00 ' 61 = 3D Data &H00,&H41,&H22,&H14,&H08,&H00 ' 62 > 3E Data &H02,&H01,&H51,&H09,&H06,&H00 ' 63 ? 3F Data &H32,&H49,&H59,&H51,&H3E,&H00 ' 64 @ 40 Data &H7E,&H11,&H11,&H11,&H7E,&H00 ' 65 A 41 Data &H7F,&H49,&H49,&H49,&H36,&H00 ' 66 B 42 Data &H3E,&H41,&H41,&H41,&H22,&H00 ' 67 C 43 Data &H7F,&H41,&H41,&H22,&H1C,&H00 ' 68 D 44 Data &H7F,&H49,&H49,&H49,&H41,&H00 ' 69 E 45 Data &H7F,&H09,&H09,&H09,&H01,&H00 ' 70 F 46 Data &H3E,&H41,&H49,&H49,&H7A,&H00 ' 71 G 47 Data &H7F,&H08,&H08,&H08,&H7F,&H00 ' 72 H 48 Data &H00,&H41,&H7F,&H41,&H00,&H00 ' 73 I 49 Data &H20,&H40,&H41,&H3F,&H01,&H00 ' 74 J 4A Data &H7F,&H08,&H14,&H22,&H41,&H00 ' 75 K 4B Data &H7F,&H40,&H40,&H40,&H40,&H00 ' 76 L 4C Data &H7F,&H02,&H0C,&H02,&H7F,&H00 ' 77 M 4D Data &H7F,&H04,&H08,&H10,&H7F,&H00 ' 78 N 4E Data &H3E,&H41,&H41,&H41,&H3E,&H00 ' 79 O 4F Data &H7F,&H09,&H09,&H09,&H06,&H00 ' 80 P 50 Data &H3E,&H41,&H51,&H21,&H5E,&H00 ' 81 Q 51 Data &H7F,&H09,&H19,&H29,&H46,&H00 ' 82 R 52 Data &H46,&H49,&H49,&H49,&H31,&H00 ' 83 S 53 Data &H01,&H01,&H7F,&H01,&H01,&H00 ' 84 T 54 Data &H3F,&H40,&H40,&H40,&H3F,&H00 ' 85 U 55 Data &H1F,&H20,&H40,&H20,&H1F,&H00 ' 86 V 56 Data &H3F,&H40,&H38,&H40,&H3F,&H00 ' 87 W 57 Data &H63,&H14,&H08,&H14,&H63,&H00 ' 88 X 58 Data &H07,&H08,&H70,&H08,&H07,&H00 ' 89 Y 59 Data &H61,&H51,&H49,&H45,&H43,&H00 ' 90 Z 5A Data &H00,&H7F,&H41,&H41,&H00,&H00 ' 91 [ 5B Data &H55,&H2A,&H55,&H2A,&H55,&H00 ' 92 \ 5C Data &H00,&H41,&H41,&H7F,&H00,&H00 ' 93 ] 5D Data &H04,&H02,&H01,&H02,&H04,&H00 ' 94 ^ 5E Data &H40,&H40,&H40,&H40,&H40,&H00 ' 95 _ 5F Data &H00,&H01,&H02,&H04,&H00,&H00 ' 96 ' 60 Data &H20,&H54,&H54,&H54,&H78,&H00 ' 97 a 61 Data &H7F,&H48,&H44,&H44,&H38,&H00 ' 98 b 62 Data &H38,&H44,&H44,&H44,&H20,&H00 ' 99 c 63 Data &H38,&H44,&H44,&H48,&H7F,&H00 ' 100 d 64 Data &H38,&H54,&H54,&H54,&H18,&H00 ' 101 e 65 Data &H08,&H7E,&H09,&H01,&H02,&H00 ' 102 f 66 Data &H0C,&H52,&H52,&H52,&H3E,&H00 ' 103 g 67 Data &H7F,&H08,&H04,&H04,&H78,&H00 ' 104 h 68 Data &H00,&H44,&H7D,&H40,&H00,&H00 ' 105 i 69 Data &H20,&H40,&H44,&H3D,&H00,&H00 ' 106 j 70 Data &H7F,&H10,&H28,&H44,&H00,&H00 ' 107 k 71 Data &H00,&H41,&H7F,&H40,&H00,&H00 ' 108 l 72 Data &H7C,&H04,&H18,&H04,&H78,&H00 ' 109 m 73 Data &H7C,&H08,&H04,&H04,&H78,&H00 ' 110 n 74 Data &H38,&H44,&H44,&H44,&H38,&H00 ' 111 o 75 Data &H7C,&H14,&H14,&H14,&H08,&H00 ' 112 p 76 Data &H08,&H14,&H14,&H18,&H7C,&H00 ' 113 q 77 Data &H7C,&H08,&H04,&H04,&H08,&H00 ' 114 r 78 Data &H48,&H54,&H54,&H54,&H20,&H00 ' 115 s 79 Data &H04,&H3F,&H44,&H40,&H20,&H00 ' 116 t 80 Data &H3C,&H40,&H40,&H20,&H7C,&H00 ' 117 u 81 Data &H1C,&H20,&H40,&H20,&H1C,&H00 ' 118 v 82 Data &H3C,&H40,&H30,&H40,&H3C,&H00 ' 119 w 83 Data &H44,&H28,&H10,&H28,&H44,&H00 ' 120 x 84 Data &H0C,&H50,&H50,&H50,&H3C,&H00 ' 121 y 85 Data &H44,&H64,&H54,&H4C,&H44,&H00 ' 122 z 86 Data &H08,&H14,&HE8,&HA0,&HA0,&H00 ' Degree Symbol