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