Rev 240 Rev 241
Line 1... Line 1...
1 CCS PCM C Compiler, Version 3.245, 27853 11-V-08 11:01 1 CCS PCM C Compiler, Version 3.245, 27853 11-V-08 12:42
2   2  
3 Filename: D:\MLAB_E\projekty\rotacni_display\SW\infra\infra.lst 3 Filename: D:\MLAB_E\projekty\rotacni_display\SW\infra\infra.lst
4   4  
5 ROM used: 595 words (7%) 5 ROM used: 526 words (6%)
6 Largest free fragment is 2048 6 Largest free fragment is 2048
7 RAM used: 36 (21%) at main() level 7 RAM used: 28 (16%) at main() level
8 38 (22%) worst case 8 37 (21%) worst case
9 Stack: 2 worst case (1 in main + 1 for interrupts) 9 Stack: 3 worst case (2 in main + 1 for interrupts)
10   10  
11 * 11 *
12 0000: MOVLW 00 12 0000: MOVLW 00
13 0001: MOVWF 0A 13 0001: MOVWF 0A
14 0002: GOTO 149 14 0002: GOTO 181
15 0003: NOP 15 0003: NOP
16 0004: MOVWF 7F 16 0004: MOVWF 7F
17 0005: SWAPF 03,W 17 0005: SWAPF 03,W
18 0006: CLRF 03 18 0006: CLRF 03
19 0007: MOVWF 21 19 0007: MOVWF 21
Line 59... Line 59...
59 002F: SWAPF 7F,F 59 002F: SWAPF 7F,F
60 0030: SWAPF 7F,W 60 0030: SWAPF 7F,W
61 0031: RETFIE 61 0031: RETFIE
62 0032: BCF 0A.3 62 0032: BCF 0A.3
63 0033: BCF 0A.4 63 0033: BCF 0A.4
64 0034: GOTO 0F6 64 0034: GOTO 0ED
65 .................... #include ".\infra.h" 65 .................... #include ".\infra.h"
66 .................... #include <16F877A.h> 66 .................... #include <16F877A.h>
67 .................... //////// Standard Header file for the PIC16F877A device //////////////// 67 .................... //////// Standard Header file for the PIC16F877A device ////////////////
68 .................... #device PIC16F877A 68 .................... #device PIC16F877A
69 .................... #list 69 .................... #list
Line 80... Line 80...
80 .................... #FUSES NOCPD //No EE protection 80 .................... #FUSES NOCPD //No EE protection
81 .................... #FUSES NOWRT //Program memory not write protected 81 .................... #FUSES NOWRT //Program memory not write protected
82 .................... 82 ....................
83 .................... #use delay(clock=4000000,RESTART_WDT) 83 .................... #use delay(clock=4000000,RESTART_WDT)
84 * 84 *
85 010D: MOVLW 39 85 0104: MOVLW 39
86 010E: MOVWF 04 86 0105: MOVWF 04
87 010F: MOVF 00,W 87 0106: MOVF 00,W
88 0110: BTFSC 03.2 88 0107: BTFSC 03.2
89 0111: GOTO 123 89 0108: GOTO 11A
90 0112: MOVLW 01 90 0109: MOVLW 01
91 0113: MOVWF 78 91 010A: MOVWF 78
92 0114: MOVLW BF 92 010B: MOVLW BF
93 0115: MOVWF 77 93 010C: MOVWF 77
94 0116: CLRWDT 94 010D: CLRWDT
95 0117: DECFSZ 77,F 95 010E: DECFSZ 77,F
96 0118: GOTO 116 96 010F: GOTO 10D
97 0119: DECFSZ 78,F 97 0110: DECFSZ 78,F
98 011A: GOTO 114 98 0111: GOTO 10B
99 011B: MOVLW 4A 99 0112: MOVLW 4A
100 011C: MOVWF 77 100 0113: MOVWF 77
101 011D: DECFSZ 77,F 101 0114: DECFSZ 77,F
102 011E: GOTO 11D 102 0115: GOTO 114
103 011F: NOP 103 0116: NOP
104 0120: CLRWDT 104 0117: CLRWDT
105 0121: DECFSZ 00,F 105 0118: DECFSZ 00,F
106 0122: GOTO 112 106 0119: GOTO 109
-   107 011A: BCF 0A.3
107 0123: RETLW 00 108 011B: BCF 0A.4
-   109 011C: GOTO 14E (RETURN)
108 .................... #use rs232(baud=600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) 110 .................... #use rs232(baud=600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
109 .................... 111 ....................
110 .................... 112 ....................
111 .................... 113 ....................
112 .................... #define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu 114 .................... #define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu
113 .................... 115 ....................
114 .................... int8 napis[MAX_SLOVO+1]; 116 .................... int8 napis[MAX_SLOVO+1];
115 .................... int8 otacky; 117 .................... int8 otacky;
116 .................... 118 ....................
117 .................... const int8 logo[2*MAX_SLOVO] ={'[','[',92,'[','E',']','A','[',92,'[','[','^','_','_',']',96,'^','_','_','a'}; // [blesk] E4A [blesk] , 2004-2008 119 .................... const int8 logo[MAX_SLOVO+1]={'[','^','_','_',']',96,'^','_','_','a',0}; // [blesk] E4A [blesk]
-   120 .................... const int8 rok[MAX_SLOVO+1]={'[','[',92,'[','E',']','A','[',92,'[',0}; // 2004-2008
118 .................... 121 ....................
119 .................... #int_RDA 122 .................... #int_RDA
120 .................... void RDA_isr(void) 123 .................... void RDA_isr(void)
121 .................... { 124 .................... {
122 .................... int n; 125 .................... int n;
123 .................... output_B(0x55); 126 .................... output_B(0x55);
124 * 127 *
125 00F6: BSF 03.5 128 00ED: BSF 03.5
126 00F7: CLRF 06 129 00EE: CLRF 06
127 00F8: MOVLW 55 130 00EF: MOVLW 55
128 00F9: BCF 03.5 131 00F0: BCF 03.5
129 00FA: MOVWF 06 132 00F1: MOVWF 06
130 .................... for(n=0;n<MAX_SLOVO;n++) 133 .................... for(n=0;n<MAX_SLOVO;n++)
131 00FB: CLRF 3F 134 00F2: CLRF 3E
132 00FC: MOVF 3F,W 135 00F3: MOVF 3E,W
133 00FD: SUBLW 09 136 00F4: SUBLW 09
134 00FE: BTFSS 03.0 137 00F5: BTFSS 03.0
135 00FF: GOTO 109 138 00F6: GOTO 100
136 .................... { 139 .................... {
137 .................... napis[n]=getc(); 140 .................... napis[n]=getc();
138 0100: MOVLW 28 141 00F7: MOVLW 28
139 0101: ADDWF 3F,W 142 00F8: ADDWF 3E,W
140 0102: MOVWF 04 143 00F9: MOVWF 04
141 0103: BTFSS 0C.5 144 00FA: BTFSS 0C.5
142 0104: GOTO 103 145 00FB: GOTO 0FA
143 0105: MOVF 1A,W 146 00FC: MOVF 1A,W
144 0106: MOVWF 00 147 00FD: MOVWF 00
145 .................... } 148 .................... }
146 0107: INCF 3F,F 149 00FE: INCF 3E,F
147 0108: GOTO 0FC 150 00FF: GOTO 0F3
148 .................... } 151 .................... }
149 .................... 152 ....................
150 0109: BCF 0C.5 153 0100: BCF 0C.5
151 010A: BCF 0A.3 154 0101: BCF 0A.3
152 010B: BCF 0A.4 155 0102: BCF 0A.4
153 010C: GOTO 01F 156 0103: GOTO 01F
154 .................... void main() 157 .................... void LED_print()
155 .................... { 158 .................... {
156 * -  
157 0149: CLRF 04 -  
158 014A: MOVLW 1F -  
159 014B: ANDWF 03,F -  
160 014C: MOVLW 67 -  
161 014D: BSF 03.5 -  
162 014E: MOVWF 19 -  
163 014F: MOVLW 22 -  
164 0150: MOVWF 18 -  
165 0151: MOVLW 90 -  
166 0152: BCF 03.5 -  
167 0153: MOVWF 18 -  
168 0154: BSF 03.5 -  
169 0155: BSF 1F.0 -  
170 0156: BSF 1F.1 -  
171 0157: BSF 1F.2 -  
172 0158: BCF 1F.3 -  
173 0159: MOVLW 07 -  
174 015A: MOVWF 1C -  
175 .................... -  
176 .................... int slovo,pismeno,sloupec,j; 159 .................... unsigned int slovo,pismeno,sloupec,j;
177 .................... -  
178 .................... 160 ....................
179 .................... const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A 161 .................... const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A
180 .................... 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B 162 .................... 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B
181 .................... 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C 163 .................... 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C
182 .................... 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D 164 .................... 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D
Line 208... Line 190...
208 .................... 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2 190 .................... 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2
209 .................... 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0 191 .................... 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0
210 .................... 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka 192 .................... 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka
211 .................... 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8 193 .................... 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8
212 .................... }; 194 .................... };
-   195 .................... while(read_adc()<9); // Cekani na magnet
-   196 *
-   197 0144: BSF 1F.2
-   198 0145: BTFSC 1F.2
-   199 0146: GOTO 145
-   200 0147: MOVF 1E,W
-   201 0148: SUBLW 08
-   202 0149: BTFSC 03.0
-   203 014A: GOTO 144
-   204 .................... delay_ms(10);
-   205 014B: MOVLW 0A
-   206 014C: MOVWF 39
-   207 014D: GOTO 104
-   208 ....................
-   209 .................... for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)
-   210 014E: CLRF 36
-   211 014F: MOVF 36,W
-   212 0150: SUBLW 09
-   213 0151: BTFSS 03.0
-   214 0152: GOTO 17E
-   215 .................... {
-   216 .................... for(sloupec=0;sloupec<5;sloupec++)
-   217 0153: CLRF 37
-   218 0154: MOVF 37,W
-   219 0155: SUBLW 04
-   220 0156: BTFSS 03.0
-   221 0157: GOTO 172
-   222 .................... {
-   223 .................... output_B(pis[(napis[pismeno]-0x41)*5+sloupec]);
-   224 0158: MOVLW 28
-   225 0159: ADDWF 36,W
-   226 015A: MOVWF 04
-   227 015B: MOVLW 41
-   228 015C: SUBWF 00,W
-   229 015D: MOVWF 3B
-   230 015E: MOVWF 3C
-   231 015F: MOVLW 05
-   232 0160: MOVWF 3D
-   233 0161: GOTO 11D
-   234 0162: MOVF 37,W
-   235 0163: ADDWF 78,W
-   236 0164: CALL 044
-   237 0165: MOVWF 39
-   238 0166: BSF 03.5
-   239 0167: CLRF 06
-   240 0168: BCF 03.5
-   241 0169: MOVF 39,W
-   242 016A: MOVWF 06
-   243 .................... delay_us(500);
-   244 016B: CLRWDT
-   245 016C: MOVLW A6
-   246 016D: MOVWF 77
-   247 016E: DECFSZ 77,F
-   248 016F: GOTO 16E
-   249 .................... }
-   250 0170: INCF 37,F
-   251 0171: GOTO 154
-   252 .................... output_B(0xFF);
-   253 0172: BSF 03.5
-   254 0173: CLRF 06
-   255 0174: MOVLW FF
-   256 0175: BCF 03.5
-   257 0176: MOVWF 06
-   258 .................... delay_us(500);
-   259 0177: CLRWDT
-   260 0178: MOVLW A6
-   261 0179: MOVWF 77
-   262 017A: DECFSZ 77,F
-   263 017B: GOTO 17A
-   264 .................... }
-   265 017C: INCF 36,F
-   266 017D: GOTO 14F
-   267 .................... }
-   268 017E: BCF 0A.3
-   269 017F: BCF 0A.4
-   270 0180: GOTO 1FC (RETURN)
-   271 ....................
-   272 .................... void main()
-   273 .................... {
-   274 0181: CLRF 04
-   275 0182: MOVLW 1F
-   276 0183: ANDWF 03,F
-   277 0184: MOVLW 67
-   278 0185: BSF 03.5
-   279 0186: MOVWF 19
-   280 0187: MOVLW 22
-   281 0188: MOVWF 18
-   282 0189: MOVLW 90
-   283 018A: BCF 03.5
-   284 018B: MOVWF 18
-   285 018C: BSF 03.5
-   286 018D: BSF 1F.0
-   287 018E: BSF 1F.1
-   288 018F: BSF 1F.2
-   289 0190: BCF 1F.3
-   290 0191: MOVLW 07
-   291 0192: MOVWF 1C
-   292 ....................
213 .................... 293 ....................
214 .................... setup_adc_ports(AN0); 294 .................... setup_adc_ports(AN0);
215 * 295 *
216 015E: BSF 03.5 296 0196: BSF 03.5
217 015F: BCF 1F.0 297 0197: BCF 1F.0
218 0160: BSF 1F.1 298 0198: BSF 1F.1
219 0161: BSF 1F.2 299 0199: BSF 1F.2
220 0162: BSF 1F.3 300 019A: BSF 1F.3
221 .................... setup_adc(ADC_CLOCK_INTERNAL); 301 .................... setup_adc(ADC_CLOCK_INTERNAL);
222 0163: BCF 1F.6 302 019B: BCF 1F.6
223 0164: BCF 03.5 303 019C: BCF 03.5
224 0165: BSF 1F.6 304 019D: BSF 1F.6
225 0166: BSF 1F.7 305 019E: BSF 1F.7
226 0167: BSF 03.5 306 019F: BSF 03.5
227 0168: BCF 1F.7 307 01A0: BCF 1F.7
228 0169: BCF 03.5 308 01A1: BCF 03.5
229 016A: BSF 1F.0 309 01A2: BSF 1F.0
230 .................... setup_psp(PSP_DISABLED); 310 .................... setup_psp(PSP_DISABLED);
231 016B: BSF 03.5 311 01A3: BSF 03.5
232 016C: BCF 09.4 312 01A4: BCF 09.4
233 .................... setup_spi(SPI_SS_DISABLED); 313 .................... setup_spi(SPI_SS_DISABLED);
234 * 314 *
235 015B: MOVLW FF 315 0193: MOVLW FF
236 015C: BCF 03.5 316 0194: BCF 03.5
237 015D: MOVWF 34 317 0195: MOVWF 34
238 * 318 *
239 016D: BCF 03.5 319 01A5: BCF 03.5
240 016E: BCF 14.5 320 01A6: BCF 14.5
241 016F: BCF 34.5 321 01A7: BCF 34.5
242 0170: MOVF 34,W 322 01A8: MOVF 34,W
243 0171: BSF 03.5 323 01A9: BSF 03.5
244 0172: MOVWF 07 324 01AA: MOVWF 07
245 0173: BCF 03.5 325 01AB: BCF 03.5
246 0174: BSF 34.4 326 01AC: BSF 34.4
247 0175: MOVF 34,W 327 01AD: MOVF 34,W
248 0176: BSF 03.5 328 01AE: BSF 03.5
249 0177: MOVWF 07 329 01AF: MOVWF 07
250 0178: BCF 03.5 330 01B0: BCF 03.5
251 0179: BCF 34.3 331 01B1: BCF 34.3
252 017A: MOVF 34,W 332 01B2: MOVF 34,W
253 017B: BSF 03.5 333 01B3: BSF 03.5
254 017C: MOVWF 07 334 01B4: MOVWF 07
255 017D: MOVLW 01 335 01B5: MOVLW 01
256 017E: BCF 03.5 336 01B6: BCF 03.5
257 017F: MOVWF 14 337 01B7: MOVWF 14
258 0180: MOVLW 00 338 01B8: MOVLW 00
259 0181: BSF 03.5 339 01B9: BSF 03.5
260 0182: MOVWF 14 340 01BA: MOVWF 14
261 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 341 .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
262 0183: MOVF 01,W 342 01BB: MOVF 01,W
263 0184: ANDLW C7 343 01BC: ANDLW C7
264 0185: IORLW 08 344 01BD: IORLW 08
265 0186: MOVWF 01 345 01BE: MOVWF 01
266 .................... setup_wdt(WDT_2304MS); 346 .................... setup_wdt(WDT_2304MS);
267 0187: MOVLW 0F 347 01BF: MOVLW 0F
268 0188: MOVWF 77 348 01C0: MOVWF 77
269 0189: MOVLW 07 349 01C1: MOVLW 07
270 018A: BCF 03.5 350 01C2: BCF 03.5
271 018B: CLRF 01 351 01C3: CLRF 01
272 018C: MOVLW 81 352 01C4: MOVLW 81
273 018D: MOVWF 04 353 01C5: MOVWF 04
274 018E: MOVF 00,W 354 01C6: MOVF 00,W
275 018F: ANDLW F0 355 01C7: ANDLW F0
276 0190: IORLW 07 356 01C8: IORLW 07
277 0191: MOVWF 00 357 01C9: MOVWF 00
278 0192: CLRWDT 358 01CA: CLRWDT
279 0193: MOVF 00,W 359 01CB: MOVF 00,W
280 0194: ANDLW F7 360 01CC: ANDLW F7
281 0195: BTFSC 77.3 361 01CD: BTFSC 77.3
282 0196: ANDLW F0 362 01CE: ANDLW F0
283 0197: IORWF 77,W 363 01CF: IORWF 77,W
284 0198: MOVWF 00 364 01D0: MOVWF 00
285 .................... setup_timer_1(T1_DISABLED); 365 .................... setup_timer_1(T1_DISABLED);
286 0199: CLRF 10 366 01D1: CLRF 10
287 .................... setup_timer_2(T2_DISABLED,0,1); 367 .................... setup_timer_2(T2_DISABLED,0,1);
288 019A: MOVLW 00 368 01D2: MOVLW 00
289 019B: MOVWF 78 369 01D3: MOVWF 78
290 019C: MOVWF 12 370 01D4: MOVWF 12
291 019D: MOVLW 00 371 01D5: MOVLW 00
292 019E: BSF 03.5 372 01D6: BSF 03.5
293 019F: MOVWF 12 373 01D7: MOVWF 12
294 .................... setup_comparator(NC_NC_NC_NC); 374 .................... setup_comparator(NC_NC_NC_NC);
295 01A0: MOVLW 07 375 01D8: MOVLW 07
296 01A1: MOVWF 1C 376 01D9: MOVWF 1C
297 01A2: MOVF 05,W 377 01DA: MOVF 05,W
298 01A3: CLRWDT 378 01DB: CLRWDT
299 01A4: MOVLW 02 379 01DC: MOVLW 02
300 01A5: MOVWF 77 380 01DD: MOVWF 77
301 01A6: DECFSZ 77,F 381 01DE: DECFSZ 77,F
302 01A7: GOTO 1A6 382 01DF: GOTO 1DE
303 01A8: NOP 383 01E0: NOP
304 01A9: NOP 384 01E1: NOP
305 01AA: MOVF 1C,W 385 01E2: MOVF 1C,W
306 01AB: BCF 03.5 386 01E3: BCF 03.5
307 01AC: BCF 0D.6 387 01E4: BCF 0D.6
308 .................... setup_vref(FALSE); 388 .................... setup_vref(FALSE);
309 01AD: BSF 03.5 389 01E5: BSF 03.5
310 01AE: CLRF 1D 390 01E6: CLRF 1D
311 .................... 391 ....................
312 .................... enable_interrupts(INT_RDA); 392 .................... enable_interrupts(INT_RDA);
313 01AF: BSF 0C.5 393 01E7: BSF 0C.5
314 .................... enable_interrupts(GLOBAL); 394 .................... enable_interrupts(GLOBAL);
315 01B0: MOVLW C0 395 01E8: MOVLW C0
316 01B1: BCF 03.5 396 01E9: BCF 03.5
317 01B2: IORWF 0B,F 397 01EA: IORWF 0B,F
318 .................... 398 ....................
319 .................... set_adc_channel(0); // Prevodnik pro Hall 399 .................... set_adc_channel(0); // Prevodnik pro Hall
320 01B3: MOVLW 00 400 01EB: MOVLW 00
321 01B4: MOVWF 78 401 01EC: MOVWF 78
322 01B5: MOVF 1F,W 402 01ED: MOVF 1F,W
323 01B6: ANDLW C7 403 01EE: ANDLW C7
324 01B7: IORWF 78,W 404 01EF: IORWF 78,W
325 01B8: MOVWF 1F 405 01F0: MOVWF 1F
326 .................... output_B(0xFF); // Zhasneme 406 .................... output_B(0xFF); // Zhasneme
327 01B9: BSF 03.5 407 01F1: BSF 03.5
328 01BA: CLRF 06 408 01F2: CLRF 06
329 01BB: MOVLW FF 409 01F3: MOVLW FF
330 01BC: BCF 03.5 410 01F4: BCF 03.5
331 01BD: MOVWF 06 411 01F5: MOVWF 06
332 .................... 412 ....................
333 .................... otacky=0; 413 .................... otacky=0;
334 01BE: CLRF 33 414 01F6: CLRF 33
335 .................... napis[0]=0; 415 .................... napis[0]=0;
336 01BF: CLRF 28 416 01F7: CLRF 28
337 .................... 417 ....................
338 .................... while(TRUE) 418 .................... while(TRUE)
339 .................... { 419 .................... {
340 .................... while(napis[0]!=0) 420 .................... if (napis[0]!=0)
-   421 01F8: MOVF 28,F
-   422 01F9: BTFSC 03.2
-   423 01FA: GOTO 1FD
341 .................... { 424 .................... {
342 01C0: MOVF 28,F -  
343 01C1: BTFSC 03.2 -  
344 01C2: GOTO 1FE -  
345 .................... while(read_adc()<9); // Cekani na magnet -  
346 01C3: BSF 1F.2 -  
347 01C4: BTFSC 1F.2 -  
348 01C5: GOTO 1C4 -  
349 01C6: MOVF 1E,W -  
350 01C7: SUBLW 08 -  
351 01C8: BTFSC 03.0 -  
352 01C9: GOTO 1C3 -  
353 .................... delay_ms(10); 425 .................... LED_print();
354 01CA: MOVLW 0A -  
355 01CB: MOVWF 39 -  
356 01CC: CALL 10D -  
357 .................... -  
358 .................... for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) -  
359 01CD: CLRF 36 -  
360 01CE: MOVF 36,W -  
361 01CF: SUBLW 09 -  
362 01D0: BTFSS 03.0 -  
363 01D1: GOTO 1FD -  
364 .................... { -  
365 .................... for(sloupec=0;sloupec<5;sloupec++) -  
366 01D2: CLRF 37 -  
367 01D3: MOVF 37,W -  
368 01D4: SUBLW 04 -  
369 01D5: BTFSS 03.0 -  
370 01D6: GOTO 1F1 -  
371 .................... { -  
372 .................... output_B(pis[(napis[pismeno]-0x41)*5+sloupec]); -  
373 01D7: MOVLW 28 -  
374 01D8: ADDWF 36,W -  
375 01D9: MOVWF 04 -  
376 01DA: MOVLW 41 -  
377 01DB: SUBWF 00,W -  
378 01DC: MOVWF 3B -  
379 01DD: MOVWF 3D -  
380 01DE: MOVLW 05 -  
381 01DF: MOVWF 3E -  
382 01E0: CALL 124 -  
383 01E1: MOVF 37,W -  
384 01E2: ADDWF 78,W -  
385 01E3: CALL 04D -  
386 01E4: MOVWF 39 -  
387 01E5: BSF 03.5 -  
388 01E6: CLRF 06 -  
389 01E7: BCF 03.5 -  
390 01E8: MOVF 39,W -  
391 01E9: MOVWF 06 -  
392 .................... delay_us(500); -  
393 01EA: CLRWDT -  
394 01EB: MOVLW A6 -  
395 01EC: MOVWF 77 -  
396 01ED: DECFSZ 77,F -  
397 01EE: GOTO 1ED -  
398 .................... } -  
399 01EF: INCF 37,F -  
400 01F0: GOTO 1D3 -  
401 .................... output_B(0xFF); -  
402 01F1: BSF 03.5 -  
403 01F2: CLRF 06 -  
404 01F3: MOVLW FF -  
405 01F4: BCF 03.5 -  
406 01F5: MOVWF 06 -  
407 .................... delay_us(500); -  
408 01F6: CLRWDT -  
409 01F7: MOVLW A6 -  
410 01F8: MOVWF 77 -  
411 01F9: DECFSZ 77,F -  
412 01FA: GOTO 1F9 -  
413 .................... } -  
414 01FB: INCF 36,F -  
415 01FC: GOTO 1CE 426 01FB: GOTO 144
416 .................... } 427 .................... }
417 01FD: GOTO 1C0 -  
418 .................... 428 .................... else
419 .................... for(slovo=0;slovo<2;slovo++) -  
420 01FE: CLRF 35 -  
421 01FF: MOVF 35,W -  
422 0200: SUBLW 01 -  
423 0201: BTFSS 03.0 -  
424 0202: GOTO 251 -  
425 .................... for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat -  
426 0203: CLRF 38 -  
427 0204: MOVF 38,W -  
428 0205: SUBLW 14 -  
429 0206: BTFSS 03.0 -  
430 0207: GOTO 24F 429 01FC: GOTO 20C
431 .................... { 430 .................... {
432 .................... while(read_adc()<9); // Cekani na magnet -  
433 0208: BSF 1F.2 -  
434 0209: BTFSC 1F.2 -  
435 020A: GOTO 209 -  
436 020B: MOVF 1E,W -  
437 020C: SUBLW 08 -  
438 020D: BTFSC 03.0 -  
439 020E: GOTO 208 -  
440 .................... delay_ms(10); 431 .................... strcpy(napis,logo);
441 020F: MOVLW 0A -  
442 0210: MOVWF 39 -  
443 0211: CALL 10D -  
444 .................... -  
445 .................... for(pismeno=0;pismeno<MAX_SLOVO;pismeno++) -  
446 0212: CLRF 36 432 01FD: CLRF 35
447 0213: MOVF 36,W -  
448 0214: SUBLW 09 -  
449 0215: BTFSS 03.0 -  
450 0216: GOTO 246 -  
451 .................... { -  
452 .................... for(sloupec=0;sloupec<5;sloupec++) -  
453 0217: CLRF 37 433 01FE: CLRF 36
454 0218: MOVF 37,W -  
455 0219: SUBLW 04 -  
456 021A: BTFSS 03.0 -  
457 021B: GOTO 23A -  
458 .................... { -  
459 .................... output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]); -  
460 021C: MOVF 35,W -  
461 021D: MOVWF 3D -  
462 021E: MOVLW 0A 434 01FF: MOVLW 28
463 021F: MOVWF 3E 435 0200: MOVWF 04
464 0220: CALL 124 -  
465 0221: MOVF 36,W 436 0201: MOVF 35,W
466 0222: ADDWF 78,W 437 0202: ADDWF 04,F
467 0223: CALL 035 -  
468 0224: ADDLW BF -  
469 0225: MOVWF 3C -  
470 0226: MOVWF 3D -  
471 0227: MOVLW 05 -  
472 0228: MOVWF 3E -  
473 0229: CALL 124 -  
474 022A: MOVF 37,W 438 0203: MOVF 36,W
475 022B: ADDWF 78,W -  
476 022C: CALL 04D 439 0204: CALL 035
477 022D: MOVWF 39 -  
478 022E: BSF 03.5 -  
479 022F: CLRF 06 -  
480 0230: BCF 03.5 -  
481 0231: MOVF 39,W -  
482 0232: MOVWF 06 -  
483 .................... delay_us(500); -  
484 0233: CLRWDT -  
485 0234: MOVLW A6 -  
486 0235: MOVWF 77 440 0205: MOVWF 00
487 0236: DECFSZ 77,F -  
488 0237: GOTO 236 -  
489 .................... } -  
490 0238: INCF 37,F -  
491 0239: GOTO 218 -  
492 .................... output_B(0xFF); -  
493 023A: BSF 03.5 -  
494 023B: CLRF 06 -  
495 023C: MOVLW FF 441 0206: IORLW 00
496 023D: BCF 03.5 442 0207: BTFSC 03.2
497 023E: MOVWF 06 -  
498 .................... delay_us(500); -  
499 023F: CLRWDT -  
500 0240: MOVLW A6 -  
501 0241: MOVWF 77 -  
502 0242: DECFSZ 77,F -  
503 0243: GOTO 242 443 0208: GOTO 20C
504 .................... } -  
505 0244: INCF 36,F 444 0209: INCF 36,F
506 0245: GOTO 213 -  
507 .................... if (otacky++>120) reset_cpu(); -  
508 0246: MOVF 33,W -  
509 0247: INCF 33,F 445 020A: INCF 35,F
510 0248: SUBLW 78 -  
511 0249: BTFSC 03.0 -  
512 024A: GOTO 24D -  
513 024B: CLRF 0A -  
514 024C: GOTO 000 446 020B: GOTO 1FF
515 .................... } 447 .................... }
516 024D: INCF 38,F -  
517 024E: GOTO 204 -  
518 024F: INCF 35,F -  
519 0250: GOTO 1FF -  
520 .................... } 448 .................... }
521 0251: GOTO 1C0 449 020C: GOTO 1F8
522 .................... } 450 .................... }
523 0252: SLEEP 451 020D: SLEEP
524   452  
525 Configuration Fuses: 453 Configuration Fuses:
526 Word 1: 3F3D XT WDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT 454 Word 1: 3F3D XT WDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT