Rev 157 Rev 180
Line 1... Line 1...
1 CCS PCM C Compiler, Version 4.059d, 15399 01-III-07 20:10 1 CCS PCM C Compiler, Version 4.059d, 15399 04-IV-07 20:22
2   2  
3 Filename: main.lst 3 Filename: main.lst
4   4  
5 ROM used: 1222 words (60%) 5 ROM used: 1242 words (61%)
6 Largest free fragment is 826 6 Largest free fragment is 806
7 RAM used: 19 (5%) at main() level 7 RAM used: 19 (5%) at main() level
8 44 (12%) worst case 8 44 (12%) 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 31E 14 0002: GOTO 330
15 0003: NOP 15 0003: NOP
16 .................... #include "C:\RS\Lux10brf\main.h" 16 .................... #include "C:\RS\Lux10brf\main.h"
17 .................... #include <16F877A.h> 17 .................... #include <16F877A.h>
18 .................... //////// Standard Header file for the PIC16F877A device //////////////// 18 .................... //////// Standard Header file for the PIC16F877A device ////////////////
19 .................... #device PIC16F877A 19 .................... #device PIC16F877A
Line 31... Line 31...
31 .................... #FUSES NOCPD //No EE protection 31 .................... #FUSES NOCPD //No EE protection
32 .................... #FUSES NOWRT //Program memory not write protected 32 .................... #FUSES NOWRT //Program memory not write protected
33 .................... 33 ....................
34 .................... #use delay(clock=4000000,RESTART_WDT) 34 .................... #use delay(clock=4000000,RESTART_WDT)
35 * 35 *
36 009D: MOVLW 3A 36 00AF: MOVLW 3A
37 009E: MOVWF 04 37 00B0: MOVWF 04
38 009F: BCF 03.7 38 00B1: BCF 03.7
39 00A0: MOVF 00,W 39 00B2: MOVF 00,W
40 00A1: BTFSC 03.2 40 00B3: BTFSC 03.2
41 00A2: GOTO 0B4 41 00B4: GOTO 0C6
42 00A3: MOVLW 01 42 00B5: MOVLW 01
43 00A4: MOVWF 78 43 00B6: MOVWF 78
44 00A5: MOVLW BF 44 00B7: MOVLW BF
45 00A6: MOVWF 77 45 00B8: MOVWF 77
46 00A7: CLRWDT 46 00B9: CLRWDT
47 00A8: DECFSZ 77,F 47 00BA: DECFSZ 77,F
48 00A9: GOTO 0A7 48 00BB: GOTO 0B9
49 00AA: DECFSZ 78,F 49 00BC: DECFSZ 78,F
50 00AB: GOTO 0A5 50 00BD: GOTO 0B7
51 00AC: MOVLW 4A 51 00BE: MOVLW 4A
52 00AD: MOVWF 77 52 00BF: MOVWF 77
53 00AE: DECFSZ 77,F 53 00C0: DECFSZ 77,F
54 00AF: GOTO 0AE 54 00C1: GOTO 0C0
55 00B0: NOP 55 00C2: NOP
56 00B1: CLRWDT 56 00C3: CLRWDT
57 00B2: DECFSZ 00,F 57 00C4: DECFSZ 00,F
58 00B3: GOTO 0A3 58 00C5: GOTO 0B5
59 00B4: RETLW 00 59 00C6: RETLW 00
60 .................... 60 ....................
61 .................... 61 ....................
62 .................... 62 ....................
63 .................... #define LCD_RS PIN_B1 // rizeni registru LCD displeje 63 .................... #define LCD_RS PIN_B0 // rizeni registru LCD displeje
64 .................... #define LCD_E PIN_B0 // enable LCD displeje 64 .................... #define LCD_E PIN_B1 // enable LCD displeje
65 .................... #define LCD_DATA_LSB PIN_C4 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) 65 .................... #define LCD_DATA_LSB PIN_C4 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
66 .................... #define LUX1 PIN_B2 66 .................... #define LUX1 PIN_B2
67 .................... #define LUX2 PIN_B3 67 .................... #define LUX2 PIN_B3
68 .................... #define LUX3 PIN_B4 68 .................... #define LUX3 PIN_B4
69 .................... #define LUX4 PIN_B5 69 .................... #define LUX4 PIN_B5
Line 172... Line 172...
172 .................... void lcd_send_nibble( BYTE n ) 172 .................... void lcd_send_nibble( BYTE n )
173 .................... { 173 .................... {
174 .................... #ifdef LCD_DATA_LSB 174 .................... #ifdef LCD_DATA_LSB
175 .................... // data jsou za sebou na 4 bitech jednoho portu 175 .................... // data jsou za sebou na 4 bitech jednoho portu
176 .................... *LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK); // nastav datove bity portu a ostatni zachovej 176 .................... *LCD_PORT = (*LCD_PORT & ~LCD_MASK) | ((n << LCD_SHIFT) & LCD_MASK); // nastav datove bity portu a ostatni zachovej
177 00B5: MOVF 07,W 177 00C7: MOVF 07,W
178 00B6: ANDLW 0F 178 00C8: ANDLW 0F
179 00B7: MOVWF 42 179 00C9: MOVWF 42
180 00B8: SWAPF 40,W 180 00CA: SWAPF 40,W
181 00B9: MOVWF 77 181 00CB: MOVWF 77
182 00BA: MOVLW F0 182 00CC: MOVLW F0
183 00BB: ANDWF 77,F 183 00CD: ANDWF 77,F
184 00BC: MOVF 77,W 184 00CE: MOVF 77,W
185 00BD: ANDLW F0 185 00CF: ANDLW F0
186 00BE: IORWF 42,W 186 00D0: IORWF 42,W
187 00BF: MOVWF 07 187 00D1: MOVWF 07
188 .................... #else 188 .................... #else
189 .................... // data jsou na libovolnych 4 bitech libovolnych portu 189 .................... // data jsou na libovolnych 4 bitech libovolnych portu
190 .................... output_bit(LCD_D0,bit_test(n,0)); 190 .................... output_bit(LCD_D0,bit_test(n,0));
191 .................... output_bit(LCD_D1,bit_test(n,1)); 191 .................... output_bit(LCD_D1,bit_test(n,1));
192 .................... output_bit(LCD_D2,bit_test(n,2)); 192 .................... output_bit(LCD_D2,bit_test(n,2));
193 .................... output_bit(LCD_D3,bit_test(n,3)); 193 .................... output_bit(LCD_D3,bit_test(n,3));
194 .................... #endif 194 .................... #endif
195 .................... output_bit(LCD_E,1); // vzestupna hrana 195 .................... output_bit(LCD_E,1); // vzestupna hrana
196 00C0: BSF 06.0 196 00D2: BSF 06.1
197 00C1: BSF 03.5 197 00D3: BSF 03.5
198 00C2: BCF 06.0 198 00D4: BCF 06.1
199 .................... delay_us(1); // pockej alespon 450ns od e nebo alespon 195ns od dat 199 .................... delay_us(1); // pockej alespon 450ns od e nebo alespon 195ns od dat
200 00C3: CLRWDT 200 00D5: CLRWDT
201 .................... output_bit(LCD_E,0); // sestupna hrana (minimalni perioda e je 1us) 201 .................... output_bit(LCD_E,0); // sestupna hrana (minimalni perioda e je 1us)
202 00C4: BCF 03.5 202 00D6: BCF 03.5
203 00C5: BCF 06.0 203 00D7: BCF 06.1
204 00C6: BSF 03.5 204 00D8: BSF 03.5
205 00C7: BCF 06.0 205 00D9: BCF 06.1
206 .................... } 206 .................... }
207 00C8: BCF 03.5 207 00DA: BCF 03.5
208 00C9: RETLW 00 208 00DB: RETLW 00
209 .................... 209 ....................
210 .................... 210 ....................
211 .................... // Odesle bajt do registru LCD 211 .................... // Odesle bajt do registru LCD
212 .................... // 212 .................... //
213 .................... // Pokud je Adr=0 .. instrukcni registr 213 .................... // Pokud je Adr=0 .. instrukcni registr
214 .................... // Pokud je Adr=1 .. datovy registr 214 .................... // Pokud je Adr=1 .. datovy registr
215 .................... // 215 .................... //
216 .................... void lcd_send_byte( BOOLEAN Adr, BYTE n ) 216 .................... void lcd_send_byte( BOOLEAN Adr, BYTE n )
217 .................... { 217 .................... {
218 .................... output_bit(LCD_RS,Adr); // vyber registr 218 .................... output_bit(LCD_RS,Adr); // vyber registr
219 00CA: MOVF 3E,F 219 00DC: MOVF 3E,F
220 00CB: BTFSS 03.2 220 00DD: BTFSS 03.2
221 00CC: GOTO 0CF 221 00DE: GOTO 0E1
222 00CD: BCF 06.1 222 00DF: BCF 06.0
223 00CE: GOTO 0D0 223 00E0: GOTO 0E2
224 00CF: BSF 06.1 224 00E1: BSF 06.0
225 00D0: BSF 03.5 225 00E2: BSF 03.5
226 00D1: BCF 06.1 226 00E3: BCF 06.0
227 .................... swap(n); 227 .................... swap(n);
228 00D2: BCF 03.5 228 00E4: BCF 03.5
229 00D3: SWAPF 3F,F 229 00E5: SWAPF 3F,F
230 .................... lcd_send_nibble(n); // posli horni pulku bajtu 230 .................... lcd_send_nibble(n); // posli horni pulku bajtu
231 00D4: MOVF 3F,W 231 00E6: MOVF 3F,W
232 00D5: MOVWF 40 232 00E7: MOVWF 40
233 00D6: CALL 0B5 233 00E8: CALL 0C7
234 .................... swap(n); 234 .................... swap(n);
235 00D7: SWAPF 3F,F 235 00E9: SWAPF 3F,F
236 .................... lcd_send_nibble(n); // posli spodni pulku bajtu 236 .................... lcd_send_nibble(n); // posli spodni pulku bajtu
237 00D8: MOVF 3F,W 237 00EA: MOVF 3F,W
238 00D9: MOVWF 40 238 00EB: MOVWF 40
239 00DA: CALL 0B5 239 00EC: CALL 0C7
240 .................... delay_us(40); // minimalni doba na provedeni prikazu 240 .................... delay_us(40); // minimalni doba na provedeni prikazu
241 00DB: CLRWDT 241 00ED: CLRWDT
242 00DC: MOVLW 0C 242 00EE: MOVLW 0C
243 00DD: MOVWF 77 243 00EF: MOVWF 77
244 00DE: DECFSZ 77,F 244 00F0: DECFSZ 77,F
245 00DF: GOTO 0DE 245 00F1: GOTO 0F0
246 00E0: GOTO 0E1 246 00F2: GOTO 0F3
247 .................... } 247 .................... }
248 00E1: RETLW 00 248 00F3: RETLW 00
249 .................... 249 ....................
250 .................... 250 ....................
251 .................... // Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje 251 .................... // Provede inicializaci LCD displeje, smaze obsah a nastavi mod displeje
252 .................... // 252 .................... //
253 .................... // Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur 253 .................... // Tato procedura se musi volat pred pouzitim ostatnich lcd_ procedur
Line 256... Line 256...
256 .................... { 256 .................... {
257 .................... 257 ....................
258 .................... int i; // pocitadlo cyklu 258 .................... int i; // pocitadlo cyklu
259 .................... 259 ....................
260 .................... delay_ms(20); // spozdeni pro provedeni startu displeje po zapnuti napajeni 260 .................... delay_ms(20); // spozdeni pro provedeni startu displeje po zapnuti napajeni
261 00E2: MOVLW 14 261 00F4: MOVLW 14
262 00E3: MOVWF 3A 262 00F5: MOVWF 3A
263 00E4: CALL 09D 263 00F6: CALL 0AF
264 .................... 264 ....................
265 .................... #ifdef LCD_DATA_LSB 265 .................... #ifdef LCD_DATA_LSB
266 .................... // data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy 266 .................... // data jsou na 4 bitech za sebou, nastav smer pro vsechny dalsi prenosy
267 .................... *LCD_TRIS = *LCD_TRIS & ~LCD_MASK; // nuluj odpovidajici bity tris registru datoveho portu LCD 267 .................... *LCD_TRIS = *LCD_TRIS & ~LCD_MASK; // nuluj odpovidajici bity tris registru datoveho portu LCD
268 00E5: MOVLW 0F 268 00F7: MOVLW 0F
269 00E6: BSF 03.5 269 00F8: BSF 03.5
270 00E7: ANDWF 07,F 270 00F9: ANDWF 07,F
271 .................... #endif 271 .................... #endif
272 .................... 272 ....................
273 .................... output_bit(LCD_RS,0); // nastav jako vystup a nastav klidovy stav 273 .................... output_bit(LCD_RS,0); // nastav jako vystup a nastav klidovy stav
274 00E8: BCF 03.5 274 00FA: BCF 03.5
275 00E9: BCF 06.1 275 00FB: BCF 06.0
276 00EA: BSF 03.5 276 00FC: BSF 03.5
277 00EB: BCF 06.1 277 00FD: BCF 06.0
278 .................... output_bit(LCD_E, 0); // nastav jako vystup a nastav klidovy stav 278 .................... output_bit(LCD_E, 0); // nastav jako vystup a nastav klidovy stav
279 00EC: BCF 03.5 279 00FE: BCF 03.5
280 00ED: BCF 06.0 280 00FF: BCF 06.1
281 00EE: BSF 03.5 281 0100: BSF 03.5
282 00EF: BCF 06.0 282 0101: BCF 06.1
283 .................... 283 ....................
284 .................... for (i=0; i<3; i++) // nastav lcd do rezimu 8 bitu sbernice 284 .................... for (i=0; i<3; i++) // nastav lcd do rezimu 8 bitu sbernice
285 00F0: BCF 03.5 285 0102: BCF 03.5
286 00F1: CLRF 27 286 0103: CLRF 27
287 00F2: MOVF 27,W 287 0104: MOVF 27,W
288 00F3: SUBLW 02 288 0105: SUBLW 02
289 00F4: BTFSS 03.0 289 0106: BTFSS 03.0
290 00F5: GOTO 0FE 290 0107: GOTO 110
291 .................... { 291 .................... {
292 .................... delay_ms(2); // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel 292 .................... delay_ms(2); // muze byt rozdelany prenos dat (2x 4 bity) nebo pomaly povel
293 00F6: MOVLW 02 293 0108: MOVLW 02
294 00F7: MOVWF 3A 294 0109: MOVWF 3A
295 00F8: CALL 09D 295 010A: CALL 0AF
296 .................... lcd_send_nibble(3); // rezim 8 bitu 296 .................... lcd_send_nibble(3); // rezim 8 bitu
297 00F9: MOVLW 03 297 010B: MOVLW 03
298 00FA: MOVWF 40 298 010C: MOVWF 40
299 00FB: CALL 0B5 299 010D: CALL 0C7
300 .................... } 300 .................... }
301 00FC: INCF 27,F 301 010E: INCF 27,F
302 00FD: GOTO 0F2 302 010F: GOTO 104
303 .................... 303 ....................
304 .................... delay_us(40); // cas na zpracovani 304 .................... delay_us(40); // cas na zpracovani
305 00FE: CLRWDT 305 0110: CLRWDT
306 00FF: MOVLW 0C 306 0111: MOVLW 0C
307 0100: MOVWF 77 307 0112: MOVWF 77
308 0101: DECFSZ 77,F 308 0113: DECFSZ 77,F
309 0102: GOTO 101 309 0114: GOTO 113
310 0103: GOTO 104 310 0115: GOTO 116
311 .................... lcd_send_nibble(2); // nastav rezim 4 bitu (plati od nasledujiciho prenosu) 311 .................... lcd_send_nibble(2); // nastav rezim 4 bitu (plati od nasledujiciho prenosu)
312 0104: MOVLW 02 312 0116: MOVLW 02
313 0105: MOVWF 40 313 0117: MOVWF 40
314 0106: CALL 0B5 314 0118: CALL 0C7
315 .................... delay_us(40); // cas na zpracovani 315 .................... delay_us(40); // cas na zpracovani
316 0107: CLRWDT 316 0119: CLRWDT
317 0108: MOVLW 0C 317 011A: MOVLW 0C
318 0109: MOVWF 77 318 011B: MOVWF 77
319 010A: DECFSZ 77,F 319 011C: DECFSZ 77,F
320 010B: GOTO 10A 320 011D: GOTO 11C
321 010C: GOTO 10D 321 011E: GOTO 11F
322 .................... 322 ....................
323 .................... for (i=0;i<3;i++) // proved inicializaci (nastaveni modu, smazani apod) 323 .................... for (i=0;i<3;i++) // proved inicializaci (nastaveni modu, smazani apod)
324 010D: CLRF 27 324 011F: CLRF 27
325 010E: MOVF 27,W 325 0120: MOVF 27,W
326 010F: SUBLW 02 326 0121: SUBLW 02
327 0110: BTFSS 03.0 327 0122: BTFSS 03.0
328 0111: GOTO 11E 328 0123: GOTO 130
329 .................... { 329 .................... {
330 .................... lcd_send_byte(0,LCD_INIT_STRING[i]); 330 .................... lcd_send_byte(0,LCD_INIT_STRING[i]);
331 0112: MOVF 27,W 331 0124: MOVF 27,W
332 0113: CALL 004 332 0125: CALL 004
333 0114: MOVWF 28 333 0126: MOVWF 28
334 0115: CLRF 3E 334 0127: CLRF 3E
335 0116: MOVF 28,W 335 0128: MOVF 28,W
336 0117: MOVWF 3F 336 0129: MOVWF 3F
337 0118: CALL 0CA 337 012A: CALL 0DC
338 .................... delay_ms(2); 338 .................... delay_ms(2);
339 0119: MOVLW 02 339 012B: MOVLW 02
340 011A: MOVWF 3A 340 012C: MOVWF 3A
341 011B: CALL 09D 341 012D: CALL 0AF
342 .................... } 342 .................... }
343 011C: INCF 27,F 343 012E: INCF 27,F
344 011D: GOTO 10E 344 012F: GOTO 120
345 .................... } 345 .................... }
346 011E: GOTO 379 (RETURN) 346 0130: GOTO 38B (RETURN)
347 .................... 347 ....................
348 .................... 348 ....................
349 .................... // Proved presun kurzoru 349 .................... // Proved presun kurzoru
350 .................... // 350 .................... //
351 .................... // Pozice 1.1 je domu 351 .................... // Pozice 1.1 je domu
Line 355... Line 355...
355 .................... 355 ....................
356 .................... BYTE Adr; 356 .................... BYTE Adr;
357 .................... 357 ....................
358 .................... Adr=x-1; 358 .................... Adr=x-1;
359 * 359 *
360 01B1: MOVLW 01 360 01C3: MOVLW 01
361 01B2: SUBWF 3A,W 361 01C4: SUBWF 3A,W
362 01B3: MOVWF 3C 362 01C5: MOVWF 3C
363 .................... if(y==2) 363 .................... if(y==2)
364 01B4: MOVF 3B,W 364 01C6: MOVF 3B,W
365 01B5: SUBLW 02 365 01C7: SUBLW 02
366 01B6: BTFSS 03.2 366 01C8: BTFSS 03.2
367 01B7: GOTO 1BA 367 01C9: GOTO 1CC
368 .................... Adr+=LCD_LINE_2; 368 .................... Adr+=LCD_LINE_2;
369 01B8: MOVLW 40 369 01CA: MOVLW 40
370 01B9: ADDWF 3C,F 370 01CB: ADDWF 3C,F
371 .................... 371 ....................
372 .................... lcd_send_byte(0,0x80|Adr); 372 .................... lcd_send_byte(0,0x80|Adr);
373 01BA: MOVF 3C,W 373 01CC: MOVF 3C,W
374 01BB: IORLW 80 374 01CD: IORLW 80
375 01BC: MOVWF 3D 375 01CE: MOVWF 3D
376 01BD: CLRF 3E 376 01CF: CLRF 3E
377 01BE: MOVF 3D,W 377 01D0: MOVF 3D,W
378 01BF: MOVWF 3F 378 01D1: MOVWF 3F
379 01C0: CALL 0CA 379 01D2: CALL 0DC
380 .................... } 380 .................... }
381 01C1: RETLW 00 381 01D3: RETLW 00
382 .................... 382 ....................
383 .................... 383 ....................
384 .................... // Zapis znaku na displej, zpracovani ridicich znaku 384 .................... // Zapis znaku na displej, zpracovani ridicich znaku
385 .................... // 385 .................... //
386 .................... void lcd_putc( char c) 386 .................... void lcd_putc( char c)
387 .................... { 387 .................... {
388 .................... 388 ....................
389 .................... switch (c) 389 .................... switch (c)
390 .................... { 390 .................... {
391 01C2: MOVF 39,W 391 01D4: MOVF 39,W
392 01C3: XORLW 0C 392 01D5: XORLW 0C
393 01C4: BTFSC 03.2 393 01D6: BTFSC 03.2
394 01C5: GOTO 1D0 394 01D7: GOTO 1E2
395 01C6: XORLW 06 395 01D8: XORLW 06
396 01C7: BTFSC 03.2 396 01D9: BTFSC 03.2
397 01C8: GOTO 1D8 397 01DA: GOTO 1EA
398 01C9: XORLW 07 398 01DB: XORLW 07
399 01CA: BTFSC 03.2 399 01DC: BTFSC 03.2
400 01CB: GOTO 1DE 400 01DD: GOTO 1F0
401 01CC: XORLW 05 401 01DE: XORLW 05
402 01CD: BTFSC 03.2 402 01DF: BTFSC 03.2
403 01CE: GOTO 1E3 403 01E0: GOTO 1F5
404 01CF: GOTO 1E8 404 01E1: GOTO 1FA
405 .................... case '\f' : lcd_send_byte(0,1); // smaz displej 405 .................... case '\f' : lcd_send_byte(0,1); // smaz displej
406 01D0: CLRF 3E 406 01E2: CLRF 3E
407 01D1: MOVLW 01 407 01E3: MOVLW 01
408 01D2: MOVWF 3F 408 01E4: MOVWF 3F
409 01D3: CALL 0CA 409 01E5: CALL 0DC
410 .................... delay_ms(2); 410 .................... delay_ms(2);
411 01D4: MOVLW 02 411 01E6: MOVLW 02
412 01D5: MOVWF 3A 412 01E7: MOVWF 3A
413 01D6: CALL 09D 413 01E8: CALL 0AF
414 .................... break; 414 .................... break;
415 01D7: GOTO 1F4 415 01E9: GOTO 206
416 .................... case '\n' : lcd_gotoxy(1,2); break; // presun se na 1. znak 2. radky 416 .................... case '\n' : lcd_gotoxy(1,2); break; // presun se na 1. znak 2. radky
417 01D8: MOVLW 01 417 01EA: MOVLW 01
418 01D9: MOVWF 3A 418 01EB: MOVWF 3A
419 01DA: MOVLW 02 419 01EC: MOVLW 02
420 01DB: MOVWF 3B 420 01ED: MOVWF 3B
421 01DC: CALL 1B1 421 01EE: CALL 1C3
422 01DD: GOTO 1F4 422 01EF: GOTO 206
423 .................... case '\r' : lcd_gotoxy(1,1); break; // presun home 423 .................... case '\r' : lcd_gotoxy(1,1); break; // presun home
424 01DE: MOVLW 01 424 01F0: MOVLW 01
425 01DF: MOVWF 3A 425 01F1: MOVWF 3A
426 01E0: MOVWF 3B 426 01F2: MOVWF 3B
427 01E1: CALL 1B1 427 01F3: CALL 1C3
428 01E2: GOTO 1F4 428 01F4: GOTO 206
429 .................... case '\b' : lcd_send_byte(0,0x10); break; // posun kurzor o 1 zpet 429 .................... case '\b' : lcd_send_byte(0,0x10); break; // posun kurzor o 1 zpet
430 01E3: CLRF 3E 430 01F5: CLRF 3E
431 01E4: MOVLW 10 431 01F6: MOVLW 10
432 01E5: MOVWF 3F 432 01F7: MOVWF 3F
433 01E6: CALL 0CA 433 01F8: CALL 0DC
434 01E7: GOTO 1F4 434 01F9: GOTO 206
435 .................... default : if (c<0x20) c&=0x7; // preklopeni definovatelnych znaku na rozsah 0 az 0x1F 435 .................... default : if (c<0x20) c&=0x7; // preklopeni definovatelnych znaku na rozsah 0 az 0x1F
436 01E8: MOVF 39,W 436 01FA: MOVF 39,W
437 01E9: SUBLW 1F 437 01FB: SUBLW 1F
438 01EA: BTFSS 03.0 438 01FC: BTFSS 03.0
439 01EB: GOTO 1EE 439 01FD: GOTO 200
440 01EC: MOVLW 07 440 01FE: MOVLW 07
441 01ED: ANDWF 39,F 441 01FF: ANDWF 39,F
442 .................... lcd_send_byte(1,c); break; // zapis znak 442 .................... lcd_send_byte(1,c); break; // zapis znak
443 01EE: MOVLW 01 443 0200: MOVLW 01
444 01EF: MOVWF 3E 444 0201: MOVWF 3E
445 01F0: MOVF 39,W 445 0202: MOVF 39,W
446 01F1: MOVWF 3F 446 0203: MOVWF 3F
447 01F2: CALL 0CA 447 0204: CALL 0DC
448 01F3: GOTO 1F4 448 0205: GOTO 206
449 .................... } 449 .................... }
450 .................... } 450 .................... }
451 01F4: RETLW 00 451 0206: RETLW 00
452 .................... 452 ....................
453 .................... 453 ....................
454 .................... // Zapni kurzor 454 .................... // Zapni kurzor
455 .................... // 455 .................... //
456 .................... void lcd_cursor_on() 456 .................... void lcd_cursor_on()
Line 559... Line 559...
559 .................... 559 ....................
560 .................... 560 ....................
561 .................... void main() 561 .................... void main()
562 .................... { 562 .................... {
563 * 563 *
564 031E: CLRF 04 564 0330: CLRF 04
565 031F: BCF 03.7 565 0331: BCF 03.7
566 0320: MOVLW 1F 566 0332: MOVLW 1F
567 0321: ANDWF 03,F 567 0333: ANDWF 03,F
568 0322: BSF 03.5 568 0334: BSF 03.5
569 0323: BSF 1F.0 569 0335: BSF 1F.0
570 0324: BSF 1F.1 570 0336: BSF 1F.1
571 0325: BSF 1F.2 571 0337: BSF 1F.2
572 0326: BCF 1F.3 572 0338: BCF 1F.3
573 0327: MOVLW 07 573 0339: MOVLW 07
574 0328: MOVWF 1C 574 033A: MOVWF 1C
575 .................... unsigned int16 I; 575 .................... unsigned int16 I;
576 .................... float E; 576 .................... float E;
577 .................... 577 ....................
578 .................... port_b_pullups(TRUE); 578 .................... port_b_pullups(TRUE);
579 * 579 *
580 032C: BSF 03.5 580 033E: BSF 03.5
581 032D: BCF 01.7 581 033F: BCF 01.7
582 .................... setup_adc_ports(AN0_VREF_VREF); 582 .................... setup_adc_ports(AN0_VREF_VREF);
583 032E: BSF 1F.0 583 0340: BSF 1F.0
584 032F: BSF 1F.1 584 0341: BSF 1F.1
585 0330: BSF 1F.2 585 0342: BSF 1F.2
586 0331: BSF 1F.3 586 0343: BSF 1F.3
587 .................... setup_adc(ADC_CLOCK_DIV_32); 587 .................... setup_adc(ADC_CLOCK_DIV_32);
588 0332: BCF 1F.6 588 0344: BCF 1F.6
589 0333: BCF 03.5 589 0345: BCF 03.5
590 0334: BCF 1F.6 590 0346: BCF 1F.6
591 0335: BSF 1F.7 591 0347: BSF 1F.7
592 0336: BSF 03.5 592 0348: BSF 03.5
593 0337: BSF 1F.7 593 0349: BSF 1F.7
594 0338: BCF 03.5 594 034A: BCF 03.5
595 0339: BSF 1F.0 595 034B: BSF 1F.0
596 .................... setup_psp(PSP_DISABLED); 596 .................... setup_psp(PSP_DISABLED);
597 033A: BSF 03.5 597 034C: BSF 03.5
598 033B: BCF 09.4 598 034D: BCF 09.4
599 .................... setup_spi(SPI_SS_DISABLED); 599 .................... setup_spi(SPI_SS_DISABLED);
600 * 600 *
601 0329: MOVLW FF 601 033B: MOVLW FF
602 032A: BCF 03.5 -  
603 032B: MOVWF 20 -  
604 * -  
605 033C: BCF 03.5 602 033C: BCF 03.5
-   603 033D: MOVWF 20
-   604 *
-   605 034E: BCF 03.5
606 033D: BCF 14.5 606 034F: BCF 14.5
607 033E: BCF 20.5 607 0350: BCF 20.5
608 033F: MOVF 20,W 608 0351: MOVF 20,W
609 0340: BSF 03.5 609 0352: BSF 03.5
610 0341: MOVWF 07 610 0353: MOVWF 07
611 0342: BCF 03.5 611 0354: BCF 03.5
612 0343: BSF 20.4 612 0355: BSF 20.4
613 0344: MOVF 20,W 613 0356: MOVF 20,W
614 0345: BSF 03.5 614 0357: BSF 03.5
615 0346: MOVWF 07 615 0358: MOVWF 07
616 0347: BCF 03.5 616 0359: BCF 03.5
617 0348: BCF 20.3 617 035A: BCF 20.3
618 0349: MOVF 20,W 618 035B: MOVF 20,W
619 034A: BSF 03.5 619 035C: BSF 03.5
620 034B: MOVWF 07 620 035D: MOVWF 07
621 034C: MOVLW 01 621 035E: MOVLW 01
622 034D: BCF 03.5 622 035F: BCF 03.5
623 034E: MOVWF 14 623 0360: MOVWF 14
624 034F: MOVLW 00 624 0361: MOVLW 00
625 0350: BSF 03.5 625 0362: BSF 03.5
626 0351: MOVWF 14 626 0363: MOVWF 14
627 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 627 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
628 0352: MOVF 01,W 628 0364: MOVF 01,W
629 0353: ANDLW C7 629 0365: ANDLW C7
630 0354: IORLW 08 630 0366: IORLW 08
631 0355: MOVWF 01 631 0367: MOVWF 01
632 .................... setup_timer_1(T1_DISABLED); 632 .................... setup_timer_1(T1_DISABLED);
633 0356: BCF 03.5 633 0368: BCF 03.5
634 0357: CLRF 10 634 0369: CLRF 10
635 .................... setup_timer_2(T2_DISABLED,0,1); 635 .................... setup_timer_2(T2_DISABLED,0,1);
636 0358: MOVLW 00 636 036A: MOVLW 00
637 0359: MOVWF 78 637 036B: MOVWF 78
638 035A: MOVWF 12 638 036C: MOVWF 12
639 035B: MOVLW 00 639 036D: MOVLW 00
640 035C: BSF 03.5 640 036E: BSF 03.5
641 035D: MOVWF 12 641 036F: MOVWF 12
642 .................... setup_comparator(NC_NC_NC_NC); 642 .................... setup_comparator(NC_NC_NC_NC);
643 035E: MOVLW 07 643 0370: MOVLW 07
644 035F: MOVWF 1C 644 0371: MOVWF 1C
645 0360: MOVF 05,W 645 0372: MOVF 05,W
646 0361: CLRWDT -  
647 0362: MOVLW 02 -  
648 0363: MOVWF 77 -  
649 0364: DECFSZ 77,F -  
650 0365: GOTO 364 -  
651 0366: GOTO 367 -  
652 0367: MOVF 1C,W -  
653 0368: BCF 03.5 -  
654 0369: BCF 0D.6 -  
655 .................... setup_vref(FALSE); -  
656 036A: BSF 03.5 -  
657 036B: CLRF 1D -  
658 .................... -  
659 .................... set_adc_channel (IN); -  
660 036C: MOVLW 00 -  
661 036D: MOVWF 78 -  
662 036E: BCF 03.5 -  
663 036F: MOVF 1F,W -  
664 0370: ANDLW C7 -  
665 0371: IORWF 78,W -  
666 0372: MOVWF 1F -  
667 .................... delay_us(20); -  
668 0373: CLRWDT 646 0373: CLRWDT
669 0374: MOVLW 06 647 0374: MOVLW 02
670 0375: MOVWF 77 648 0375: MOVWF 77
671 0376: DECFSZ 77,F 649 0376: DECFSZ 77,F
672 0377: GOTO 376 650 0377: GOTO 376
-   651 0378: GOTO 379
-   652 0379: MOVF 1C,W
-   653 037A: BCF 03.5
-   654 037B: BCF 0D.6
-   655 .................... setup_vref(FALSE);
-   656 037C: BSF 03.5
-   657 037D: CLRF 1D
-   658 ....................
-   659 .................... set_adc_channel (IN);
-   660 037E: MOVLW 00
-   661 037F: MOVWF 78
-   662 0380: BCF 03.5
-   663 0381: MOVF 1F,W
-   664 0382: ANDLW C7
-   665 0383: IORWF 78,W
-   666 0384: MOVWF 1F
-   667 .................... delay_us(20);
-   668 0385: CLRWDT
-   669 0386: MOVLW 06
-   670 0387: MOVWF 77
-   671 0388: DECFSZ 77,F
-   672 0389: GOTO 388
673 .................... lcd_init(); 673 .................... lcd_init();
674 0378: GOTO 0E2 674 038A: GOTO 0F4
-   675 ....................
675 .................... 676 ....................
676 .................... while(TRUE) 677 .................... while(TRUE)
677 .................... { 678 .................... {
678 .................... I=read_adc(); 679 .................... I=read_adc(); //pøeètení hodnoty z A/D pøevodníku
679 0379: BSF 1F.2 680 038B: BSF 1F.2
680 037A: BTFSC 1F.2 681 038C: BTFSC 1F.2
681 037B: GOTO 37A 682 038D: GOTO 38C
682 037C: BSF 03.5 683 038E: BSF 03.5
683 037D: MOVF 1E,W 684 038F: MOVF 1E,W
684 037E: BCF 03.5 685 0390: BCF 03.5
685 037F: MOVWF 21 686 0391: MOVWF 21
686 0380: MOVF 1E,W 687 0392: MOVF 1E,W
687 0381: MOVWF 22 688 0393: MOVWF 22
688 .................... delay_us(600); 689 .................... delay_us(600);
689 0382: CLRWDT 690 0394: CLRWDT
690 0383: MOVLW C7 691 0395: MOVLW C7
691 0384: MOVWF 77 692 0396: MOVWF 77
692 0385: DECFSZ 77,F 693 0397: DECFSZ 77,F
693 0386: GOTO 385 694 0398: GOTO 397
694 0387: NOP 695 0399: NOP
695 .................... E=0.019531*I; 696 .................... E=0.009775*I; //výpoèet osvìtlení k=10.0/1023
696 0388: MOVF 22,W 697 039A: MOVF 22,W
697 0389: MOVWF 28 698 039B: MOVWF 28
698 038A: MOVF 21,W 699 039C: MOVF 21,W
699 038B: MOVWF 27 700 039D: MOVWF 27
700 038C: GOTO 11F 701 039E: GOTO 131
701 038D: MOVLW 7A 702 039F: MOVLW 52
702 038E: MOVWF 3C 703 03A0: MOVWF 3C
703 038F: MOVLW FF 704 03A1: MOVLW 27
704 0390: MOVWF 3B 705 03A2: MOVWF 3B
705 0391: MOVLW 1F 706 03A3: MOVLW 20
706 0392: MOVWF 3A 707 03A4: MOVWF 3A
707 0393: MOVLW 79 708 03A5: MOVLW 78
708 0394: MOVWF 39 709 03A6: MOVWF 39
709 0395: MOVF 7A,W 710 03A7: MOVF 7A,W
710 0396: MOVWF 40 711 03A8: MOVWF 40
711 0397: MOVF 79,W 712 03A9: MOVF 79,W
712 0398: MOVWF 3F 713 03AA: MOVWF 3F
713 0399: MOVF 78,W 714 03AB: MOVF 78,W
714 039A: MOVWF 3E 715 03AC: MOVWF 3E
715 039B: MOVF 77,W 716 03AD: MOVF 77,W
716 039C: MOVWF 3D 717 03AE: MOVWF 3D
717 039D: CALL 13C 718 03AF: CALL 14E
718 039E: MOVF 7A,W 719 03B0: MOVF 7A,W
719 039F: MOVWF 26 720 03B1: MOVWF 26
720 03A0: MOVF 79,W 721 03B2: MOVF 79,W
721 03A1: MOVWF 25 722 03B3: MOVWF 25
722 03A2: MOVF 78,W 723 03B4: MOVF 78,W
723 03A3: MOVWF 24 724 03B5: MOVWF 24
724 03A4: MOVF 77,W 725 03B6: MOVF 77,W
725 03A5: MOVWF 23 726 03B7: MOVWF 23
-   727 ....................
-   728 ....................
726 .................... if(!input(LUX1)) 729 .................... if(!input(LUX1))
727 03A6: BSF 03.5 730 03B8: BSF 03.5
728 03A7: BSF 06.2 731 03B9: BSF 06.2
729 03A8: BCF 03.5 732 03BA: BCF 03.5
730 03A9: BTFSC 06.2 733 03BB: BTFSC 06.2
731 03AA: GOTO 3E1 734 03BC: GOTO 403
732 .................... { 735 .................... {
733 .................... printf(lcd_putc," E=%4.2f lx \n",E); 736 .................... printf(lcd_putc," E=%3.1f lx \n",10*E);
734 03AB: CLRF 27 737 03BD: CLRF 3C
735 03AC: MOVF 27,W -  
736 03AD: CALL 00C -  
737 03AE: INCF 27,F 738 03BE: CLRF 3B
738 03AF: MOVWF 77 739 03BF: MOVLW 20
739 03B0: MOVWF 39 740 03C0: MOVWF 3A
740 03B1: CALL 1C2 741 03C1: MOVLW 82
741 03B2: MOVLW 04 742 03C2: MOVWF 39
742 03B3: SUBWF 27,W 743 03C3: MOVF 26,W
743 03B4: BTFSS 03.2 744 03C4: MOVWF 40
744 03B5: GOTO 3AC 745 03C5: MOVF 25,W
745 03B6: MOVLW 03 746 03C6: MOVWF 3F
746 03B7: MOVWF 04 747 03C7: MOVF 24,W
747 03B8: MOVF 26,W 748 03C8: MOVWF 3E
748 03B9: MOVWF 2F 749 03C9: MOVF 23,W
749 03BA: MOVF 25,W 750 03CA: MOVWF 3D
750 03BB: MOVWF 2E 751 03CB: CALL 14E
751 03BC: MOVF 24,W 752 03CC: MOVF 77,W
752 03BD: MOVWF 2D 753 03CD: MOVWF 27
753 03BE: MOVF 23,W 754 03CE: MOVF 78,W
754 03BF: MOVWF 2C 755 03CF: MOVWF 28
755 03C0: MOVLW 02 756 03D0: MOVF 79,W
756 03C1: MOVWF 30 757 03D1: MOVWF 29
757 03C2: CALL 237 758 03D2: MOVF 7A,W
758 03C3: MOVLW 09 759 03D3: MOVWF 2A
759 03C4: MOVWF 28 760 03D4: CLRF 2B
760 03C5: MOVF 28,W 761 03D5: MOVF 2B,W
761 03C6: CALL 00C 762 03D6: CALL 00C
762 03C7: INCF 28,F 763 03D7: INCF 2B,F
763 03C8: MOVWF 77 764 03D8: MOVWF 77
764 03C9: MOVWF 39 765 03D9: MOVWF 39
765 03CA: CALL 1C2 766 03DA: CALL 1D4
766 03CB: MOVLW 0E 767 03DB: MOVLW 04
767 03CC: SUBWF 28,W 768 03DC: SUBWF 2B,W
768 03CD: BTFSS 03.2 769 03DD: BTFSS 03.2
769 03CE: GOTO 3C5 770 03DE: GOTO 3D5
-   771 03DF: MOVLW 02
-   772 03E0: MOVWF 04
-   773 03E1: MOVF 2A,W
-   774 03E2: MOVWF 2F
-   775 03E3: MOVF 29,W
-   776 03E4: MOVWF 2E
770 .................... printf(lcd_putc," rozsah 1\n\r"); 777 03E5: MOVF 28,W
-   778 03E6: MOVWF 2D
771 03CF: CLRF 27 779 03E7: MOVF 27,W
-   780 03E8: MOVWF 2C
-   781 03E9: MOVLW 01
-   782 03EA: MOVWF 30
-   783 03EB: CALL 249
-   784 03EC: MOVLW 09
-   785 03ED: MOVWF 2C
772 03D0: MOVF 27,W 786 03EE: MOVF 2C,W
773 03D1: CALL 01F 787 03EF: CALL 00C
774 03D2: INCF 27,F 788 03F0: INCF 2C,F
775 03D3: MOVWF 77 789 03F1: MOVWF 77
776 03D4: MOVWF 39 790 03F2: MOVWF 39
777 03D5: CALL 1C2 791 03F3: CALL 1D4
778 03D6: MOVLW 0C 792 03F4: MOVLW 0F
779 03D7: SUBWF 27,W 793 03F5: SUBWF 2C,W
780 03D8: BTFSS 03.2 794 03F6: BTFSS 03.2
781 03D9: GOTO 3D0 795 03F7: GOTO 3EE
782 .................... delay_ms(300); 796 .................... printf(lcd_putc," rozsah k1 \n\r");
-   797 03F8: CLRF 27
-   798 03F9: MOVF 27,W
783 03DA: MOVLW 02 799 03FA: CALL 020
784 03DB: MOVWF 27 800 03FB: INCF 27,F
785 03DC: MOVLW 96 801 03FC: MOVWF 77
786 03DD: MOVWF 3A 802 03FD: MOVWF 39
787 03DE: CALL 09D 803 03FE: CALL 1D4
-   804 03FF: MOVLW 0E
788 03DF: DECFSZ 27,F 805 0400: SUBWF 27,W
-   806 0401: BTFSS 03.2
789 03E0: GOTO 3DC 807 0402: GOTO 3F9
-   808 .................... //delay_ms(300);
790 .................... } 809 .................... }
791 .................... if(!input(LUX2)) 810 .................... if(!input(LUX2))
792 03E1: BSF 03.5 811 0403: BSF 03.5
793 03E2: BSF 06.3 812 0404: BSF 06.3
794 03E3: BCF 03.5 813 0405: BCF 03.5
795 03E4: BTFSC 06.3 814 0406: BTFSC 06.3
796 03E5: GOTO 433 815 0407: GOTO 44D
797 .................... { 816 .................... {
798 .................... printf(lcd_putc," E=%3.1f lx \n",10*E); 817 .................... printf(lcd_putc," E=%3.0f lx \n",100*E);
799 03E6: CLRF 3C 818 0408: CLRF 3C
800 03E7: CLRF 3B 819 0409: CLRF 3B
801 03E8: MOVLW 20 820 040A: MOVLW 48
802 03E9: MOVWF 3A 821 040B: MOVWF 3A
803 03EA: MOVLW 82 822 040C: MOVLW 85
804 03EB: MOVWF 39 823 040D: MOVWF 39
805 03EC: MOVF 26,W 824 040E: MOVF 26,W
806 03ED: MOVWF 40 825 040F: MOVWF 40
807 03EE: MOVF 25,W 826 0410: MOVF 25,W
808 03EF: MOVWF 3F 827 0411: MOVWF 3F
809 03F0: MOVF 24,W 828 0412: MOVF 24,W
810 03F1: MOVWF 3E 829 0413: MOVWF 3E
811 03F2: MOVF 23,W 830 0414: MOVF 23,W
812 03F3: MOVWF 3D 831 0415: MOVWF 3D
813 03F4: CALL 13C 832 0416: CALL 14E
814 03F5: MOVF 77,W 833 0417: MOVF 77,W
815 03F6: MOVWF 27 834 0418: MOVWF 27
816 03F7: MOVF 78,W 835 0419: MOVF 78,W
817 03F8: MOVWF 28 836 041A: MOVWF 28
818 03F9: MOVF 79,W 837 041B: MOVF 79,W
819 03FA: MOVWF 29 838 041C: MOVWF 29
820 03FB: MOVF 7A,W 839 041D: MOVF 7A,W
821 03FC: MOVWF 2A 840 041E: MOVWF 2A
822 03FD: CLRF 2B 841 041F: CLRF 2B
823 03FE: MOVF 2B,W 842 0420: MOVF 2B,W
824 03FF: CALL 030 843 0421: CALL 033
825 0400: INCF 2B,F 844 0422: INCF 2B,F
826 0401: MOVWF 77 845 0423: MOVWF 77
827 0402: MOVWF 39 846 0424: MOVWF 39
828 0403: CALL 1C2 847 0425: CALL 1D4
829 0404: MOVLW 04 848 0426: MOVLW 04
830 0405: SUBWF 2B,W 849 0427: SUBWF 2B,W
831 0406: BTFSS 03.2 850 0428: BTFSS 03.2
832 0407: GOTO 3FE 851 0429: GOTO 420
833 0408: MOVLW 02 852 042A: MOVLW 02
834 0409: MOVWF 04 853 042B: MOVWF 04
835 040A: MOVF 2A,W 854 042C: MOVF 2A,W
836 040B: MOVWF 2F 855 042D: MOVWF 2F
837 040C: MOVF 29,W 856 042E: MOVF 29,W
838 040D: MOVWF 2E 857 042F: MOVWF 2E
839 040E: MOVF 28,W 858 0430: MOVF 28,W
840 040F: MOVWF 2D 859 0431: MOVWF 2D
841 0410: MOVF 27,W 860 0432: MOVF 27,W
842 0411: MOVWF 2C 861 0433: MOVWF 2C
843 0412: MOVLW 01 -  
844 0413: MOVWF 30 862 0434: CLRF 30
845 0414: CALL 237 863 0435: CALL 249
846 0415: MOVLW 09 864 0436: MOVLW 09
847 0416: MOVWF 2C 865 0437: MOVWF 2C
848 0417: MOVF 2C,W 866 0438: MOVF 2C,W
849 0418: CALL 030 867 0439: CALL 033
850 0419: INCF 2C,F 868 043A: INCF 2C,F
851 041A: MOVWF 77 869 043B: MOVWF 77
852 041B: MOVWF 39 870 043C: MOVWF 39
853 041C: CALL 1C2 871 043D: CALL 1D4
854 041D: MOVLW 0E 872 043E: MOVLW 0F
855 041E: SUBWF 2C,W 873 043F: SUBWF 2C,W
856 041F: BTFSS 03.2 874 0440: BTFSS 03.2
857 0420: GOTO 417 875 0441: GOTO 438
858 .................... printf(lcd_putc," rozsah 2\n\r"); 876 .................... printf(lcd_putc," rozsah 1k \n\r");
859 0421: CLRF 27 877 0442: CLRF 27
860 0422: MOVF 27,W 878 0443: MOVF 27,W
861 0423: CALL 043 879 0444: CALL 047
862 0424: INCF 27,F 880 0445: INCF 27,F
863 0425: MOVWF 77 881 0446: MOVWF 77
864 0426: MOVWF 39 882 0447: MOVWF 39
865 0427: CALL 1C2 883 0448: CALL 1D4
866 0428: MOVLW 0C 884 0449: MOVLW 0F
867 0429: SUBWF 27,W 885 044A: SUBWF 27,W
868 042A: BTFSS 03.2 886 044B: BTFSS 03.2
869 042B: GOTO 422 887 044C: GOTO 443
870 .................... delay_ms(300); 888 .................... //delay_ms(300);
871 042C: MOVLW 02 -  
872 042D: MOVWF 27 -  
873 042E: MOVLW 96 -  
874 042F: MOVWF 3A -  
875 0430: CALL 09D -  
876 0431: DECFSZ 27,F -  
877 0432: GOTO 42E -  
878 .................... } 889 .................... }
879 .................... if(!input(LUX3)) 890 .................... if(!input(LUX3))
880 0433: BSF 03.5 891 044D: BSF 03.5
881 0434: BSF 06.4 892 044E: BSF 06.4
882 0435: BCF 03.5 893 044F: BCF 03.5
883 0436: BTFSC 06.4 894 0450: BTFSC 06.4
884 0437: GOTO 484 895 0451: GOTO 481
885 .................... { 896 .................... {
886 .................... printf(lcd_putc," E=%4.0f lx \n",100*E); 897 .................... printf(lcd_putc," E=%3.2f klx \n",E);
887 0438: CLRF 3C -  
888 0439: CLRF 3B -  
889 043A: MOVLW 48 -  
890 043B: MOVWF 3A -  
891 043C: MOVLW 85 -  
892 043D: MOVWF 39 -  
893 043E: MOVF 26,W -  
894 043F: MOVWF 40 -  
895 0440: MOVF 25,W -  
896 0441: MOVWF 3F -  
897 0442: MOVF 24,W -  
898 0443: MOVWF 3E -  
899 0444: MOVF 23,W -  
900 0445: MOVWF 3D -  
901 0446: CALL 13C -  
902 0447: MOVF 77,W -  
903 0448: MOVWF 27 -  
904 0449: MOVF 78,W -  
905 044A: MOVWF 28 -  
906 044B: MOVF 79,W -  
907 044C: MOVWF 29 -  
908 044D: MOVF 7A,W -  
909 044E: MOVWF 2A -  
910 044F: CLRF 2B 898 0452: CLRF 27
911 0450: MOVF 2B,W 899 0453: MOVF 27,W
912 0451: CALL 054 900 0454: CALL 05B
913 0452: INCF 2B,F 901 0455: INCF 27,F
914 0453: MOVWF 77 902 0456: MOVWF 77
915 0454: MOVWF 39 903 0457: MOVWF 39
916 0455: CALL 1C2 904 0458: CALL 1D4
917 0456: MOVLW 04 905 0459: MOVLW 04
918 0457: SUBWF 2B,W 906 045A: SUBWF 27,W
919 0458: BTFSS 03.2 907 045B: BTFSS 03.2
920 0459: GOTO 450 908 045C: GOTO 453
921 045A: MOVLW 03 909 045D: MOVLW 02
922 045B: MOVWF 04 910 045E: MOVWF 04
923 045C: MOVF 2A,W 911 045F: MOVF 26,W
924 045D: MOVWF 2F 912 0460: MOVWF 2F
925 045E: MOVF 29,W 913 0461: MOVF 25,W
926 045F: MOVWF 2E 914 0462: MOVWF 2E
927 0460: MOVF 28,W 915 0463: MOVF 24,W
928 0461: MOVWF 2D 916 0464: MOVWF 2D
929 0462: MOVF 27,W 917 0465: MOVF 23,W
930 0463: MOVWF 2C 918 0466: MOVWF 2C
-   919 0467: MOVLW 02
931 0464: CLRF 30 920 0468: MOVWF 30
932 0465: CALL 237 921 0469: CALL 249
933 0466: MOVLW 09 922 046A: MOVLW 09
934 0467: MOVWF 2C 923 046B: MOVWF 28
935 0468: MOVF 2C,W 924 046C: MOVF 28,W
936 0469: CALL 054 925 046D: CALL 05B
937 046A: INCF 2C,F 926 046E: INCF 28,F
938 046B: MOVWF 77 927 046F: MOVWF 77
939 046C: MOVWF 39 928 0470: MOVWF 39
940 046D: CALL 1C2 929 0471: CALL 1D4
941 046E: MOVLW 0E 930 0472: MOVLW 10
942 046F: SUBWF 2C,W 931 0473: SUBWF 28,W
943 0470: BTFSS 03.2 932 0474: BTFSS 03.2
944 0471: GOTO 468 933 0475: GOTO 46C
945 .................... printf(lcd_putc," rozsah 3\n\r"); 934 .................... printf(lcd_putc," rozsah 10k \n\r");
946 0472: CLRF 27 935 0476: CLRF 27
947 0473: MOVF 27,W 936 0477: MOVF 27,W
948 0474: CALL 067 937 0478: CALL 070
949 0475: INCF 27,F 938 0479: INCF 27,F
950 0476: MOVWF 77 939 047A: MOVWF 77
951 0477: MOVWF 39 940 047B: MOVWF 39
952 0478: CALL 1C2 941 047C: CALL 1D4
953 0479: MOVLW 0C 942 047D: MOVLW 10
954 047A: SUBWF 27,W 943 047E: SUBWF 27,W
955 047B: BTFSS 03.2 944 047F: BTFSS 03.2
956 047C: GOTO 473 945 0480: GOTO 477
957 .................... delay_ms(300); 946 .................... //delay_ms(300);
958 047D: MOVLW 02 -  
959 047E: MOVWF 27 -  
960 047F: MOVLW 96 -  
961 0480: MOVWF 3A -  
962 0481: CALL 09D -  
963 0482: DECFSZ 27,F -  
964 0483: GOTO 47F -  
965 .................... } 947 .................... }
966 .................... if(!input(LUX4)) 948 .................... if(!input(LUX4))
967 0484: BSF 03.5 949 0481: BSF 03.5
968 0485: BSF 06.5 950 0482: BSF 06.5
969 0486: BCF 03.5 951 0483: BCF 03.5
970 0487: BTFSC 06.5 952 0484: BTFSC 06.5
971 0488: GOTO 4BF 953 0485: GOTO 4CC
972 .................... { 954 .................... {
973 .................... printf(lcd_putc," E=%3.1f klx \n",E); 955 .................... printf(lcd_putc," E=%3.1f klx \n",10*E);
-   956 0486: CLRF 3C
974 0489: CLRF 27 957 0487: CLRF 3B
-   958 0488: MOVLW 20
-   959 0489: MOVWF 3A
975 048A: MOVF 27,W 960 048A: MOVLW 82
976 048B: CALL 078 961 048B: MOVWF 39
977 048C: INCF 27,F 962 048C: MOVF 26,W
978 048D: MOVWF 77 963 048D: MOVWF 40
-   964 048E: MOVF 25,W
979 048E: MOVWF 39 965 048F: MOVWF 3F
980 048F: CALL 1C2 966 0490: MOVF 24,W
981 0490: MOVLW 04 967 0491: MOVWF 3E
982 0491: SUBWF 27,W 968 0492: MOVF 23,W
983 0492: BTFSS 03.2 969 0493: MOVWF 3D
984 0493: GOTO 48A 970 0494: CALL 14E
985 0494: MOVLW 02 971 0495: MOVF 77,W
986 0495: MOVWF 04 972 0496: MOVWF 27
987 0496: MOVF 26,W 973 0497: MOVF 78,W
988 0497: MOVWF 2F 974 0498: MOVWF 28
989 0498: MOVF 25,W 975 0499: MOVF 79,W
990 0499: MOVWF 2E 976 049A: MOVWF 29
991 049A: MOVF 24,W 977 049B: MOVF 7A,W
992 049B: MOVWF 2D 978 049C: MOVWF 2A
-   979 049D: CLRF 2B
993 049C: MOVF 23,W 980 049E: MOVF 2B,W
994 049D: MOVWF 2C 981 049F: CALL 085
-   982 04A0: INCF 2B,F
995 049E: MOVLW 01 983 04A1: MOVWF 77
996 049F: MOVWF 30 984 04A2: MOVWF 39
997 04A0: CALL 237 985 04A3: CALL 1D4
-   986 04A4: MOVLW 04
-   987 04A5: SUBWF 2B,W
-   988 04A6: BTFSS 03.2
-   989 04A7: GOTO 49E
998 04A1: MOVLW 09 990 04A8: MOVLW 02
999 04A2: MOVWF 28 991 04A9: MOVWF 04
1000 04A3: MOVF 28,W 992 04AA: MOVF 2A,W
1001 04A4: CALL 078 993 04AB: MOVWF 2F
1002 04A5: INCF 28,F 994 04AC: MOVF 29,W
1003 04A6: MOVWF 77 995 04AD: MOVWF 2E
-   996 04AE: MOVF 28,W
1004 04A7: MOVWF 39 997 04AF: MOVWF 2D
-   998 04B0: MOVF 27,W
1005 04A8: CALL 1C2 999 04B1: MOVWF 2C
1006 04A9: MOVLW 0F 1000 04B2: MOVLW 01
1007 04AA: SUBWF 28,W 1001 04B3: MOVWF 30
1008 04AB: BTFSS 03.2 1002 04B4: CALL 249
1009 04AC: GOTO 4A3 1003 04B5: MOVLW 09
1010 .................... printf(lcd_putc," rozsah 4\n\r"); -  
1011 04AD: CLRF 27 1004 04B6: MOVWF 2C
1012 04AE: MOVF 27,W 1005 04B7: MOVF 2C,W
1013 04AF: CALL 08C 1006 04B8: CALL 085
1014 04B0: INCF 27,F 1007 04B9: INCF 2C,F
1015 04B1: MOVWF 77 1008 04BA: MOVWF 77
1016 04B2: MOVWF 39 1009 04BB: MOVWF 39
1017 04B3: CALL 1C2 1010 04BC: CALL 1D4
1018 04B4: MOVLW 0C 1011 04BD: MOVLW 10
1019 04B5: SUBWF 27,W 1012 04BE: SUBWF 2C,W
1020 04B6: BTFSS 03.2 1013 04BF: BTFSS 03.2
1021 04B7: GOTO 4AE 1014 04C0: GOTO 4B7
1022 .................... delay_ms(300); 1015 .................... printf(lcd_putc," rozsah 100k \n\r");
1023 04B8: MOVLW 02 1016 04C1: CLRF 27
1024 04B9: MOVWF 27 1017 04C2: MOVF 27,W
-   1018 04C3: CALL 09A
-   1019 04C4: INCF 27,F
1025 04BA: MOVLW 96 1020 04C5: MOVWF 77
1026 04BB: MOVWF 3A 1021 04C6: MOVWF 39
1027 04BC: CALL 09D 1022 04C7: CALL 1D4
-   1023 04C8: MOVLW 10
1028 04BD: DECFSZ 27,F 1024 04C9: SUBWF 27,W
-   1025 04CA: BTFSS 03.2
1029 04BE: GOTO 4BA 1026 04CB: GOTO 4C2
-   1027 .................... //delay_ms(300);
1030 .................... } 1028 .................... }
1031 .................... while(!input(HOLD)); 1029 .................... delay_ms(300);
-   1030 04CC: MOVLW 02
-   1031 04CD: MOVWF 27
-   1032 04CE: MOVLW 96
-   1033 04CF: MOVWF 3A
-   1034 04D0: CALL 0AF
-   1035 04D1: DECFSZ 27,F
-   1036 04D2: GOTO 4CE
-   1037 .................... while(!input(HOLD)); //podržení hodnoty
1032 04BF: BSF 03.5 1038 04D3: BSF 03.5
1033 04C0: BSF 06.6 1039 04D4: BSF 06.6
1034 04C1: BCF 03.5 1040 04D5: BCF 03.5
1035 04C2: BTFSS 06.6 1041 04D6: BTFSS 06.6
1036 04C3: GOTO 4BF 1042 04D7: GOTO 4D3
1037 .................... } 1043 .................... }
1038 04C4: GOTO 379 1044 04D8: GOTO 38B
1039 .................... } 1045 .................... }
1040 04C5: SLEEP 1046 04D9: SLEEP
1041   1047  
1042 Configuration Fuses: 1048 Configuration Fuses:
1043 Word 1: 3F39 XT NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT 1049 Word 1: 3F39 XT NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT