⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 ds18b20多个时候的分辨函数
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -