o: ActiveSupport::Cache::Entry :@compressedF: @value"վ"ξ
main.hex
1
:1000000000308A0050280000FF00030E8301A10089
1
:1000000008308A0000280000FF00030E8301A100D1
2 2
:100010000A08A0008A010408A2007708A300780853
3
:10002000A4007908A5007A08A600831383120B1E8A
4
:100030001B288B182C28220884002308F70024088A
5
:10004000F8002508F9002608FA0020088A00210E89
6
:100050008300FF0E7F0E09008A110A122F28271233
7
:100060002708831687001030831287068B108A11A9
8
:100070000A121B282C3084008313000803194D2812
9
:100080000230F800F701F70B4328F80B42289730AD
10
:10009000F700F70B4928800B40288A110A125929CA
11
:1000A000840183131F308305713083168F000F087E
12
:1000B000061383120617831603170908C03989002F
13
:1000C00003131F129F120030031788008312870149
14
:1000D00088018901FF300313A700AB01AA01831631
15
:1000E00003170908C039890003131F129F1201303A
16
:1000F00003178800831203131F139F1783169F177C
17
:1001000083121F149412A7122708831687008312E4
18
:1001100027162708831687008312A711270883163E
19
:100120008700013083129400003083169400010888
20
:10013000C73928388100831290010030F800043854
21
:100140009200FF308316920083122711270883162E
22
:10015000870083120711831609130C30831297004E
23
:1001600083169B019C0101309D008312A710270874
24
:1001700083168700831287100C309D0001308000A9
25
:1001800003178701880189017130831603138F00DB
26
:100190000F08831295019B012713270883168700F8
27
:1001A00083120717A7122708831687008312871662
28
:1001B00027122708831687008312071683168811D3
29
:1001C000831288158316011783120B16C0308B0417
30
:1001D0002B30A8000430F8001F08C33978049F00B2
31
:1001E0004230F700F70BF22800009F149F18F62802
32
:1001F00083161E088312A90029082802031C14294B
33
:100200002B08013C031C0D29031D0A292A082B3C3D
34
:10021000031C0D29AA0A0319AB0AA7122708831683
35
:100220008700831287122429AA08031D1A29AB0804
36
:1002300003191E292A080319AB03AA03A7122708CA
37
:1002400083168700831287162B08F9002A08F80006
38
:10025000F90CF80CF90CF80CF90C78089500F90C6D
39
:10026000790C3039F7001708CF39770497002A083E
40
:10027000FF3CAC000330AD002B08031C2B0FAD027C
41
:10028000AD0CAC0CAD0CAC0CAD0C2C089B00AD0C4B
42
:100290002D0C3039F7001D08CF3977049D00271346
43
:1002A0002708831687004030831287060A30AC0087
44
:0602B0003A28EA28630071
3
:10002000A4007908A5007A08A600831383128B1E0A
4
:100030001B280B1932288C308400001C21280C1836
5
:100040003528220884002308F7002408F800250832
6
:10005000F9002608FA0020088A00210E8300FF0E0E
7
:100060007F0E09008A110A1240288A110A124728B5
8
:100070000A108A100A11820728340C34013406341D
9
:10008000AD0A0319AE0A0B118A110A122128AB0A14
10
:100090000319AC0A2F122F08831687001030831221
11
:1000A0008706831608110430831288060C108A1103
12
:1000B0000A1221288C234D10E3377537F432721061
13
:1000C000D6182E18200520102019B01833104D26F0
14
:1000D00041210000C732E9336539AD267536EC326F
15
:1000E0007210C3377537F4327210D6182E18A00666
16
:1000F0000A00A83129103218B119A026CC204210CC
17
:1001000061376410D5295417633DA0060A000C001E
18
:10011000C3377537741D2536751020102010000068
19
:10012000491D2536751020102000A423CD2131173C
20
:100130003010253675102536751025367510A00639
21
:100140000A0046308400831300080319B4280230E3
22
:10015000F800F701F70BAA28F80BA9289730F70049
23
:10016000F70BB028800BA72808004D18B9280812F3
24
:10017000BA280816831608128312CD18C1288812CF
25
:10018000C22888168316881283124D19C9280813AD
26
:10019000CA280817831608138312CD19D12888138B
27
:1001A000D228881783168813000083120914831637
28
:1001B0000910DA28DB28831209108316091083122C
29
:1001C0000800CE018316081600308312081A013089
30
:1001D000CE048316881600308312881A0130F70087
31
:1001E0000310F70D7708CE0483160817003083122A
32
:1001F000081B0130F700F70DF70DFC30F705770805
33
:10020000CE048316881700308312881B0130F70054
34
:10021000F70DF70DF70DF830F7057708CE044E0807
35
:10022000F80008008316091089100911831289103B
36
:10023000831689100816881608178817831209155F
37
:100240008316091100008312091483160910000097
38
:100250008312E1207808CD000910831609100000F0
39
:10026000831209148316091035298312E1207808B6
40
:10027000CC0009108316091008128812081388137D
41
:1002800083124D0EF700F030F70577084C04F800A4
42
:100290007808CC00CC1F4E2983161A29CA08031DE2
43
:1002A0005329891054298914831689100000831258
44
:1002B0000911831609110000831209108316091011
45
:1002C00083124B0ECC000F30CC054C08CD00B5206E
46
:1002D0004B080F39CC00CD00B5200800831608125A
47
:1002E00088120813881309108910091183128910C4
48
:1002F00083168910831209118316091183120910BC
49
:10030000831609100F308312C600A1200130B900F6
50
:100310003908033C031C94290330CD00B520053077
51
:10032000C600A120B90A88290230CD00B520B90144
52
:100330003908033C031CA52939083820BA00CA0132
53
:100340003A08CB001221B90A98298A150A12B32853
54
:10035000470BAB29AE294030C800AF29C801013096
55
:100360004602C80748088038C900CA014908CB00BE
56
:10037000122108004508073A0319C8290B3A031946
57
:10038000CD29063A0319D529023A0319DB29E029B8
58
:100390000130C600C700A821E629CA010130CB0000
59
:1003A00012210230C600A120E6290130C600023029
60
:1003B000C700A821E629CA011030CB001221E62986
61
:1003C0000130CA004508CB001221E6290800831637
62
:1003D00003178C170C140000000083120C087F39DF
63
:1003E00003192B2A0313B90003170D080313BA00CE
64
:1003F00003170F080313BB003908C500BA213A08D8
65
:1004000003178D0003133B0803178F0083168C1707
66
:100410000C140000000083120C0D0E0D7F3903191F
67
:100420002B2A0313B90003170D080313BA0003178F
68
:100430000F080313BB003908C500BA213A08031797
69
:100440008D0003133B0803178F008D0A03198F0AD1
70
:100450000313E72903170313080083168613831277
71
:1004600086130830F800342A0000F817452AF813DC
72
:10047000C50C03188617031C86137817452A7813B2
73
:10048000F80B382A432A000086173F308400840B7B
74
:10049000472A0000F81B372A781B3F2A08008316DA
75
:1004A00003178C170C140000000083120C087F390E
76
:1004B0000319932A0313B90003170D080313BA0095
77
:1004C00003170F080313BB003908C5002D223A0893
78
:1004D00003178D0003133B0803178F0083168C1737
79
:1004E0000C140000000083120C0D0E0D7F3903194F
80
:1004F000932A0313B90003170D080313BA00031757
81
:100500000F080313BB003908C5002D223A08031752
82
:100510008D0003133B0803178F008D0A03198F0A00
83
:1005200003134F2A0317031308001030BF00F7010D
84
:10053000FA01BC0CBB0C031CA32A3D08F7070318E7
85
:10054000FA0A3E08FA07FA0CF70CF90CF80CBF0B84
86
:10055000992A8A150A1202298E30F7004008F800FD
87
:100560003F08F900FA01F808031DC02A7908F800CD
88
:10057000F9010830F702F808031DC02AF701C82A5C
89
:100580000310F81BC72AF90DF80DF703C02AF8135A
90
:1005900008003B080319392BC3003F080319392B06
91
:1005A000C3070318DA2A7F30C302031C392B03194F
92
:1005B000392BDE2A8130C3070318392B4308F70093
93
:1005C000F801F901FA013C08C700C7173D08C60049
94
:1005D0003E08C5001830C300C401451C072B420863
95
:1005E000FA07031CF92AF90A031DF92AF80A031964
96
:1005F000C4174108F907031C002BF80A0319C41794
97
:100600004008BD00BD173D08F8070318C417C40D06
98
:10061000F80CF90CFA0CC70CC60CC50C0310C30B74
99
:10062000EC2A0130F7070318392BF81B1E2BC70DD6
100
:10063000FA0DF90DF80DF7030319392BC71F2F2BEE
101
:10064000FA0A031D2F2BF90A031D2F2BF80A031D8D
102
:100650002F2BF80CF90CFA0CF70A0319392B3C086C
103
:10066000C4004008C406C41F372BF8173D2BF813ED
104
:100670003D2BF701F801F901FA018A150A12302918
105
:1006800080308318C406C901CA014008C800440864
106
:10069000C8063F080319302CC700F70043080319A8
107
:1006A000392CC7020319D52B031C932B4408CD000A
108
:1006B000CD174508CC004608CB00CA010310CD0C6D
109
:1006C000CC0CCB0CCA0CC70B5D2BC81F6A2B491472
110
:1006D0004D2C491047104916423084008313622C78
111
:1006E0004912C81B7D2B471C882BCD0CCC0CCB0C86
112
:1006F000CA0CF70A0319482C882BCD1B8B2B03102F
113
:10070000CA0DCB0DCC0DCD0DF7030319482C7D2B55
114
:100710004917F52B49134008C800C81F912BCD1766
115
:10072000412CCD13412C4308C700F7003F08C702F6
116
:100730004008CD00CD174108CC004208CB00CA01CB
117
:100740000310CD0CCC0CCB0CCA0CC70B9F2BC81FB5
118
:10075000AC2BC9144D2CC9104710C9164630840063
119
:100760008313622CC912C81BBF2B471CCA2BCD0C8C
120
:10077000CC0CCB0CCA0CF70A0319482CCA2BCD1B86
121
:10078000CD2B0310CA0DCB0DCC0DCD0DF7030319E6
122
:10079000482CBF2BC917F52BC9134408C800C81F24
123
:1007A000D32BCD17412CCD13412C4408CD00CD17B0
124
:1007B0004508CC004608CB00C81FE22BCD134915D5
125
:1007C0004D2C4911CA014710423084008313622C1A
126
:1007D000C81B0B2C4008C800471CF52BCD0CCC0CBB
127
:1007E000CB0CCA0CF70A0319482CCA1F062CCB0ADB
128
:1007F000031D062CCC0A031D062CCD0A031D062C56
129
:10080000CD0CCC0CCB0CF70A0319482C491B8A2BB6
130
:10081000C91BCC2B2A2C8030CD06CD1F132C4D2C80
131
:100820004408C800202C4008C800CD08031D202C17
132
:10083000CC08031D202CCB08031D202CF701412CD4
133
:10084000CD1B2A2C0310CA0DCB0DCC0DCD0DF70BF3
134
:10085000202C482CC81F2E2CCD17412CCD13412CF9
135
:100860004308F7004408CD004508CC004608CB00FB
136
:10087000412C3F08F7004008CD004108CC00420859
137
:10088000CB004D08F8004C08F9004B08FA00802C0A
138
:10089000F701F801F901FA01802CCA01CB09CC0952
139
:1008A000CD09CA09CA0A031D5B2CCB0A031D5B2CA8
140
:1008B000CC0A0319CD0A4918692BC918AB2B491961
141
:1008C000E12B102C0008CB07031C6C2CCC0A031D59
142
:1008D0006C2CCD0A0319471484030008CC07031CB1
143
:1008E000742CCD0A0319471484030008801F803A32
144
:1008F000CD0703184714491A702BC91AB22BE82BDD
145
:100900008A150A1253298E30F7003F08F702400873
146
:10091000F9004108F800F917F70803199A2C031099
147
:10092000F908031D962CF80803199A2CF90CF80CF9
148
:10093000F70B8F2CC01FA12CF809F909F80A03192D
149
:10094000F90A8A150A125E29831603178C170C14EC
150
:10095000000000000318D32C83120C087F39031306
151
:10096000BA0003170D080313BB0003170F08031386
152
:10097000BC003A08C500BA213B0803178D000313D9
153
:100980003C0803178F0083168C170C14000000001E
154
:1009900083120313B90BCD2CD02C83160317D32C41
155
:1009A000F22C8316031783120C0D0E0D7F390313DF
156
:1009B000BA0003170D080313BB0003170F08031336
157
:1009C000BC003A08C500BA213B0803178D00031389
158
:1009D0003C0803178F008D0A03198F0A03100313B5
159
:1009E000B90BA42C0800F701F801F901FA01CD01B7
160
:1009F000CE01CF01D0014C084B044A04490403192D
161
:100A0000312D2030D1000310C50DC60DC70DC80D06
162
:100A1000CD0DCE0DCF0DD00D4C085002031D1A2D5B
163
:100A20004B084F02031D1A2D4A084E02031D1A2DB2
164
:100A300049084D02031C2B2D4908CD024A08031C0E
165
:100A40004A0FCE024B08031C4B0FCF024C08031C6D
166
:100A50004C0FD0020314F70DF80DF90DFA0DD10B60
167
:100A6000032D4D308400831308000408BD003B3083
168
:100A7000C4009A30C300CA30C200C1010A30BF00AE
169
:100A80003C08C8003B08C7003A08C6003908C50042
170
:100A90004408CC004308CB004208CA004108C90002
171
:100AA000F3240008B900840A0008BA00840A000888
172
:100AB000BB00840A0008BC00F708031D722D3F0824
173
:100AC000013A0319722D3D080319732D0F393F02A6
174
:100AD00003196C2D0318782DBD1B782D3D1B732D2C
175
:100AE0002030742DBD013030F7077708C500BA21DA
176
:100AF0004408C8004308C7004208C6004108C500B2
177
:100B0000CC01CB01CA010A30C900F3247A08C40021
178
:100B10007908C3007808C2007708C100BF0B402DD8
179
:100B20008A150A12A629C1010408C0004110831BBE
180
:100B300041143A0EF038BC00BC07E23EBD00323E24
181
:100B4000BF003A080F39BD07BD07BF07E93EBE0029
182
:100B5000BE07BE07390E0F39BE07BF07BE0DBF0D5A
183
:100B6000BF09BF0D39080F39BF07BC0D0730BB00E7
184
:100B70000A30BF07BE03031CB92DBE07BD03031C0B
185
:100B8000BD2DBD07BC03031CC12DBC07BB03031C4B
186
:100B9000C52D3B3084008313073040054013840784
187
:100BA0003F300402031940170008F700031DE02D31
188
:100BB000401BE02D401AF22DC019E02D2030E32D0E
189
:100BC000C01540123030F707BA010408B9003A10D6
190
:100BD000831B3A147708C500BA21390884008313AF
191
:100BE0003A188317840A401FD02D08000830C0022D
192
:100BF000031C062E4030840083130310800C000871
193
:100C00000319062E042E0000800B032E0800BC01E1
194
:100C10003C083902031C4F2E83160811043083123E
195
:100C20008806BE010130BD003B08C0003A08BF0085
196
:100C3000F801F901F701FA014008031D222E3F08CF
197
:100C400003193C2E1030C1000310BD0DBE0DF70D71
198
:100C5000FA0D40087A02031D2F2E3F087702031C6D
199
:100C6000382E3F08F702031CFA034008FA02031467
200
:100C7000F80DF90DC10B242E7908BE007808BD00CF
201
:100C80003E08BF00BF0ABF0303194A2EFF30C00051
202
:100C9000F625432E3D08C000F625BC0A082E0800A4
203
:100CA000831603178C170C140000000003187F2E06
204
:100CB00083120C087F390313BA0003170D080313BE
205
:100CC000BB0003170F080313BC003A08C5002D2210
206
:100CD0003B0803178D0003133C0803178F0083168E
207
:100CE0008C170C140000000083120313B90B792E2B
208
:100CF0007C2E831603177F2E9E2E831603178312D6
209
:100D00000C0D0E0D7F390313BA0003170D080313E2
210
:100D1000BB0003170F080313BC003A08C5002D22BF
211
:100D20003B0803178D0003133C0803178F008D0A3F
212
:100D300003198F0A03100313B90B502E0800C101C9
213
:100D40000408C0004110831B41143A0EF038BC0067
214
:100D5000BC07E23EBD00323EBF003A080F39BD0776
215
:100D6000BD07BF07E93EBE00BE07BE07390E0F39FB
216
:100D7000BE07BF07BE0DBF0DBF09BF0D39080F3934
217
:100D8000BF07BC0D0730BB000A30BF07BE03031C02
218
:100D9000C52EBE07BD03031CC92EBD07BC03031C23
219
:100DA000CD2EBC07BB03031CD12E3B308400831324
220
:100DB00007304005401384073F30040203194017F1
221
:100DC0000008F700031DEC2E401BEC2E401AFE2EEF
222
:100DD000C019EC2E2030EF2EC01540123030F7072E
223
:100DE000BA010408B9003A10831B3A147708C50009
224
:100DF0002D223908840083133A188317840A401F70
225
:100E0000DC2E08000408BD003B30C4009A30C3004B
226
:100E1000CA30C200C1010A30BF003C08C8003B080C
227
:100E2000C7003A08C6003908C5004408CC0043088A
228
:100E3000CB004208CA004108C900F3240008B900E9
229
:100E4000840A0008BA00840A0008BB00840A00086B
230
:100E5000BC00F708031D3F2F3F08013A03193F2F3D
231
:100E60003D080319402F0F393F020319392F03188A
232
:100E7000452FBD1B452F3D1B402F2030412FBD016D
233
:100E80003030F7077708C5002D224408C800430812
234
:100E9000C7004208C6004108C500CC01CB01CA0109
235
:100EA0000A30C900F3247A08C4007908C30078081E
236
:100EB000C2007708C100BF0B0D2F8A150A12482AFD
237
:10100000840183131F308305713083168F000F080E
238
:10101000861383128617AA01A901A801A701AC01B2
239
:10102000AB01AE01AD01831603170908C039890071
240
:1010300003131F129F1200300317880083128701C9
241
:1010400088018901FF300313AF00B1013C30B000CB
242
:10105000B801B701831603170908C03989000313C3
243
:101060001F129F12013003178800831203131F13EE
244
:101070009F1783169F1783121F149412AF122F0805
245
:101080008316870083122F162F088316870083127A
246
:10109000AF112F08831687000130831294000030AF
247
:1010A000831694000108C039073881000730831285
248
:1010B00090000030F80092000030831692008312F6
249
:1010C0002F112F0883168700831207118316091327
250
:1010D0000C308312970083169B019C0101309D0008
251
:1010E0008312AF102F0883168700831287100C30ED
252
:1010F0009D0001308000713083168F000F0883122D
253
:1011000095019B012F132F08831687008312071761
254
:10111000AF122F0883168700831287162F122F080D
255
:101120008316870083120716831688118312881589
256
:10113000831608118312081103178701A430880051
257
:10114000103089008316031385120514863097002A
258
:101150008D1683128B1683160C148C14C0308312D8
259
:101160008B048A116E298A155A3003178D000030BE
260
:101170008F008A110313E7218A156A3003178D0047
261
:1011800000308F008A1103134F228A15793003171C
262
:101190008D0000308F008A1103134F228A1504300E
263
:1011A000B900FA30C6008A11A1208A15B90BD128DE
264
:1011B000873003178D0000308F008A110313E72159
265
:1011C0008A150D30C5008A112D228A150A30C500F6
266
:1011D0008A112D228A158F018E010F08FA000E0840
267
:1011E000F7000F087A02031DED287708B9007A0886
268
:1011F000BA00FF30BC00BB002C08BE002B08BD00AD
269
:101200008A11952A8A157908FA0078083907A70003
270
:101210003A08A8007A0803187A0FA807A901AA01BA
271
:1012200001303007B9003108BA000318BA0A2E0895
272
:10123000C0002D08BF008A11AC228A157A08BE00B2
273
:101240007908BD007808BC007708BB006F30C20089
274
:10125000F030C1000530C0007A30BF008A11C92AC1
275
:101260008A157708BB007808BC007908BD007A08A9
276
:10127000BE003A08C0003908BF008A11AC228A15A6
277
:1012800083147A08C2007908C1007808C000770882
278
:10129000BF003E08C6003D08C5003C08C4003B082E
279
:1012A000C3008A11402B8A157A08C2007908C10050
280
:1012B0007808C0007708BF008A11832C8A15790846
281
:1012C000B3007808B2000F08FA000E08F7000F0804
282
:1012D0007A02031D63297708B9007A08BA00340836
283
:1012E0003902031D772935083A0203198829831624
284
:1012F00008110430831288060F08FA000E08F70060
285
:101300000F087A02031D7C297708B4007A08B5001B
286
:101310000130C600C7008A11A8218A15883003173A
287
:101320008D0000308F00031006300313B9008A11BE
288
:10133000A4248A15413084002A08BC002908BB0077
289
:101340002808BA002708B9008A11352D8A158C3073
290
:1013500003178D0000308F00031405300313B9000C
291
:101360008A11A4248A150130C6000230C7008A11F0
292
:10137000A8218A155430C5008A11BA218A153A303D
293
:10138000C5008A11BA218A15103084003308BA00CA
294
:101390003208B9008A1193258A152030C5008A11B8
295
:1013A000BA218A152030C5008A11BA218A15203049
296
:1013B000C5008A11BA218A150930C6000230C7005B
297
:1013C0008A11A8218A154930C5008A11BA218A15C7
298
:1013D0003A30C5008A11BA218A15103084003108CC
299
:1013E000BA003008B9008A1193258A159230031784
300
:1013F0008D0000308F00031404300313B9008A11EC
301
:10140000A4248A15B208031D5C2AB308031D5C2AB4
302
:101410008101AE01AD01E830B9000230BB00BC3043
303
:10142000BA008A1107268A15953003178D000030FF
304
:101430008F00031008300313B9008A1150268A1553
305
:10144000103084003808BA003708B9008A119F2686
306
:101450008A152030C5008A112D228A15103084008B
307
:101460003108BA003008B9008A119F268A15203049
308
:10147000C5008A112D228A15413084002A08BC003B
309
:101480002908BB002808BA002708B9008A11022FD2
310
:101490008A159E3003178D0000308F00031404302E
311
:1014A0000313B9008A1150268A158F018E01AC01F1
312
:1014B000AB01B70A0319B80A3618072B2F152F08E6
313
:1014C0008316870083120719892A1430C6008A11EF
314
:1014D000A1208A152F152F0883168700831207195C
315
:1014E000892A36146430B9000230BB00BC30BA001F
316
:1014F0008A1107268A153108FF3C031C892A031D1F
317
:10150000852A3008F93C031C892A0530B0070318E6
318
:10151000B10AAF152F088316870083128719BD2AD9
319
:101520001430C6008A11A1208A15AF152F08831622
320
:10153000870083128719BD2A36146430B90002303F
321
:10154000BB005830BA008A1107268A153108FF3CC3
322
:10155000031CB62A031DB02A3008F93C031CB62A26
323
:101560000530B0020030031C0130B1028101AE0130
324
:10157000AD018F018E01AC01AB01831608148312FB
325
:101580000818DE2A1430C6008A11A1208A15831695
326
:10159000081483120818DE2A36146430B9000130AA
327
:1015A000BB00F430BA008A1107268A15300FDB2AF7
328
:1015B000310FDB2ADE2AB00A0319B10A8316881418
329
:1015C00083128818072B1430C6008A11A1208A15AF
330
:1015D0008316881483128818072B36146430B900D8
331
:1015E0000130BB009030BA008A1107268A15300FEF
332
:1015F000FC2A310FFC2A002B30080319B103B00379
333
:101600008101AE01AD018F018E01AC01AB012F153F
334
:101610002F08831687008312071D202BAF152F0874
335
:10162000831687008312871D202B831608148312CC
336
:10163000081C202B831688148312881C202B36103C
337
:04164000ED2863002E
45 338
:04400E00F52CFF3F4F
46 339
:00000001FF
47 340
;PIC16F887
48
;CRC=C04F  CREATED="09-II-13 19:58"
341
;CRC=FA41  CREATED="11-II-13 00:04"
main.h
1 1
#include <16F887.h>
2 2
#device adc=10
3 3

  
4
#FUSES NOWDT                 	//No Watch Dog Timer
5
#FUSES INTRC                 	//Internal RC Osc
6
#FUSES NOPUT                 	//No Power Up Timer
7
#FUSES MCLR                  	//Master Clear pin enabled
8
#FUSES NOPROTECT             	//Code not protected from reading
9
#FUSES NOCPD                 	//No EE protection
10
#FUSES NOBROWNOUT            	//No brownout reset
11
#FUSES IESO                  	//Internal External Switch Over mode enabled
12
#FUSES FCMEN                 	//Fail-safe clock monitor enabled
13
#FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
14
#FUSES NODEBUG               	//No Debug mode for ICD
15
#FUSES NOWRT                 	//Program memory not write protected
16
#FUSES BORV40                	//Brownout reset at 4.0V
4
#FUSES NOWDT                    //No Watch Dog Timer
5
#FUSES INTRC                    //Internal RC Osc
6
#FUSES NOPUT                    //No Power Up Timer
7
#FUSES MCLR                     //Master Clear pin enabled
8
#FUSES NOPROTECT                //Code not protected from reading
9
#FUSES NOCPD                    //No EE protection
10
#FUSES NOBROWNOUT               //No brownout reset
11
#FUSES IESO                     //Internal External Switch Over mode enabled
12
#FUSES FCMEN                    //Fail-safe clock monitor enabled
13
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
14
#FUSES NODEBUG                  //No Debug mode for ICD
15
#FUSES NOWRT                    //Program memory not write protected
16
#FUSES BORV40                   //Brownout reset at 4.0V
17 17

  
18 18
#use delay(clock=8000000)
19
#use rs232(baud=9600,parity=N,xmit=PIN_B6,rcv=PIN_B7,bits=5)
19
#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B6,bits=8)
20 20

  
main.pjt
17 17
0=0000 %S 0 0 796 451 3 0
18 18
[Opened Files]
19 19
1=main.c
20
2=
21
3=
20
2=main.h
21
3=C:\Program Files\PICC\devices\16F887.h
22
4=C:\Program Files\PICC\drivers\lcd.c
23
5=
22 24
[Target Data]
23 25
OptionString=-p +FM
24
FileList=D:\MLAB\Designs\Measuring_instruments\GM_counter\SW\main.c
26
FileList=D:\MLAB\Designs\Measuring_instruments\GM_counter\SW\counter\main.c
25 27
[Units]
26 28
Count=1
27 29
1=main (main)
main.c
1 1
#include ".\main.h"
2
//#include <LCD.C>
3 2

  
4 3
#define LED1 PIN_C6  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
5 4
#define LED2 PIN_C5  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
6
#define LED3 PIN_C4  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
7
#define LED4 PIN_D3  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
5
#define LED3 PIN_C4  //CHANGE PIN_XX TO YOUR LED PIN NUMBER
6
#define LED4 PIN_D3  //CHANGE PIN_XX TO YOUR LED PIN NUMBER
8 7

  
8
#define S1 PIN_C2  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
9
#define S2 PIN_C3  //CHANGE PIN_XX TO YOUR LED PIN NUMBER, EX: PIN_A5
10
#define S3 PIN_D0  //CHANGE PIN_XX TO YOUR LED PIN NUMBER
11
#define S4 PIN_D1  //CHANGE PIN_XX TO YOUR LED PIN NUMBER
9 12

  
10
#int_EXT
11
void EXT_isr(void)
13
#define BEEP PIN_D2  //piezo beeper
14

  
15
#define LCD_ENABLE_PIN  PIN_E0                                    ////
16
#define LCD_RS_PIN      PIN_E1                                    ////
17
#define LCD_RW_PIN      PIN_E2                                    ////
18
#define LCD_DATA4       PIN_D4                                    ////
19
#define LCD_DATA5       PIN_D5                                    ////
20
#define LCD_DATA6       PIN_D6                                    ////
21
#define LCD_DATA7       PIN_D7 
22
#include <lcd.c>
23

  
24

  
25
unsigned int32 pulse_count=0;
26
unsigned int16 overflow_count=0;
27
unsigned int16 time_overflow_count=0;
28

  
29

  
30
#int_RTCC
31
void  RTCC_isr(void) 
12 32
{
33
   time_overflow_count++;
34
}
35

  
36
#int_TIMER1
37
void  TIMER1_isr(void) 
38
{
39
   overflow_count++;
13 40
   output_toggle(LED3);
41
   output_toggle(BEEP);
14 42
}
15 43

  
16
//#define LCD_TYPE 1
17
//#include <lcd.c>
44
void sound_beep( unsigned int lenght, int16 frequency)
45
{
46
unsigned int i;
47
   
48
   for(i=0;i<=lenght;i++)
49
   {
50
      output_toggle(BEEP);
51
      delay_us(1/frequency);
52
   }
53
}
54

  
18 55
void main()
19 56
{
20
unsigned int setpoint;
21
unsigned int napeti;   
22
unsigned int16 plneni=0;
57
unsigned int16 integration_time=60;
58
unsigned int16 time;
59
unsigned int16 last_timer; // promena pro praskani
60
unsigned int1  button_press;  // semafor pro cteni tlacitek
61
unsigned int16 measurement_number=0;
23 62

  
24
/*   lcd_init();
25

  
26
   lcd_putc("\fReady...\n");
27

  
28
   while (TRUE) {
29
      k=kbd_getc();
30
      if(k!=0)
31
        if(k=='*')
32
          lcd_putc('\f');
33
        else
34
          lcd_putc(k);
35
   }
36
*/
37

  
38 63
   setup_adc_ports(sAN0|VSS_VDD);
39 64
   setup_adc(ADC_CLOCK_DIV_32);
40 65
   setup_spi(SPI_SS_DISABLED);
41
   setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
42
   setup_timer_1(T1_DISABLED);
43
   setup_timer_2(T2_DIV_BY_1,255,1);
66
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
67
   setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
68
   setup_timer_2(T2_DISABLED,0,1);
44 69
   setup_ccp1(CCP_PWM);
45 70
   setup_ccp2(CCP_PWM);
46
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
47 71
   setup_oscillator(OSC_8MHZ);
48 72

  
49 73
   set_pwm1_duty(0);
50 74
   set_pwm2_duty(0);
51 75

  
52

  
53 76
   output_high(LED1);
54 77
   output_high(LED2);
55 78
   output_high(LED3);
56 79
   output_high(LED4);
80
   output_low(BEEP);
57 81

  
58
   ext_int_edge( L_TO_H );   // Sets up EXT
59
   enable_interrupts(INT_EXT);
82
   setup_comparator(CP2_A0_VREF|CP2_OUT_ON_A5);  // sets two comparators(A1 and VR and A2 as the output)
83
   setup_vref(VREF_HIGH|6);   //sets 3.6(vdd *value/32 +vdd/4) if vdd is 5.0V
84
   enable_interrupts(INT_COMP);  //enables the comparator interrupt
85
   enable_interrupts(INT_RTCC);
86
   enable_interrupts(INT_TIMER1);
87
   enable_interrupts(INT_TIMER2);
60 88
   enable_interrupts(GLOBAL);
89
   lcd_init();
61 90

  
62
   //   lcd_init();
91
   lcd_putc("\fGM counter V1.0 \n   2013 MLAB");
92
   printf("Geiger-Muller Counter V1.0 \r\n");
93
   printf("(c) 2013 MLAB and UST.cz \r\n");
94
   Delay_ms(1000);
63 95
   
64
setpoint = 43;   
96
   lcd_putc("\f");
97
   printf("\r\n");
65 98
   
99
   set_timer1(0);
100
      
66 101
   while(true)
67 102
   {
68
      set_adc_channel(1);
69
      delay_us(100);
70
      napeti = read_adc();
71

  
72
      if (napeti <= setpoint) 
103
      pulse_count = get_timer1() + (0xffff * overflow_count);
104
      time = integration_time + 1 - (time_overflow_count * 0.0327) ;
105
      
106
      if(get_timer1() != last_timer)
73 107
      {
74
         if (plneni < 300) plneni++;
75
         output_low(LED2);
108
         output_toggle(BEEP);
109
         last_timer=get_timer1();
76 110
      }
77
      else
111
      
112
      lcd_gotoxy(1,1);
113
      printf(lcd_putc,"Count:%lu     ",pulse_count);
114
      lcd_gotoxy(1,2);
115
      printf(lcd_putc,"T:%lu   ",time);
116
      lcd_gotoxy(9,2);
117
      printf(lcd_putc,"I:%lu    ", integration_time);
118

  
119
      if(time == 0)
78 120
      {
79
         if (plneni > 0) plneni--;
80
         output_high(LED2);
121
         set_timer0(0);
122
         time_overflow_count=0;
123
         sound_beep(1000,700);
124
         printf("$GMC1.0 %lu %lu %lu  \r\n", measurement_number, integration_time, pulse_count);
125
         set_timer1(0);
126
         overflow_count=0;
127
         measurement_number++;
81 128
      }
82 129

  
83
         set_pwm1_duty(plneni);
84
         set_pwm2_duty(1023-plneni);
130
      if(button_press==false ) // tlacitka se ctou znovu pouze pokud v redchozim cyklu nebyla zmacknuta.
131
      {
132
         if(!input(S1))
133
         {
134
            delay_ms(20);
135
            if(!input(S1))
136
            {
137
               button_press=true;
138
               sound_beep(100,700);
139
               if(integration_time < 0xfffa ) integration_time+=5;
140
               
141
            }
142
         }
85 143

  
86
      output_toggle(LED1);
87
      delay_ms(10);
88
    }
144
         if(!input(S2))
145
         {
146
            delay_ms(20);
147
            if(!input(S2))
148
            {
149
               button_press=true;
150
               sound_beep(100,600);
151
               if(integration_time < 0xfffa ) integration_time-=5;
89 152

  
153
               set_timer0(0);  // vynulovani pocitadel, kdyz uzivatel sahne na tlacitka
154
               time_overflow_count=0;               
155
               set_timer1(0);
156
               overflow_count=0;
157
            }
158
         }
159

  
160
         if(!input(S3))
161
         {
162
            delay_ms(20);
163
            if(!input(S3))
164
            {
165
               button_press=true;
166
               sound_beep(100,500);
167
               if(integration_time < 0xffff ) integration_time++;
168
            }
169
         }
170

  
171
         if(!input(S4))
172
         {
173
            delay_ms(20);
174
            if(!input(S4))
175
            {
176
               button_press=true;
177
               sound_beep(100,400);
178
               if(integration_time < 0xffff ) integration_time--;
179

  
180
               set_timer0(0);  // vynulovani pocitadel, kdyz uzivatel sahne na tlacitka
181
               time_overflow_count=0;               
182
               set_timer1(0);
183
               overflow_count=0;
184
            }
185
         }
186
      }
187
      
188
      if ( input(S1) && input(S2) && input(S3) && input(S4) ) 
189
      { 
190
         button_press=false;
191
      }      
192
   }
193

  
90 194
}
:@created_atf1434174072.3296249“:@expires_in0