📄 rs485.lst
字号:
229 372C 5177 movf ?_delay_nus^(__Lparam& (0+65280)),w
230 372E 5CF3 subwf prodl,w,c
231 3730 u15:
232 3730 B0D8 btfsc status,0,c
233 3732 D005 goto u10
234 ;rs485.c: 138: delay_1us();
235 3734 DFEC call _delay_1us ;wreg free
236 3736 2AF3 incf prodl,f,c
237 3738 0E00 movlw 0
238 373A 22F4 addwfc prodh,f,c
239 373C D7F3 goto l9
240 373E u10:
241 ;rs485.c: 139: }
242 373E 0012 return
243 3740 FFFF dw 65535
244 3742 D7EC goto f4572
245 ;rs485.c: 149: void delay_1ms()
246 ;rs485.c: 150: {
247 3744 _delay_1ms:
248 3744 FFFF dw 65535
249 3746 f4582:
250 0000
251 ;rs485.c: 151: unsigned int i;
252 3746 6AF3 clrf prodl,c
253 3748 6AF4 clrf prodh,c
254 374A l11:
255 ;rs485.c: 153: ;
256 374A 2AF3 incf prodl,f,c
257 374C 0E00 movlw 0
258 374E 22F4 addwfc prodh,f,c
259 3750 0E04 movlw 4
260 3752 5CF4 subwf prodh,w,c
261 3754 0E74 movlw 116
262 3756 B4D8 btfsc status,2,c
263 3758 5CF3 subwf prodl,w,c
264 375A B0D8 btfsc status,0,c
265 ;rs485.c: 154: }
266 375C 0012 return
267 375E D7F5 goto l11
268 3760 FFFF dw 65535
269 3762 D7F1 goto f4582
270 ;rs485.c: 164: void delay_nms( unsigned int n )
271 ;rs485.c: 165: {
272 ; param _n assigned to ?_delay_nms+0
273 3764 008D dw ?_delay_nms
274 3766 _delay_nms:
275 3766 FFFF dw 65535
276 3768 f4592:
277 0000
278 ;rs485.c: 166: unsigned int i = 0;
279 3768 6AF6 clrf tblptrl,c
280 376A 6AF7 clrf tblptrh,c
281 ;rs485.c: 167: for (i = 0; i < n; i++ )
282 376C 6AF6 clrf tblptrl,c
283 376E 6AF7 clrf tblptrh,c
284 3770 l18:
285 3770 0100 movlb __Lparam shr (0+8)
286 3772 518E movf (?_delay_nms+1)^(__Lparam& (0+65280)),w
287 3774 5CF7 subwf tblptrh,w,c
288 3776 E102 bnz u35
289 3778 518D movf ?_delay_nms^(__Lparam& (0+65280)),w
290 377A 5CF6 subwf tblptrl,w,c
291 377C u35:
292 377C B0D8 btfsc status,0,c
293 377E D005 goto u30
294 ;rs485.c: 168: delay_1ms();
295 3780 DFE1 call _delay_1ms ;wreg free
296 3782 2AF6 incf tblptrl,f,c
297 3784 0E00 movlw 0
298 3786 22F7 addwfc tblptrh,f,c
299 3788 D7F3 goto l18
300 378A u30:
301 ;rs485.c: 169: }
302 378A 0012 return
303 378C FFFF dw 65535
304 378E D7EC goto f4592
305 ;rs485.c: 178: unsigned char crc8(unsigned char
+ *ptr, unsigned char len)
306 ;rs485.c: 179: {
307 ; param _ptr assigned to ?_crc8+0
308 3790 008A dw ?_crc8
309 3792 _crc8:
310 3792 FFFF dw 65535
311 3794 f4602:
312 0000
313 ; _ptr loaded to fsr1
314 3794 C08A FFE1 movff ?_crc8,fsr1l
315 3798 C08B FFE2 movff ?_crc8+1,fsr1h
316 ;rs485.c: 180: unsigned char i;
317 379C 6AD9 clrf fsr2l,c
318 ;rs485.c: 182: while( ( len-- ) != 0 )
319 379E l20:
320 ;rs485.c: 197: }
321 379E 0100 movlb __Lparam shr (0+8)
322 37A0 078C decf (?_crc8+2)^(__Lparam& (0+65280)),f
323 37A2 298C incf (?_crc8+2)^(__Lparam& (0+65280)),w
324 37A4 B4D8 btfsc status,2,c
325 37A6 D018 goto u70
326 ;rs485.c: 183: {
327 37A8 0E01 movlw 1
328 37AA 6EE9 movwf fsr0l,c
329 37AC l23:
330 ;rs485.c: 187: {
331 37AC 90D8 bcf status,0,c
332 ;rs485.c: 185: {
333 ;rs485.c: 186: if( ( crc & 1 ) != 0 )
334 37AE A0D9 btfss fsr2l,0,c
335 37B0 D004 goto L1
336 37B2 32D9 rrcf fsr2l,f,c
337 ;rs485.c: 189: crc ^= 0x8C;
338 37B4 0E8C movlw 140
339 37B6 1AD9 xorwf fsr2l,f,c
340 ;rs485.c: 190: }
341 37B8 D001 goto l27
342 ;rs485.c: 192: crc /= 2;
343 37BA L1:
344 37BA 32D9 rrcf fsr2l,f,c
345 37BC l27:
346 ;rs485.c: 193: if( ( *ptr & i ) != 0 )
347 37BC 50E7 movf indf1,w,c
348 37BE 6E00 movwf btemp
349 37C0 14E9 andwf fsr0l,w,c
350 37C2 B4D8 btfsc status,2,c
351 37C4 D002 goto l28
352 ;rs485.c: 194: crc ^= 0x8C;
353 37C6 0E8C movlw 140
354 37C8 1AD9 xorwf fsr2l,f,c
355 37CA l28:
356 ;rs485.c: 195: }
357 37CA 90D8 bcf status,0,c
358 37CC 36E9 rlcf fsr0l,f,c
359 37CE 50E9 movf fsr0l,w,c
360 37D0 A4D8 btfss status,2,c
361 37D2 D7EC goto l23
362 ;rs485.c: 196: ptr++;
363 37D4 52E6 movf postinc1,f,c
364 37D6 D7E3 goto l20
365 37D8 u70:
366 ;rs485.c: 198: return( crc );
367 37D8 50D9 movf fsr2l,w,c
368 ;rs485.c: 199: }
369 37DA 0012 return
370 37DC FFFF dw 65535
371 37DE D7DA goto f4602
372 37E0 008A dw ?_SendData
373 37E2 _SendData:
374 37E2 FFFF dw 65535
375 37E4 f4612:
376 0000
377 ;rs485.c: 210: unsigned char i = 0;
378 37E4 6AD9 clrf fsr2l,c
379 ;rs485.c: 211: RC2 = 1;
380 37E6 8482 bsf 3970,2,c ;volatile
381 ;rs485.c: 212: while( i < len )
382 37E8 l30:
383 ;rs485.c: 220: }
384 37E8 0100 movlb __Lparam shr (0+8)
385 37EA 518C movf (?_SendData+2)^(__Lparam& (0+65280)),w
386 37EC 5CD9 subwf fsr2l,w,c
387 37EE B0D8 btfsc status,0,c
388 37F0 D011 goto u90
389 ;rs485.c: 213: {
390 37F2 50D9 movf fsr2l,w,c
391 37F4 258A addwf ?_SendData^(__Lparam& (0+65280)),w
392 37F6 6EE9 movwf fsr0l,c
393 37F8 0E00 movlw 0
394 37FA 218B addwfc (?_SendData+1)^(__Lparam& (0+65280)),w
395 37FC 6EEA movwf fsr0h
396 37FE 50EF movf indf0,w,c
397 3800 6EAD movwf 4013,c ;volatile
398 ;rs485.c: 216: while( TXIF == 0 );
399 3802 l33:
400 3802 A89E btfss 3998,4,c ;volatile
401 3804 D7FE goto l33
402 ;rs485.c: 217: i++;
403 3806 2AD9 incf fsr2l,f,c
404 ;rs485.c: 219: delay_nms(10);
405 3808 0E0A movlw 10
406 380A 0100 movlb __Lparam shr (0+8)
407 380C 6F8D movwf ?_delay_nms^(__Lparam& (0+65280))
408 380E 6B8E clrf (?_delay_nms+1)^(__Lparam& (0+65280))
409 3810 DFAA call _delay_nms ;wreg free
410 3812 D7EA goto l30
411 3814 u90:
412 ;rs485.c: 222: RC2 = 0;
413 3814 9482 bcf 3970,2,c ;volatile
414 ;rs485.c: 223: }
415 3816 0012 return
416 3818 FFFF dw 65535
417 381A D7E4 goto f4612
418 ;rs485.c: 232: void Rs485SendPkg( unsigned char
+ address )
419 ;rs485.c: 233: {
420 381C _Rs485SendPkg:
421 381C FFFF dw 65535
422 381E f4622:
423 0000
424 ; _address loaded to fsr2l
425 381E 6ED9 movwf fsr2l,c
426 ;rs485.c: 234: RCIE = 0;
427 3820 9A9D bcf 3997,5,c
428 ;rs485.c: 235: TXEN = 1;
429 3822 8AAC bsf 4012,5,c
430 ;rs485.c: 239: SendBuf[0] = 0x55;
431 3824 0E55 movlw 85
432 3826 CFE8 F5B1 movff wreg,_SendBuf
433 ;rs485.c: 240: SendBuf[1] = address;
434 382A CFD9 F5B2 movff fsr2l,_SendBuf+1
435 ;rs485.c: 241: SendBuf[3 - 1] = crc8( SendBuf,3
+ - 1 );
436 382E 0100 movlb __Lparam shr (0+8)
437 3830 0EB1 movlw low _SendBuf
438 3832 6F8A movwf ?_crc8^(__Lparam& (0+65280))
439 3834 0E05 movlw high _SendBuf
440 3836 6F8B movwf (?_crc8+1)^(__Lparam& (0+65280))
441 3838 0E02 movlw 2
442 383A 6F8C movwf (?_crc8+2)^(__Lparam& (0+65280))
443 383C DFAA call _crc8 ;wreg free
444 383E CFE8 F5B3 movff wreg,_SendBuf+2
445 ;rs485.c: 243: SendData( SendBuf,3 );
446 3842 0100 movlb __Lparam shr (0+8)
447 3844 0EB1 movlw low _SendBuf
448 3846 6F8A movwf ?_SendData^(__Lparam& (0+65280))
449 3848 0E05 movlw high _SendBuf
450 384A 6F8B movwf (?_SendData+1)^(__Lparam& (0+65280))
451 384C 0E03 movlw 3
452 384E 6F8C movwf (?_SendData+2)^(__Lparam& (0+65280))
453 3850 DFC8 call _SendData ;wreg free
454 ;rs485.c: 244: delay_nms(10);
455 3852 0E0A movlw 10
456 3854 0100 movlb __Lparam shr (0+8)
457 3856 6F8D movwf ?_delay_nms^(__Lparam& (0+65280))
458 3858 6B8E clrf (?_delay_nms+1)^(__Lparam& (0+65280))
459 385A DF85 call _delay_nms ;wreg free
460 ;rs485.c: 247: RCIE = 1;
461 385C 8A9D bsf 3997,5,c
462 ;rs485.c: 248: CREN = 1;
463 385E 88AB bsf 4011,4,c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -