Subversion Repositories svnkaklik

Rev

Rev 6 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 6 Rev 328
Line 1... Line 1...
1
CCS PCM C Compiler, Version 3.221, 27853               18-VI-05 19:21
1
CCS PCM C Compiler, Version 3.245, 27853               27-VI-07 00:22
2
 
2
 
3
               Filename: D:\KAKLIK\programy\PIC_C\mereni\gmetr\gmetr.LST
3
               Filename: D:\KAKLIK\projekty\programy\PIC_C\mereni\gmetr\gmetr.lst
4
 
4
 
5
               ROM used: 497 words (12%)
5
               ROM used: 669 words (16%)
6
                         Largest free fragment is 2048
6
                         Largest free fragment is 2048
7
               RAM used: 12 (6%) at main() level
7
               RAM used: 13 (7%) at main() level
8
                         28 (15%) worst case
8
                         31 (16%) worst case
9
               Stack:    5 locations
9
               Stack:    5 locations
10
 
10
 
11
*
11
*
12
0000:  MOVLW  00
12
0000:  MOVLW  00
13
0001:  MOVWF  0A
13
0001:  MOVWF  0A
14
0002:  GOTO   134
14
0002:  GOTO   184
15
0003:  NOP
15
0003:  NOP
16
....................  #include "D:\KAKLIK\programy\PIC_C\mereni\gmetr\gmetr.h" 
16
.................... #include ".\gmetr.h" 
17
....................  #include <16F873.h> 
17
.................... #include <16F873.h> 
18
....................  //////// Standard Header file for the PIC16F873 device ////////////////  
18
.................... //////// Standard Header file for the PIC16F873 device //////////////// 
19
.................... #device PIC16F873  
19
.................... #device PIC16F873 
20
.................... #list  
20
.................... #list 
21
....................  
21
....................  
22
.................... #device adc=10  
22
.................... #device adc=10 
23
.................... #fuses NOWDT,XT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG  
23
.................... #fuses NOWDT,XT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG 
24
.................... #use delay(clock=4000000)  
24
.................... #use delay(clock=4000000) 
25
*
25
*
26
000C:  MOVLW  33
26
004C:  MOVLW  36
27
000D:  MOVWF  04
27
004D:  MOVWF  04
28
000E:  MOVF   00,W
28
004E:  MOVF   00,W
29
000F:  BTFSC  03.2
29
004F:  BTFSC  03.2
30
0010:  GOTO   020
30
0050:  GOTO   060
31
0011:  MOVLW  01
31
0051:  MOVLW  01
32
0012:  MOVWF  21
32
0052:  MOVWF  21
33
0013:  CLRF   20
33
0053:  CLRF   20
34
0014:  DECFSZ 20,F
34
0054:  DECFSZ 20,F
35
0015:  GOTO   014
35
0055:  GOTO   054
36
0016:  DECFSZ 21,F
36
0056:  DECFSZ 21,F
37
0017:  GOTO   013
37
0057:  GOTO   053
38
0018:  MOVLW  4A
38
0058:  MOVLW  4A
39
0019:  MOVWF  20
39
0059:  MOVWF  20
40
001A:  DECFSZ 20,F
40
005A:  DECFSZ 20,F
41
001B:  GOTO   01A
41
005B:  GOTO   05A
42
001C:  NOP
42
005C:  NOP
43
001D:  NOP
43
005D:  NOP
44
001E:  DECFSZ 00,F
44
005E:  DECFSZ 00,F
45
001F:  GOTO   011
45
005F:  GOTO   051
46
0020:  RETLW  00
46
0060:  RETLW  00
47
....................   
47
....................  
48
....................  
48
....................  
49
....................   
49
....................  
50
.................... #define LCD_RS          PIN_B1      // rizeni registru LCD displeje  
50
.................... #define LCD_RS          PIN_B1      // rizeni registru LCD displeje 
51
.................... #define LCD_E           PIN_B0      // enable LCD displeje  
51
.................... #define LCD_E           PIN_B0      // enable LCD displeje 
Line 154... Line 154...
154
.................... void lcd_send_nibble( BYTE n )  
154
.................... void lcd_send_nibble( BYTE n ) 
155
.................... {  
155
.................... { 
156
....................    #ifdef LCD_DATA_LSB  
156
....................    #ifdef LCD_DATA_LSB 
157
....................       // data jsou za sebou na 4 bitech jednoho portu  
157
....................       // data jsou za sebou na 4 bitech jednoho portu 
158
....................       *LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK);      // nastav datove bity portu a ostatni zachovej  
158
....................       *LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK);      // nastav datove bity portu a ostatni zachovej 
159
0021:  MOVF   07,W
159
0061:  MOVF   07,W
160
0022:  ANDLW  0F
160
0062:  ANDLW  0F
161
0023:  MOVWF  3A
161
0063:  MOVWF  3D
162
0024:  SWAPF  39,W
162
0064:  SWAPF  3C,W
163
0025:  MOVWF  20
163
0065:  MOVWF  20
164
0026:  MOVLW  F0
164
0066:  MOVLW  F0
165
0027:  ANDWF  20,F
165
0067:  ANDWF  20,F
166
0028:  MOVF   20,W
166
0068:  MOVF   20,W
167
0029:  ANDLW  F0
167
0069:  ANDLW  F0
168
002A:  IORWF  3A,W
168
006A:  IORWF  3D,W
169
002B:  MOVWF  07
169
006B:  MOVWF  07
170
....................    #else  
170
....................    #else 
171
....................       // data jsou na libovolnych 4 bitech libovolnych portu  
171
....................       // data jsou na libovolnych 4 bitech libovolnych portu 
172
....................       output_bit(LCD_D0,bit_test(n,0));  
172
....................       output_bit(LCD_D0,bit_test(n,0)); 
173
....................       output_bit(LCD_D1,bit_test(n,1));  
173
....................       output_bit(LCD_D1,bit_test(n,1)); 
174
....................       output_bit(LCD_D2,bit_test(n,2));  
174
....................       output_bit(LCD_D2,bit_test(n,2)); 
175
....................       output_bit(LCD_D3,bit_test(n,3));  
175
....................       output_bit(LCD_D3,bit_test(n,3)); 
176
....................    #endif  
176
....................    #endif 
177
....................    output_bit(LCD_E,1);       // vzestupna hrana  
177
....................    output_bit(LCD_E,1);       // vzestupna hrana 
178
002C:  BSF    06.0
178
006C:  BSF    06.0
179
002D:  BSF    03.5
179
006D:  BSF    03.5
180
002E:  BCF    06.0
180
006E:  BCF    06.0
181
....................    delay_us(1);               // pockej alespon 450ns od e nebo alespon 195ns od dat  
181
....................    delay_us(1);               // pockej alespon 450ns od e nebo alespon 195ns od dat 
182
002F:  NOP
182
006F:  NOP
183
....................    output_bit(LCD_E,0);       // sestupna hrana (minimalni perioda e je 1us)  
183
....................    output_bit(LCD_E,0);       // sestupna hrana (minimalni perioda e je 1us) 
184
0030:  BCF    03.5
184
0070:  BCF    03.5
185
0031:  BCF    06.0
185
0071:  BCF    06.0
186
0032:  BSF    03.5
186
0072:  BSF    03.5
187
0033:  BCF    06.0
187
0073:  BCF    06.0
188
.................... }  
188
.................... } 
189
0034:  BCF    03.5
189
0074:  BCF    03.5
190
0035:  RETLW  00
190
0075:  RETLW  00
191
....................   
191
....................  
192
....................   
192
....................  
193
.................... // Odesle bajt do registru LCD  
193
.................... // Odesle bajt do registru LCD 
194
.................... //  
194
.................... // 
195
.................... // Pokud je Adr=0 .. instrukcni registr  
195
.................... // Pokud je Adr=0 .. instrukcni registr 
196
.................... // Pokud je Adr=1 .. datovy registr  
196
.................... // Pokud je Adr=1 .. datovy registr 
197
.................... //  
197
.................... // 
198
.................... void lcd_send_byte( BOOLEAN Adr, BYTE n )  
198
.................... void lcd_send_byte( BOOLEAN Adr, BYTE n ) 
199
.................... {  
199
.................... { 
200
....................    output_bit(LCD_RS,Adr);    // vyber registr  
200
....................    output_bit(LCD_RS,Adr);    // vyber registr 
201
0036:  MOVF   37,F
201
0076:  MOVF   3A,F
202
0037:  BTFSS  03.2
202
0077:  BTFSS  03.2
203
0038:  GOTO   03B
203
0078:  GOTO   07B
204
0039:  BCF    06.1
204
0079:  BCF    06.1
205
003A:  GOTO   03C
205
007A:  GOTO   07C
206
003B:  BSF    06.1
206
007B:  BSF    06.1
207
003C:  BSF    03.5
207
007C:  BSF    03.5
208
003D:  BCF    06.1
208
007D:  BCF    06.1
209
....................    swap(n);  
209
....................    swap(n); 
210
003E:  BCF    03.5
210
007E:  BCF    03.5
211
003F:  SWAPF  38,F
211
007F:  SWAPF  3B,F
212
....................    lcd_send_nibble(n);        // posli horni pulku bajtu  
212
....................    lcd_send_nibble(n);        // posli horni pulku bajtu 
213
0040:  MOVF   38,W
213
0080:  MOVF   3B,W
214
0041:  MOVWF  39
214
0081:  MOVWF  3C
215
0042:  CALL   021
215
0082:  CALL   061
216
....................    swap(n);  
216
....................    swap(n); 
217
0043:  SWAPF  38,F
217
0083:  SWAPF  3B,F
218
....................    lcd_send_nibble(n);        // posli spodni pulku bajtu  
218
....................    lcd_send_nibble(n);        // posli spodni pulku bajtu 
219
0044:  MOVF   38,W
219
0084:  MOVF   3B,W
220
0045:  MOVWF  39
220
0085:  MOVWF  3C
221
0046:  CALL   021
221
0086:  CALL   061
222
....................    delay_us(40);              // minimalni doba na provedeni prikazu  
222
....................    delay_us(40);              // minimalni doba na provedeni prikazu 
223
0047:  MOVLW  0D
223
0087:  MOVLW  0D
224
0048:  MOVWF  20
224
0088:  MOVWF  20
225
0049:  DECFSZ 20,F
225
0089:  DECFSZ 20,F
226
004A:  GOTO   049
226
008A:  GOTO   089
227
.................... }  
227
.................... } 
228
004B:  RETLW  00
228
008B:  RETLW  00
229
....................   
229
....................  
230
....................   
230
....................  
231
.................... // Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje  
231
.................... // Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje 
232
.................... //  
232
.................... // 
233
.................... // Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur  
233
.................... // Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur 
Line 236... Line 236...
236
.................... {  
236
.................... { 
237
....................   
237
....................  
238
....................    int i;                              // pocitadlo cyklu  
238
....................    int i;                              // pocitadlo cyklu 
239
....................   
239
....................  
240
....................    delay_ms(20);                       // spozdeni pro provedeni startu displeje po zapnuti napajeni  
240
....................    delay_ms(20);                       // spozdeni pro provedeni startu displeje po zapnuti napajeni 
241
004C:  MOVLW  14
241
008C:  MOVLW  14
242
004D:  MOVWF  33
242
008D:  MOVWF  36
243
004E:  CALL   00C
243
008E:  CALL   04C
244
....................   
244
....................  
245
.................... #ifdef LCD_DATA_LSB  
245
.................... #ifdef LCD_DATA_LSB 
246
....................    // data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy  
246
....................    // data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy 
247
....................    *LCD_TRIS = *LCD_TRIS & ~LCD_MASK;  // nuluj odpovidajici bity tris registru datoveho portu LCD  
247
....................    *LCD_TRIS = *LCD_TRIS & ~LCD_MASK;  // nuluj odpovidajici bity tris registru datoveho portu LCD 
248
004F:  MOVLW  0F
248
008F:  MOVLW  0F
249
0050:  BSF    03.5
249
0090:  BSF    03.5
250
0051:  ANDWF  07,F
250
0091:  ANDWF  07,F
251
.................... #endif  
251
.................... #endif 
252
....................   
252
....................  
253
....................    output_bit(LCD_RS,0);               // nastav jako vystup a nastav klidovy stav  
253
....................    output_bit(LCD_RS,0);               // nastav jako vystup a nastav klidovy stav 
254
0052:  BCF    03.5
254
0092:  BCF    03.5
255
0053:  BCF    06.1
255
0093:  BCF    06.1
256
0054:  BSF    03.5
256
0094:  BSF    03.5
257
0055:  BCF    06.1
257
0095:  BCF    06.1
258
....................    output_bit(LCD_E, 0);               // nastav jako vystup a nastav klidovy stav  
258
....................    output_bit(LCD_E, 0);               // nastav jako vystup a nastav klidovy stav 
259
0056:  BCF    03.5
259
0096:  BCF    03.5
260
0057:  BCF    06.0
260
0097:  BCF    06.0
261
0058:  BSF    03.5
261
0098:  BSF    03.5
262
0059:  BCF    06.0
262
0099:  BCF    06.0
263
....................   
263
....................  
264
....................    for (i=0; i<3; i++)                 // nastav lcd do rezimu 8 bitu sbernice  
264
....................    for (i=0; i<3; i++)                 // nastav lcd do rezimu 8 bitu sbernice 
265
005A:  BCF    03.5
265
009A:  BCF    03.5
266
005B:  CLRF   2A
266
009B:  CLRF   2B
267
005C:  MOVF   2A,W
267
009C:  MOVF   2B,W
268
005D:  SUBLW  02
268
009D:  SUBLW  02
269
005E:  BTFSS  03.0
269
009E:  BTFSS  03.0
270
005F:  GOTO   068
270
009F:  GOTO   0A8
271
....................    {  
271
....................    { 
272
....................       delay_ms(2);                     // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel  
272
....................       delay_ms(2);                     // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel 
273
0060:  MOVLW  02
273
00A0:  MOVLW  02
274
0061:  MOVWF  33
274
00A1:  MOVWF  36
275
0062:  CALL   00C
275
00A2:  CALL   04C
276
....................       lcd_send_nibble(3);              // rezim 8 bitu  
276
....................       lcd_send_nibble(3);              // rezim 8 bitu 
277
0063:  MOVLW  03
277
00A3:  MOVLW  03
278
0064:  MOVWF  39
278
00A4:  MOVWF  3C
279
0065:  CALL   021
279
00A5:  CALL   061
280
....................    }  
280
....................    } 
281
0066:  INCF   2A,F
281
00A6:  INCF   2B,F
282
0067:  GOTO   05C
282
00A7:  GOTO   09C
283
....................   
283
....................  
284
....................    delay_us(40);                       // cas na zpracovani  
284
....................    delay_us(40);                       // cas na zpracovani 
285
0068:  MOVLW  0D
285
00A8:  MOVLW  0D
286
0069:  MOVWF  20
286
00A9:  MOVWF  20
287
006A:  DECFSZ 20,F
287
00AA:  DECFSZ 20,F
288
006B:  GOTO   06A
288
00AB:  GOTO   0AA
289
....................    lcd_send_nibble(2);                 // nastav rezim 4 bitu (plati od nasledujiciho prenosu)  
289
....................    lcd_send_nibble(2);                 // nastav rezim 4 bitu (plati od nasledujiciho prenosu) 
290
006C:  MOVLW  02
290
00AC:  MOVLW  02
291
006D:  MOVWF  39
291
00AD:  MOVWF  3C
292
006E:  CALL   021
292
00AE:  CALL   061
293
....................    delay_us(40);                       // cas na zpracovani  
293
....................    delay_us(40);                       // cas na zpracovani 
294
006F:  MOVLW  0D
294
00AF:  MOVLW  0D
295
0070:  MOVWF  20
295
00B0:  MOVWF  20
296
0071:  DECFSZ 20,F
296
00B1:  DECFSZ 20,F
297
0072:  GOTO   071
297
00B2:  GOTO   0B1
298
....................   
298
....................  
299
....................    for (i=0;i<3;i++)                   // proved inicializaci (nastaveni modu, smazani apod)  
299
....................    for (i=0;i<3;i++)                   // proved inicializaci (nastaveni modu, smazani apod) 
300
0073:  CLRF   2A
300
00B3:  CLRF   2B
301
0074:  MOVF   2A,W
301
00B4:  MOVF   2B,W
302
0075:  SUBLW  02
302
00B5:  SUBLW  02
303
0076:  BTFSS  03.0
303
00B6:  BTFSS  03.0
304
0077:  GOTO   084
304
00B7:  GOTO   0C4
305
....................    {  
305
....................    { 
306
....................       lcd_send_byte(0,LCD_INIT_STRING[i]);  
306
....................       lcd_send_byte(0,LCD_INIT_STRING[i]); 
307
0078:  MOVF   2A,W
307
00B8:  MOVF   2B,W
308
0079:  CALL   004
308
00B9:  CALL   004
309
007A:  MOVWF  2B
309
00BA:  MOVWF  2C
310
007B:  CLRF   37
310
00BB:  CLRF   3A
311
007C:  MOVF   2B,W
311
00BC:  MOVF   2C,W
312
007D:  MOVWF  38
312
00BD:  MOVWF  3B
313
007E:  CALL   036
313
00BE:  CALL   076
314
....................       delay_ms(2);  
314
....................       delay_ms(2); 
315
007F:  MOVLW  02
315
00BF:  MOVLW  02
316
0080:  MOVWF  33
316
00C0:  MOVWF  36
317
0081:  CALL   00C
317
00C1:  CALL   04C
318
....................    }  
318
....................    } 
319
0082:  INCF   2A,F
319
00C2:  INCF   2B,F
320
0083:  GOTO   074
320
00C3:  GOTO   0B4
321
.................... }  
321
.................... } 
322
0084:  BCF    0A.3
322
00C4:  BCF    0A.3
323
0085:  GOTO   16D (RETURN)
323
00C5:  GOTO   1BD (RETURN)
324
....................   
324
....................  
325
....................   
325
....................  
326
.................... // Proved presun kurzoru  
326
.................... // Proved presun kurzoru 
327
.................... //  
327
.................... // 
328
.................... // Pozice 1.1 je domu  
328
.................... // Pozice 1.1 je domu 
Line 331... Line 331...
331
.................... {  
331
.................... { 
332
....................   
332
....................  
333
....................    BYTE Adr;  
333
....................    BYTE Adr; 
334
....................   
334
....................  
335
....................    Adr=x-1;  
335
....................    Adr=x-1; 
336
0086:  MOVLW  01
336
00C6:  MOVLW  01
337
0087:  SUBWF  33,W
337
00C7:  SUBWF  36,W
338
0088:  MOVWF  35
338
00C8:  MOVWF  38
339
....................    if(y==2)  
339
....................    if(y==2) 
340
0089:  MOVF   34,W
340
00C9:  MOVF   37,W
341
008A:  SUBLW  02
341
00CA:  SUBLW  02
342
008B:  BTFSS  03.2
342
00CB:  BTFSS  03.2
343
008C:  GOTO   08F
343
00CC:  GOTO   0CF
344
....................      Adr+=LCD_LINE_2;  
344
....................      Adr+=LCD_LINE_2; 
345
008D:  MOVLW  40
345
00CD:  MOVLW  40
346
008E:  ADDWF  35,F
346
00CE:  ADDWF  38,F
347
....................   
347
....................  
348
....................    lcd_send_byte(0,0x80|Adr);  
348
....................    lcd_send_byte(0,0x80|Adr); 
349
008F:  MOVF   35,W
349
00CF:  MOVF   38,W
350
0090:  IORLW  80
350
00D0:  IORLW  80
351
0091:  MOVWF  36
351
00D1:  MOVWF  39
352
0092:  CLRF   37
352
00D2:  CLRF   3A
353
0093:  MOVF   36,W
353
00D3:  MOVF   39,W
354
0094:  MOVWF  38
354
00D4:  MOVWF  3B
355
0095:  CALL   036
355
00D5:  CALL   076
356
.................... }  
356
.................... } 
357
0096:  RETLW  00
357
00D6:  RETLW  00
358
....................   
358
....................  
359
....................   
359
....................  
360
.................... // Zapis znaku na displej, zpracovani ridicich znaku  
360
.................... // Zapis znaku na displej, zpracovani ridicich znaku 
361
.................... //  
361
.................... // 
362
.................... void lcd_putc( char c)  
362
.................... void lcd_putc( char c) 
363
.................... {  
363
.................... { 
364
....................   
364
....................  
365
....................    switch (c)  
365
....................    switch (c) 
366
....................    {  
366
....................    { 
367
0097:  MOVF   32,W
367
00D7:  MOVF   35,W
368
0098:  XORLW  0C
368
00D8:  XORLW  0C
369
0099:  BTFSC  03.2
369
00D9:  BTFSC  03.2
370
009A:  GOTO   0A5
370
00DA:  GOTO   0E5
371
009B:  XORLW  06
371
00DB:  XORLW  06
372
009C:  BTFSC  03.2
372
00DC:  BTFSC  03.2
373
009D:  GOTO   0AD
373
00DD:  GOTO   0ED
374
009E:  XORLW  07
374
00DE:  XORLW  07
375
009F:  BTFSC  03.2
375
00DF:  BTFSC  03.2
376
00A0:  GOTO   0B3
376
00E0:  GOTO   0F3
377
00A1:  XORLW  05
377
00E1:  XORLW  05
378
00A2:  BTFSC  03.2
378
00E2:  BTFSC  03.2
379
00A3:  GOTO   0B8
379
00E3:  GOTO   0F8
380
00A4:  GOTO   0BD
380
00E4:  GOTO   0FD
381
....................       case '\f'   : lcd_send_byte(0,1);            // smaz displej  
381
....................       case '\f'   : lcd_send_byte(0,1);            // smaz displej 
382
00A5:  CLRF   37
382
00E5:  CLRF   3A
383
00A6:  MOVLW  01
383
00E6:  MOVLW  01
384
00A7:  MOVWF  38
384
00E7:  MOVWF  3B
385
00A8:  CALL   036
385
00E8:  CALL   076
386
....................                     delay_ms(2);  
386
....................                     delay_ms(2); 
387
00A9:  MOVLW  02
387
00E9:  MOVLW  02
388
00AA:  MOVWF  33
388
00EA:  MOVWF  36
389
00AB:  CALL   00C
389
00EB:  CALL   04C
390
....................                                             break;  
390
....................                                             break; 
391
00AC:  GOTO   0C9
391
00EC:  GOTO   109
392
....................       case '\n'   : lcd_gotoxy(1,2);        break; // presun se na 1. znak 2. radky  
392
....................       case '\n'   : lcd_gotoxy(1,2);        break; // presun se na 1. znak 2. radky 
393
00AD:  MOVLW  01
393
00ED:  MOVLW  01
394
00AE:  MOVWF  33
394
00EE:  MOVWF  36
395
00AF:  MOVLW  02
395
00EF:  MOVLW  02
396
00B0:  MOVWF  34
396
00F0:  MOVWF  37
397
00B1:  CALL   086
397
00F1:  CALL   0C6
398
00B2:  GOTO   0C9
398
00F2:  GOTO   109
399
....................       case '\r'   : lcd_gotoxy(1,1);        break; // presun home  
399
....................       case '\r'   : lcd_gotoxy(1,1);        break; // presun home 
400
00B3:  MOVLW  01
400
00F3:  MOVLW  01
401
00B4:  MOVWF  33
401
00F4:  MOVWF  36
402
00B5:  MOVWF  34
402
00F5:  MOVWF  37
403
00B6:  CALL   086
403
00F6:  CALL   0C6
404
00B7:  GOTO   0C9
404
00F7:  GOTO   109
405
....................       case '\b'   : lcd_send_byte(0,0x10);  break; // posun kurzor o 1 zpet  
405
....................       case '\b'   : lcd_send_byte(0,0x10);  break; // posun kurzor o 1 zpet 
406
00B8:  CLRF   37
406
00F8:  CLRF   3A
407
00B9:  MOVLW  10
407
00F9:  MOVLW  10
408
00BA:  MOVWF  38
408
00FA:  MOVWF  3B
409
00BB:  CALL   036
409
00FB:  CALL   076
410
00BC:  GOTO   0C9
410
00FC:  GOTO   109
411
....................       default     : if (c<0x20) c&=0x7;            // preklopeni definovatelnych znaku na rozsah 0 az 0x1F  
411
....................       default     : if (c<0x20) c&=0x7;            // preklopeni definovatelnych znaku na rozsah 0 az 0x1F 
412
00BD:  MOVF   32,W
412
00FD:  MOVF   35,W
413
00BE:  SUBLW  1F
413
00FE:  SUBLW  1F
414
00BF:  BTFSS  03.0
414
00FF:  BTFSS  03.0
415
00C0:  GOTO   0C3
415
0100:  GOTO   103
416
00C1:  MOVLW  07
416
0101:  MOVLW  07
417
00C2:  ANDWF  32,F
417
0102:  ANDWF  35,F
418
....................                     lcd_send_byte(1,c);     break; // zapis znak  
418
....................                     lcd_send_byte(1,c);     break; // zapis znak 
419
00C3:  MOVLW  01
419
0103:  MOVLW  01
420
00C4:  MOVWF  37
420
0104:  MOVWF  3A
421
00C5:  MOVF   32,W
421
0105:  MOVF   35,W
422
00C6:  MOVWF  38
422
0106:  MOVWF  3B
423
00C7:  CALL   036
423
0107:  CALL   076
424
00C8:  GOTO   0C9
424
0108:  GOTO   109
425
....................    }  
425
....................    } 
426
.................... }  
426
.................... } 
427
00C9:  RETLW  00
427
0109:  RETLW  00
428
....................   
428
....................  
429
....................   
429
....................  
430
.................... // Zapni kurzor  
430
.................... // Zapni kurzor 
431
.................... //  
431
.................... // 
432
.................... void lcd_cursor_on()  
432
.................... void lcd_cursor_on() 
Line 446... Line 446...
446
.................... // Smaz displej  
446
.................... // Smaz displej 
447
.................... //  
447
.................... // 
448
.................... void lcd_clr()  
448
.................... void lcd_clr() 
449
.................... {  
449
.................... { 
450
....................    lcd_putc('\f');  
450
....................    lcd_putc('\f'); 
-
 
451
010A:  MOVLW  0C
-
 
452
010B:  MOVWF  35
-
 
453
010C:  CALL   0D7
451
.................... }  
454
.................... } 
-
 
455
010D:  RETLW  00
452
....................   
456
....................  
453
....................   
457
....................  
454
.................... // Definice vlastnich fontu  
458
.................... // Definice vlastnich fontu 
455
.................... //  
459
.................... // 
456
.................... // Vlastnich definic muze byt jen 8 do pozic 0 az 7 pameti CGRAM radice lcd displeje  
460
.................... // Vlastnich definic muze byt jen 8 do pozic 0 az 7 pameti CGRAM radice lcd displeje 
Line 536... Line 540...
536
....................   
540
....................  
537
....................   
541
....................  
538
.................... void main()  
542
.................... void main() 
539
.................... {  
543
.................... { 
540
*
544
*
541
0134:  CLRF   04
545
0184:  CLRF   04
542
0135:  MOVLW  1F
546
0185:  MOVLW  1F
543
0136:  ANDWF  03,F
547
0186:  ANDWF  03,F
544
0137:  BSF    03.5
548
0187:  BSF    03.5
545
0138:  BSF    1F.0
549
0188:  BSF    1F.0
546
0139:  BSF    1F.1
550
0189:  BSF    1F.1
547
013A:  BSF    1F.2
551
018A:  BSF    1F.2
548
013B:  BCF    1F.3
552
018B:  BCF    1F.3
549
....................    signed int16 stred;  
553
.................... signed int16 stred; 
550
....................    signed int16 hodnota;  
554
.................... signed int8 hodnota; 
-
 
555
.................... unsigned int8 i, offset; 
551
....................      
556
....................  
552
....................    setup_adc_ports(ALL_ANALOG);  
557
....................    setup_adc_ports(ALL_ANALOG); 
553
*
558
*
554
013F:  BSF    03.5
559
018F:  BSF    03.5
555
0140:  BCF    1F.0
560
0190:  BCF    1F.0
556
0141:  BCF    1F.1
561
0191:  BCF    1F.1
557
0142:  BCF    1F.2
562
0192:  BCF    1F.2
558
0143:  BCF    1F.3
563
0193:  BCF    1F.3
559
....................    setup_adc(ADC_CLOCK_DIV_2);  
564
....................    setup_adc(ADC_CLOCK_DIV_2); 
560
0144:  BCF    03.5
565
0194:  BCF    03.5
561
0145:  BCF    1F.6
566
0195:  BCF    1F.6
562
0146:  BCF    1F.7
567
0196:  BCF    1F.7
563
0147:  BSF    03.5
568
0197:  BSF    03.5
564
0148:  BSF    1F.7
569
0198:  BSF    1F.7
565
0149:  BCF    03.5
570
0199:  BCF    03.5
566
014A:  BSF    1F.0
571
019A:  BSF    1F.0
567
....................    setup_spi(FALSE);  
572
....................    setup_spi(FALSE); 
568
*
573
*
569
013C:  MOVLW  FF
574
018C:  MOVLW  FF
570
013D:  BCF    03.5
575
018D:  BCF    03.5
571
013E:  MOVWF  25
576
018E:  MOVWF  25
572
*
577
*
573
014B:  BCF    14.5
578
019B:  BCF    14.5
574
014C:  BCF    25.5
579
019C:  BCF    25.5
575
014D:  MOVF   25,W
580
019D:  MOVF   25,W
576
014E:  BSF    03.5
581
019E:  BSF    03.5
577
014F:  MOVWF  07
582
019F:  MOVWF  07
578
0150:  BCF    03.5
583
01A0:  BCF    03.5
579
0151:  BSF    25.4
584
01A1:  BSF    25.4
580
0152:  MOVF   25,W
585
01A2:  MOVF   25,W
581
0153:  BSF    03.5
586
01A3:  BSF    03.5
582
0154:  MOVWF  07
587
01A4:  MOVWF  07
583
0155:  BCF    03.5
588
01A5:  BCF    03.5
584
0156:  BCF    25.3
589
01A6:  BCF    25.3
585
0157:  MOVF   25,W
590
01A7:  MOVF   25,W
586
0158:  BSF    03.5
591
01A8:  BSF    03.5
587
0159:  MOVWF  07
592
01A9:  MOVWF  07
588
015A:  MOVLW  00
593
01AA:  MOVLW  00
589
015B:  BCF    03.5
594
01AB:  BCF    03.5
590
015C:  MOVWF  14
595
01AC:  MOVWF  14
591
015D:  BSF    03.5
596
01AD:  BSF    03.5
592
015E:  MOVWF  14
597
01AE:  MOVWF  14
593
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);  
598
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
594
015F:  MOVF   01,W
599
01AF:  MOVF   01,W
595
0160:  ANDLW  C7
600
01B0:  ANDLW  C7
596
0161:  IORLW  08
601
01B1:  IORLW  08
597
0162:  MOVWF  01
602
01B2:  MOVWF  01
598
....................    setup_timer_1(T1_DISABLED);  
603
....................    setup_timer_1(T1_DISABLED); 
599
0163:  BCF    03.5
604
01B3:  BCF    03.5
600
0164:  CLRF   10
605
01B4:  CLRF   10
601
....................    setup_timer_2(T2_DISABLED,0,1);  
606
....................    setup_timer_2(T2_DISABLED,0,1); 
602
0165:  MOVLW  00
607
01B5:  MOVLW  00
603
0166:  MOVWF  21
608
01B6:  MOVWF  21
604
0167:  MOVWF  12
609
01B7:  MOVWF  12
605
0168:  MOVLW  00
610
01B8:  MOVLW  00
606
0169:  BSF    03.5
611
01B9:  BSF    03.5
607
016A:  MOVWF  12
612
01BA:  MOVWF  12
608
....................   
613
....................  
609
....................    lcd_init();  
614
....................    lcd_init(); 
610
016B:  BCF    03.5
615
01BB:  BCF    03.5
611
016C:  GOTO   04C
616
01BC:  GOTO   08C
612
....................    Delay_ms(100);  
617
....................    Delay_ms(100); 
613
016D:  MOVLW  64
618
01BD:  MOVLW  64
614
016E:  MOVWF  33
619
01BE:  MOVWF  36
615
016F:  CALL   00C
620
01BF:  CALL   04C
616
....................    set_adc_channel(1);  
621
....................    set_adc_channel(1); 
617
0170:  MOVLW  08
622
01C0:  MOVLW  08
618
0171:  MOVWF  21
623
01C1:  MOVWF  21
619
0172:  MOVF   1F,W
624
01C2:  MOVF   1F,W
620
0173:  ANDLW  C7
625
01C3:  ANDLW  C7
621
0174:  IORWF  21,W
626
01C4:  IORWF  21,W
622
0175:  MOVWF  1F
627
01C5:  MOVWF  1F
-
 
628
....................  
-
 
629
....................    LCD_gotoxy(1,1); 
-
 
630
01C6:  MOVLW  01
-
 
631
01C7:  MOVWF  36
-
 
632
01C8:  MOVWF  37
-
 
633
01C9:  CALL   0C6
-
 
634
....................    printf(lcd_putc,"Gmetr 0.1.2 Beta"); 
-
 
635
01CA:  CLRF   2B
-
 
636
01CB:  MOVF   2B,W
-
 
637
01CC:  CALL   00C
-
 
638
01CD:  IORLW  00
-
 
639
01CE:  BTFSC  03.2
-
 
640
01CF:  GOTO   1D4
-
 
641
01D0:  INCF   2B,F
-
 
642
01D1:  MOVWF  35
-
 
643
01D2:  CALL   0D7
-
 
644
01D3:  GOTO   1CB
-
 
645
....................    LCD_gotoxy(1,2); 
-
 
646
01D4:  MOVLW  01
-
 
647
01D5:  MOVWF  36
-
 
648
01D6:  MOVLW  02
-
 
649
01D7:  MOVWF  37
-
 
650
01D8:  CALL   0C6
-
 
651
....................    printf(lcd_putc,"Kaklik@mlab.cz"); 
-
 
652
01D9:  CLRF   2B
-
 
653
01DA:  MOVF   2B,W
-
 
654
01DB:  CALL   021
-
 
655
01DC:  IORLW  00
-
 
656
01DD:  BTFSC  03.2
-
 
657
01DE:  GOTO   1E3
-
 
658
01DF:  INCF   2B,F
-
 
659
01E0:  MOVWF  35
-
 
660
01E1:  CALL   0D7
-
 
661
01E2:  GOTO   1DA
623
....................    Delay_ms(500);  
662
....................    Delay_ms(500); 
624
0176:  MOVLW  02
663
01E3:  MOVLW  02
625
0177:  MOVWF  2A
664
01E4:  MOVWF  2B
626
0178:  MOVLW  FA
665
01E5:  MOVLW  FA
627
0179:  MOVWF  33
666
01E6:  MOVWF  36
628
017A:  CALL   00C
667
01E7:  CALL   04C
629
017B:  DECFSZ 2A,F
668
01E8:  DECFSZ 2B,F
-
 
669
01E9:  GOTO   1E5
-
 
670
....................  
-
 
671
....................    LCD_clr(); 
-
 
672
01EA:  CALL   10A
-
 
673
....................    LCD_gotoxy(1,1); 
-
 
674
01EB:  MOVLW  01
-
 
675
01EC:  MOVWF  36
-
 
676
01ED:  MOVWF  37
-
 
677
01EE:  CALL   0C6
-
 
678
....................    printf(lcd_putc,"Clibration..."); 
-
 
679
01EF:  CLRF   2B
-
 
680
01F0:  MOVF   2B,W
-
 
681
01F1:  CALL   034
-
 
682
01F2:  IORLW  00
-
 
683
01F3:  BTFSC  03.2
-
 
684
01F4:  GOTO   1F9
-
 
685
01F5:  INCF   2B,F
-
 
686
01F6:  MOVWF  35
-
 
687
01F7:  CALL   0D7
630
017C:  GOTO   178
688
01F8:  GOTO   1F0
-
 
689
....................  
-
 
690
....................    stred = 0;  
-
 
691
01F9:  CLRF   27
-
 
692
01FA:  CLRF   26
-
 
693
....................    for(i=0;i<=127;i++) 
-
 
694
01FB:  CLRF   29
-
 
695
01FC:  MOVF   29,W
-
 
696
01FD:  SUBLW  7F
-
 
697
01FE:  BTFSS  03.0
-
 
698
01FF:  GOTO   210
-
 
699
....................    { 
-
 
700
....................      Delay_ms(10); 
-
 
701
0200:  MOVLW  0A
-
 
702
0201:  MOVWF  36
-
 
703
0202:  CALL   04C
631
....................    stred = read_adc();  
704
....................      stred = stred + read_adc(); 
632
017D:  BSF    1F.2
705
0203:  BSF    1F.2
633
017E:  BTFSC  1F.2
706
0204:  BTFSC  1F.2
634
017F:  GOTO   17E
707
0205:  GOTO   204
635
0180:  BSF    03.5
708
0206:  BSF    03.5
636
0181:  MOVF   1E,W
709
0207:  MOVF   1E,W
637
0182:  BCF    03.5
710
0208:  BCF    03.5
638
0183:  MOVWF  26
711
0209:  ADDWF  26,F
-
 
712
020A:  BTFSC  03.0
-
 
713
020B:  INCF   27,F
639
0184:  MOVF   1E,W
714
020C:  MOVF   1E,W
-
 
715
020D:  ADDWF  27,F
-
 
716
....................    } 
-
 
717
020E:  INCF   29,F
-
 
718
020F:  GOTO   1FC
-
 
719
....................    stred = stred >> 7; 
-
 
720
0210:  RRF    27,F
-
 
721
0211:  RRF    26,F
-
 
722
0212:  RRF    27,F
-
 
723
0213:  RRF    26,F
-
 
724
0214:  RRF    27,F
-
 
725
0215:  RRF    26,F
-
 
726
0216:  RRF    27,F
-
 
727
0217:  RRF    26,F
-
 
728
0218:  RRF    27,F
-
 
729
0219:  RRF    26,F
-
 
730
021A:  RRF    27,F
-
 
731
021B:  RRF    26,F
-
 
732
021C:  RRF    27,F
-
 
733
021D:  RRF    26,F
640
0185:  MOVWF  27
734
021E:  MOVLW  01
-
 
735
021F:  ANDWF  27,F
641
....................      
736
....................  
642
....................    while(true)  
737
....................    while(true) 
643
....................    {  
738
....................    { 
644
....................       hodnota = stred - read_adc();  
739
....................       hodnota = read_adc(); 
645
0186:  BSF    1F.2
740
0220:  BSF    1F.2
646
0187:  BTFSC  1F.2
741
0221:  BTFSC  1F.2
647
0188:  GOTO   187
742
0222:  GOTO   221
648
0189:  BSF    03.5
743
0223:  BSF    03.5
649
018A:  MOVF   1E,W
744
0224:  MOVF   1E,W
650
018B:  BCF    03.5
745
0225:  BCF    03.5
651
018C:  SUBWF  26,W
746
0226:  MOVWF  28
-
 
747
....................       Delay_ms(50); 
-
 
748
0227:  MOVLW  32
652
018D:  MOVWF  28
749
0228:  MOVWF  36
-
 
750
0229:  CALL   04C
-
 
751
....................       LCD_clr(); 
653
018E:  MOVF   27,W
752
022A:  CALL   10A
-
 
753
....................       LCD_gotoxy(6,1); 
654
018F:  MOVWF  29
754
022B:  MOVLW  06
655
0190:  MOVF   1E,W
755
022C:  MOVWF  36
656
0191:  BTFSS  03.0
756
022D:  MOVLW  01
657
0192:  INCFSZ 1E,W
757
022E:  MOVWF  37
658
0193:  SUBWF  29,F
758
022F:  CALL   0C6
659
....................       Delay_ms(100);  
759
....................       printf(lcd_putc," %03ld ",(stred - hodnota)); 
-
 
760
0230:  CLRF   23
660
0194:  MOVLW  64
761
0231:  MOVF   28,W
661
0195:  MOVWF  33
762
0232:  MOVWF  20
-
 
763
0233:  BTFSC  28.7
662
0196:  CALL   00C
764
0234:  DECF   23,F
663
....................       LCD_gotoxy(1,1);  
765
0235:  SUBWF  26,W
664
0197:  MOVLW  01
766
0236:  MOVWF  2B
-
 
767
0237:  MOVF   27,W
665
0198:  MOVWF  33
768
0238:  MOVWF  2C
666
0199:  MOVWF  34
769
0239:  MOVF   23,W
667
019A:  CALL   086
770
023A:  BTFSS  03.0
668
....................       printf(lcd_putc,"                ");  
-
 
669
019B:  MOVLW  10
771
023B:  INCFSZ 23,W
670
019C:  MOVWF  2A
772
023C:  SUBWF  2C,F
671
019D:  MOVLW  20
773
023D:  MOVLW  20
672
019E:  MOVWF  32
774
023E:  MOVWF  35
673
019F:  CALL   097
775
023F:  CALL   0D7
674
01A0:  DECFSZ 2A,F
776
0240:  MOVLW  0B
675
01A1:  GOTO   19D
777
0241:  MOVWF  04
676
....................       if (hodnota<0)  
-
 
677
01A2:  BTFSS  29.7
778
0242:  MOVF   2C,W
678
01A3:  GOTO   1CA
779
0243:  MOVWF  2E
679
....................       {  
780
0244:  MOVF   2B,W
680
....................          LCD_gotoxy(5,2);  
-
 
681
01A4:  MOVLW  05
781
0245:  MOVWF  2D
682
01A5:  MOVWF  33
782
0246:  GOTO   10E
683
01A6:  MOVLW  02
783
0247:  MOVLW  20
684
01A7:  MOVWF  34
784
0248:  MOVWF  35
685
01A8:  CALL   086
785
0249:  CALL   0D7
686
....................          printf(lcd_putc," %03ld  ",hodnota);  
786
....................       if (hodnota >= stred) 
-
 
787
024A:  CLRF   23
687
01A9:  MOVLW  20
788
024B:  MOVF   28,W
688
01AA:  MOVWF  32
789
024C:  MOVWF  20
689
01AB:  CALL   097
790
024D:  BTFSC  20.7
690
01AC:  MOVLW  0A
791
024E:  DECF   23,F
691
01AD:  MOVWF  04
792
024F:  MOVWF  21
-
 
793
0250:  BTFSS  27.7
-
 
794
0251:  GOTO   255
-
 
795
0252:  BTFSS  23.7
-
 
796
0253:  GOTO   261
692
01AE:  MOVF   29,W
797
0254:  GOTO   257
-
 
798
0255:  BTFSC  23.7
693
01AF:  MOVWF  2B
799
0256:  GOTO   278
694
01B0:  MOVF   28,W
800
0257:  MOVF   27,W
695
01B1:  MOVWF  2A
801
0258:  SUBWF  23,W
696
01B2:  CALL   0CA
802
0259:  BTFSS  03.0
697
01B3:  MOVLW  20
803
025A:  GOTO   278
698
01B4:  MOVWF  32
804
025B:  BTFSS  03.2
699
01B5:  CALL   097
805
025C:  GOTO   261
700
01B6:  MOVLW  20
806
025D:  MOVF   26,W
701
01B7:  MOVWF  32
807
025E:  SUBWF  21,W
-
 
808
025F:  BTFSS  03.0
702
01B8:  CALL   097
809
0260:  GOTO   278
-
 
810
....................       { 
703
....................          LCD_gotoxy(8-hodnota,1);  
811
....................         offset = hodnota - stred; 
-
 
812
0261:  CLRF   23
704
01B9:  MOVF   28,W
813
0262:  MOVF   28,W
705
01BA:  SUBLW  08
814
0263:  BTFSC  28.7
-
 
815
0264:  DECF   23,F
706
01BB:  MOVWF  2A
816
0265:  MOVWF  21
707
01BC:  CLRF   2B
817
0266:  MOVF   26,W
-
 
818
0267:  SUBWF  21,W
-
 
819
0268:  MOVWF  20
708
01BD:  MOVF   29,W
820
0269:  MOVF   27,W
709
01BE:  BTFSS  03.0
821
026A:  BTFSS  03.0
710
01BF:  INCFSZ 29,W
822
026B:  INCFSZ 27,W
711
01C0:  SUBWF  2B,F
823
026C:  SUBWF  23,F
712
01C1:  MOVF   2A,W
824
026D:  MOVF   20,W
713
01C2:  MOVWF  33
825
026E:  MOVWF  2A
-
 
826
....................         offset = (offset >> 5) + 8; 
714
01C3:  MOVLW  01
827
026F:  SWAPF  2A,W
715
01C4:  MOVWF  34
828
0270:  MOVWF  20
716
01C5:  CALL   086
829
0271:  RRF    20,F
717
....................          printf(lcd_putc,"*",hodnota);  
-
 
718
01C6:  MOVLW  2A
830
0272:  MOVLW  07
-
 
831
0273:  ANDWF  20,F
719
01C7:  MOVWF  32
832
0274:  MOVF   20,W
720
01C8:  CALL   097
833
0275:  ADDLW  08
-
 
834
0276:  MOVWF  2A
721
....................       }  
835
....................       } 
722
....................       else  
836
....................       else 
723
01C9:  GOTO   1EF
837
0277:  GOTO   28C
724
....................       {  
838
....................       { 
725
....................          LCD_gotoxy(6,2);  
839
....................         offset = stred - hodnota; 
726
01CA:  MOVLW  06
840
0278:  CLRF   23
727
01CB:  MOVWF  33
841
0279:  MOVF   28,W
728
01CC:  MOVLW  02
842
027A:  BTFSC  28.7
729
01CD:  MOVWF  34
843
027B:  DECF   23,F
730
01CE:  CALL   086
844
027C:  SUBWF  26,W
731
....................          printf(lcd_putc," %03ld  ",hodnota);  
-
 
732
01CF:  MOVLW  20
845
027D:  MOVWF  20
733
01D0:  MOVWF  32
846
027E:  MOVF   23,W
734
01D1:  CALL   097
847
027F:  BTFSS  03.0
735
01D2:  MOVLW  0A
848
0280:  INCFSZ 23,W
736
01D3:  MOVWF  04
849
0281:  GOTO   284
737
01D4:  MOVF   29,W
850
0282:  MOVF   27,W
738
01D5:  MOVWF  2B
851
0283:  GOTO   285
739
01D6:  MOVF   28,W
852
0284:  SUBWF  27,W
740
01D7:  MOVWF  2A
853
0285:  MOVWF  23
741
01D8:  CALL   0CA
854
0286:  MOVF   20,W
742
01D9:  MOVLW  20
855
0287:  MOVWF  2A
-
 
856
....................         offset = offset >> 5; 
743
01DA:  MOVWF  32
857
0288:  SWAPF  2A,F
744
01DB:  CALL   097
858
0289:  RRF    2A,F
745
01DC:  MOVLW  20
859
028A:  MOVLW  07
746
01DD:  MOVWF  32
860
028B:  ANDWF  2A,F
747
01DE:  CALL   097
861
....................       } 
748
....................          LCD_gotoxy(8-hodnota,1);  
862
....................       LCD_gotoxy(offset,2); 
749
01DF:  MOVF   28,W
863
028C:  MOVF   2A,W
750
01E0:  SUBLW  08
-
 
751
01E1:  MOVWF  2A
864
028D:  MOVWF  36
752
01E2:  CLRF   2B
865
028E:  MOVLW  02
753
01E3:  MOVF   29,W
866
028F:  MOVWF  37
754
01E4:  BTFSS  03.0
867
0290:  CALL   0C6
755
01E5:  INCFSZ 29,W
868
....................       printf(lcd_putc,"*"); 
756
01E6:  SUBWF  2B,F
869
0291:  CLRF   2B
757
01E7:  MOVF   2A,W
870
0292:  MOVF   2B,W
758
01E8:  MOVWF  33
871
0293:  CALL   046
759
01E9:  MOVLW  01
872
0294:  IORLW  00
760
01EA:  MOVWF  34
873
0295:  BTFSC  03.2
761
01EB:  CALL   086
874
0296:  GOTO   29B
762
....................          printf(lcd_putc,"*",hodnota);  
-
 
763
01EC:  MOVLW  2A
875
0297:  INCF   2B,F
764
01ED:  MOVWF  32
876
0298:  MOVWF  35
765
01EE:  CALL   097
877
0299:  CALL   0D7
-
 
878
029A:  GOTO   292
766
....................       }  
879
....................    } 
-
 
880
029B:  GOTO   220
767
....................    }  
881
.................... } 
768
01EF:  GOTO   186
-
 
769
.................... }  
-
 
770
....................  
-
 
771
01F0:  SLEEP
882
029C:  SLEEP
772
 
883
 
773
Configuration Fuses:
884
Configuration Fuses:
774
   Word  1: 3F39   XT NOWDT NOPUT NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG
885
   Word  1: 3F39   XT NOWDT NOPUT NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT NODEBUG