📄 main.lis
字号:
0286 ; }
0286 L55:
0286 .dbline 326
0286 6395 inc R22
0288 L57:
0288 .dbline 326
0288 6830 cpi R22,8
028A 08F4 brsh X29
028C C0CF xjmp L54
028E X29:
028E X17:
028E .dbline 364
028E ; num2[chr]=num;
028E CE01 movw R24,R28
0290 0A96 adiw R24,10
0292 EC2D mov R30,R12
0294 FF27 clr R31
0296 E80F add R30,R24
0298 F91F adc R31,R25
029A 0C88 ldd R0,y+20
029C 0082 std z+0,R0
029E .dbline 367
029E ;
029E ;
029E ; }
029E L51:
029E .dbline 324
029E C394 inc R12
02A0 L53:
02A0 .dbline 324
02A0 8C2D mov R24,R12
02A2 8830 cpi R24,8
02A4 08F4 brsh X30
02A6 AFCF xjmp L50
02A8 X30:
02A8 X18:
02A8 .dbline 368
02A8 ; for(i=0;i<8;i++){
02A8 6627 clr R22
02AA 22C0 xjmp L71
02AC L68:
02AC .dbline 368
02AC .dbline 369
02AC ; USART_Transmit(num2[i]);
02AC CE01 movw R24,R28
02AE 0A96 adiw R24,10
02B0 E62F mov R30,R22
02B2 FF27 clr R31
02B4 E80F add R30,R24
02B6 F91F adc R31,R25
02B8 0081 ldd R16,z+0
02BA 8CDF xcall _USART_Transmit
02BC .dbline 370
02BC ; rom_seq[B20_num][i]=num2[i];
02BC 80E0 ldi R24,<_rom_seq
02BE 90E0 ldi R25,>_rom_seq
02C0 20904600 lds R2,_B20_num
02C4 3324 clr R3
02C6 220C lsl R2
02C8 331C rol R3
02CA 220C lsl R2
02CC 331C rol R3
02CE 220C lsl R2
02D0 331C rol R3
02D2 280E add R2,R24
02D4 391E adc R3,R25
02D6 E62F mov R30,R22
02D8 FF27 clr R31
02DA E20D add R30,R2
02DC F31D adc R31,R3
02DE CE01 movw R24,R28
02E0 0A96 adiw R24,10
02E2 A62F mov R26,R22
02E4 BB27 clr R27
02E6 A80F add R26,R24
02E8 B91F adc R27,R25
02EA 2C90 ld R2,x
02EC 2082 std z+0,R2
02EE .dbline 371
02EE ; }
02EE L69:
02EE .dbline 368
02EE 6395 inc R22
02F0 L71:
02F0 .dbline 368
02F0 6830 cpi R22,8
02F2 E0F2 brlo L68
02F4 X19:
02F4 .dbline 372
02F4 ; B20_num++;
02F4 80914600 lds R24,_B20_num
02F8 8F5F subi R24,255 ; addi 1
02FA 80934600 sts _B20_num,R24
02FE .dbline 373
02FE ; for(i=0;i<flag_count;i++){
02FE 6627 clr R22
0300 0AC0 xjmp L75
0302 L72:
0302 .dbline 373
0302 .dbline 374
0302 ; if(flag[i]==1)end_flag++;
0302 CE01 movw R24,R28
0304 E62F mov R30,R22
0306 FF27 clr R31
0308 E80F add R30,R24
030A F91F adc R31,R25
030C 8081 ldd R24,z+0
030E 8130 cpi R24,1
0310 09F4 brne L76
0312 X20:
0312 .dbline 374
0312 A394 inc R10
0314 L76:
0314 .dbline 376
0314 ;
0314 ; }
0314 L73:
0314 .dbline 373
0314 6395 inc R22
0316 L75:
0316 .dbline 373
0316 6417 cp R22,R20
0318 A0F3 brlo L72
031A X21:
031A .dbline 378
031A ;
031A ; if(end_flag==flag_count)
031A A416 cp R10,R20
031C 29F4 brne L78
031E X22:
031E .dbline 379
031E ; {
031E .dbline 380
031E ; flag_count=0xff;
031E 4FEF ldi R20,255
0320 .dbline 381
0320 ; USART_Transmit(0xff);
0320 0FEF ldi R16,255
0322 58DF xcall _USART_Transmit
0324 .dbline 382
0324 ; return 0;
0324 0027 clr R16
0326 37C0 xjmp L46
0328 L78:
0328 .dbline 387
0328 ; }
0328 ;
0328 ;
0328 ;
0328 ; if(flag_count>0&&flag_count!=0xff){ //has bentch
0328 80E0 ldi R24,0
032A 8417 cp R24,R20
032C 08F0 brlo X31
032E 30C0 xjmp L80
0330 X31:
0330 X23:
0330 4F3F cpi R20,255
0332 09F4 brne X32
0334 2DC0 xjmp L80
0336 X32:
0336 X24:
0336 .dbline 387
0336 .dbline 388
0336 ; flag_count--; //flag_count point to the next one
0336 4A95 dec R20
0338 .dbline 389
0338 ; if(flag[flag_count]==0){
0338 CE01 movw R24,R28
033A E42F mov R30,R20
033C FF27 clr R31
033E E80F add R30,R24
0340 F91F adc R31,R25
0342 2080 ldd R2,z+0
0344 2220 tst R2
0346 91F4 brne L85
0348 X25:
0348 .dbline 389
0348 .dbline 390
0348 ; flag[flag_count]=1;
0348 CE01 movw R24,R28
034A E42F mov R30,R20
034C FF27 clr R31
034E E80F add R30,R24
0350 F91F adc R31,R25
0352 81E0 ldi R24,1
0354 8083 std z+0,R24
0356 .dbline 391
0356 ; }
0356 1CC0 xjmp L83
0358 L84:
0358 .dbline 393
0358 ; else{
0358 ; while((flag[flag_count]==1)&&(flag_count>0)){
0358 .dbline 394
0358 ; flag[flag_count--]=0;
0358 642F mov R22,R20
035A 7727 clr R23
035C 4150 subi R20,1
035E CE01 movw R24,R28
0360 E62F mov R30,R22
0362 FF27 clr R31
0364 E80F add R30,R24
0366 F91F adc R31,R25
0368 2224 clr R2
036A 2082 std z+0,R2
036C .dbline 395
036C ; }
036C L85:
036C .dbline 393
036C CE01 movw R24,R28
036E E42F mov R30,R20
0370 FF27 clr R31
0372 E80F add R30,R24
0374 F91F adc R31,R25
0376 8081 ldd R24,z+0
0378 8130 cpi R24,1
037A 19F4 brne L87
037C X26:
037C 80E0 ldi R24,0
037E 8417 cp R24,R20
0380 58F3 brlo L84
0382 X27:
0382 L87:
0382 .dbline 396
0382 ; flag[flag_count]=1;
0382 CE01 movw R24,R28
0384 E42F mov R30,R20
0386 FF27 clr R31
0388 E80F add R30,R24
038A F91F adc R31,R25
038C 81E0 ldi R24,1
038E 8083 std z+0,R24
0390 .dbline 399
0390 ;
0390 ;
0390 ; }
0390 L83:
0390 .dbline 401
0390 ;
0390 ; }
0390 L80:
0390 .dbline 403
0390 ;
0390 ; }while(flag_count!=0xff);
0390 L48:
0390 .dbline 403
0390 4F3F cpi R20,255
0392 09F0 breq X33
0394 2FCF xjmp L47
0396 X33:
0396 X28:
0396 .dbline -2
0396 L46:
0396 .dbline 0 ; func end
0396 6596 adiw R28,21
0398 0C940000 xjmp pop_xgsetF0FC
039C .dbsym r end_flag 10 c
039C .dbsym l num2 10 A[8:8]c
039C .dbsym r chr 12 c
039C .dbsym l flag 0 A[10:10]c
039C .dbsym r flag_count 20 c
039C .dbsym l num 20 c
039C .dbsym r i 22 c
039C .dbsym l retVal 19 c
039C .dbsym l temp 18 c
039C .dbend
039C .dbfunc e match_rom _match_rom fV
039C ; k -> R20
039C ; num -> R10
.even
039C _match_rom::
039C AA92 st -y,R10
039E 4A93 st -y,R20
03A0 A02E mov R10,R16
03A2 .dbline -1
03A2 .dbline 407
03A2 ;
03A2 ; }
03A2 ;
03A2 ; void match_rom(unsigned char num){
03A2 .dbline 409
03A2 ; unsigned char k;
03A2 ; k=resetDS18B20();
03A2 4DDE xcall _resetDS18B20
03A4 .dbline 410
03A4 ; writeuint8DS18B20(0x55); //match common
03A4 05E5 ldi R16,85
03A6 BCDE xcall _writeuint8DS18B20
03A8 .dbline 411
03A8 ; for(k=0;k<8;k++)
03A8 4427 clr R20
03AA 13C0 xjmp L92
03AC L89:
03AC .dbline 412
03AC ; writeuint8DS18B20(rom_seq[num][k]);
03AC 80E0 ldi R24,<_rom_seq
03AE 90E0 ldi R25,>_rom_seq
03B0 2A2C mov R2,R10
03B2 3324 clr R3
03B4 220C lsl R2
03B6 331C rol R3
03B8 220C lsl R2
03BA 331C rol R3
03BC 220C lsl R2
03BE 331C rol R3
03C0 280E add R2,R24
03C2 391E adc R3,R25
03C4 E42F mov R30,R20
03C6 FF27 clr R31
03C8 E20D add R30,R2
03CA F31D adc R31,R3
03CC 0081 ldd R16,z+0
03CE A8DE xcall _writeuint8DS18B20
03D0 L90:
03D0 .dbline 411
03D0 4395 inc R20
03D2 L92:
03D2 .dbline 411
03D2 4830 cpi R20,8
03D4 58F3 brlo L89
03D6 X34:
03D6 .dbline -2
03D6 L88:
03D6 .dbline 0 ; func end
03D6 4991 ld R20,y+
03D8 A990 ld R10,y+
03DA 0895 ret
03DC .dbsym r k 20 c
03DC .dbsym r num 10 c
03DC .dbend
03DC .dbfunc e readTemp_DS18B20 _readTemp_DS18B20 fi
03DC ; x -> R10,R11
03DC ; tempH -> R12
03DC ; tempL -> R10
03DC ; num -> R10
.even
03DC _readTemp_DS18B20::
03DC 0E940000 xcall push_xgset003C
03E0 A02E mov R10,R16
03E2 .dbline -1
03E2 .dbline 416
03E2 ;
03E2 ; }
03E2 ;
03E2 ; unsigned int readTemp_DS18B20(unsigned char num){
03E2 .dbline 419
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -