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

📄 nrf905_temperature.lis

📁 ADC采集温度数据通过nrf905发送出去
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01EC 2224              clr R2
 01EE 80E0              ldi R24,<_data
 01F0 90E0              ldi R25,>_data
 01F2 E42F              mov R30,R20
 01F4 FF27              clr R31
 01F6 E80F              add R30,R24
 01F8 F91F              adc R31,R25
 01FA A080              ldd R10,z+0
 01FC BB24              clr R11
 01FE A20C              add R10,R2
 0200 B31C              adc R11,R3
 0202                   .dbline 356
 0202           ;       
 0202           ;        alarmno = i;
 0202 40937B00          sts _alarmno,R20
 0206                   .dbline 358
 0206           ;          
 0206           ;             if(temp < limit[i][2])  {
 0206 86E0              ldi R24,6
 0208 849F              mul R24,R20
 020A F001              movw R30,R0
 020C 80E0              ldi R24,<_limit+4
 020E 90E0              ldi R25,>_limit+4
 0210 E80F              add R30,R24
 0212 F91F              adc R31,R25
 0214 2080              ldd R2,z+0
 0216 3180              ldd R3,z+1
 0218 A214              cp R10,R2
 021A B304              cpc R11,R3
 021C 48F4              brsh L86
 021E           X18:
 021E                   .dbline 358
 021E                   .dbline 360
 021E           ;                      
 021E           ;                      alarm_flag[i] = 3;
 021E 80E0              ldi R24,<_alarm_flag
 0220 90E0              ldi R25,>_alarm_flag
 0222 E42F              mov R30,R20
 0224 FF27              clr R31
 0226 E80F              add R30,R24
 0228 F91F              adc R31,R25
 022A 83E0              ldi R24,3
 022C 8083              std z+0,R24
 022E                   .dbline 361
 022E           ;                      }
 022E 32C0              rjmp L87
 0230           L86:
 0230                   .dbline 362
 0230           ;            else {
 0230                   .dbline 363
 0230           ;                if(temp < limit[i][1])  {
 0230 86E0              ldi R24,6
 0232 849F              mul R24,R20
 0234 F001              movw R30,R0
 0236 80E0              ldi R24,<_limit+2
 0238 90E0              ldi R25,>_limit+2
 023A E80F              add R30,R24
 023C F91F              adc R31,R25
 023E 2080              ldd R2,z+0
 0240 3180              ldd R3,z+1
 0242 A214              cp R10,R2
 0244 B304              cpc R11,R3
 0246 48F4              brsh L89
 0248           X19:
 0248                   .dbline 363
 0248                   .dbline 365
 0248           ;                               
 0248           ;                              alarm_flag[i] = 2;
 0248 80E0              ldi R24,<_alarm_flag
 024A 90E0              ldi R25,>_alarm_flag
 024C E42F              mov R30,R20
 024E FF27              clr R31
 0250 E80F              add R30,R24
 0252 F91F              adc R31,R25
 0254 82E0              ldi R24,2
 0256 8083              std z+0,R24
 0258                   .dbline 366
 0258           ;                      }
 0258 1DC0              rjmp L90
 025A           L89:
 025A                   .dbline 367
 025A           ;                          else {
 025A                   .dbline 368
 025A           ;                                 if(temp < limit[i][0])  {
 025A 86E0              ldi R24,6
 025C 849F              mul R24,R20
 025E F001              movw R30,R0
 0260 80E0              ldi R24,<_limit
 0262 90E0              ldi R25,>_limit
 0264 E80F              add R30,R24
 0266 F91F              adc R31,R25
 0268 2080              ldd R2,z+0
 026A 3180              ldd R3,z+1
 026C A214              cp R10,R2
 026E B304              cpc R11,R3
 0270 48F4              brsh L92
 0272           X20:
 0272                   .dbline 368
 0272                   .dbline 370
 0272           ;                                             
 0272           ;                                            alarm_flag[i] = 1;
 0272 80E0              ldi R24,<_alarm_flag
 0274 90E0              ldi R25,>_alarm_flag
 0276 E42F              mov R30,R20
 0278 FF27              clr R31
 027A E80F              add R30,R24
 027C F91F              adc R31,R25
 027E 81E0              ldi R24,1
 0280 8083              std z+0,R24
 0282                   .dbline 371
 0282           ;                                        }
 0282 08C0              rjmp L93
 0284           L92:
 0284                   .dbline 372
 0284           ;                                     else{
 0284                   .dbline 373
 0284           ;                                           alarm_flag[i] = 0;
 0284 80E0              ldi R24,<_alarm_flag
 0286 90E0              ldi R25,>_alarm_flag
 0288 E42F              mov R30,R20
 028A FF27              clr R31
 028C E80F              add R30,R24
 028E F91F              adc R31,R25
 0290 2224              clr R2
 0292 2082              std z+0,R2
 0294                   .dbline 374
 0294           ;                                             }  
 0294           L93:
 0294                   .dbline 375
 0294           ;                          }
 0294           L90:
 0294                   .dbline 376
 0294           ;                }
 0294           L87:
 0294                   .dbline 378
 0294           ; 
 0294           ;       if(alarm_flag[i] != Alarm_flag_prev[i]) {
 0294 80E0              ldi R24,<_Alarm_flag_prev
 0296 90E0              ldi R25,>_Alarm_flag_prev
 0298 E42F              mov R30,R20
 029A FF27              clr R31
 029C EE0F              lsl R30
 029E FF1F              rol R31
 02A0 E80F              add R30,R24
 02A2 F91F              adc R31,R25
 02A4 2080              ldd R2,z+0
 02A6 3180              ldd R3,z+1
 02A8 80E0              ldi R24,<_alarm_flag
 02AA 90E0              ldi R25,>_alarm_flag
 02AC E42F              mov R30,R20
 02AE FF27              clr R31
 02B0 E80F              add R30,R24
 02B2 F91F              adc R31,R25
 02B4 4080              ldd R4,z+0
 02B6 5524              clr R5
 02B8 4214              cp R4,R2
 02BA 5304              cpc R5,R3
 02BC A9F0              breq L94
 02BE           X21:
 02BE                   .dbline 378
 02BE                   .dbline 379
 02BE           ;               SendGram(CMD_RETDATA);
 02BE 01E0              ldi R16,1
 02C0 A9D4              rcall _SendGram
 02C2                   .dbline 380
 02C2           ;              Alarm_flag_prev[i] = alarm_flag[i];
 02C2 80E0              ldi R24,<_alarm_flag
 02C4 90E0              ldi R25,>_alarm_flag
 02C6 E42F              mov R30,R20
 02C8 FF27              clr R31
 02CA E80F              add R30,R24
 02CC F91F              adc R31,R25
 02CE 2080              ldd R2,z+0
 02D0 3324              clr R3
 02D2 80E0              ldi R24,<_Alarm_flag_prev
 02D4 90E0              ldi R25,>_Alarm_flag_prev
 02D6 E42F              mov R30,R20
 02D8 FF27              clr R31
 02DA EE0F              lsl R30
 02DC FF1F              rol R31
 02DE E80F              add R30,R24
 02E0 F91F              adc R31,R25
 02E2 3182              std z+1,R3
 02E4 2082              std z+0,R2
 02E6                   .dbline 381
 02E6           ;                return ;
 02E6 06C0              rjmp L78
 02E8           L94:
 02E8                   .dbline 383
 02E8           ;               }
 02E8           ;    }
 02E8           L80:
 02E8                   .dbline 351
 02E8 4395              inc R20
 02EA           L82:
 02EA                   .dbline 351
 02EA 20900100          lds R2,_num
 02EE 4215              cp R20,R2
 02F0 08F4              brsh X23
 02F2 70CF              rjmp L79
 02F4           X23:
 02F4           X22:
 02F4                   .dbline -2
 02F4           L78:
 02F4                   .dbline 0 ; func end
 02F4 00C0              rjmp pop_xgset300C
 02F6                   .dbsym l j 1 c
 02F6                   .dbsym r temp 10 i
 02F6                   .dbsym r i 20 c
 02F6                   .dbend
                        .area vector(rom, abs)
                        .org 28
 001C 7BC1              rjmp _adc_isr
                        .area text(rom, con, rel)
 02F6                   .dbfile E:\变电站测温\测温模块\nrf905_temperature.c
 02F6                   .dbfunc e adc_isr _adc_isr fV
                        .even
 02F6           _adc_isr::
 02F6 1A92              st -y,R1
 02F8 2A92              st -y,R2
 02FA 3A92              st -y,R3
 02FC 4A92              st -y,R4
 02FE 5A92              st -y,R5
 0300 8A93              st -y,R24
 0302 9A93              st -y,R25
 0304 AA93              st -y,R26
 0306 EA93              st -y,R30
 0308 FA93              st -y,R31
 030A 1FB6              in R1,0x3f
 030C 1A92              st -y,R1
 030E                   .dbline -1
 030E                   .dbline 389
 030E           ; }
 030E           ; /////////////////////////////////////////////////////////////////////////////////
 030E           ; //ADC完成中断
 030E           ; #pragma interrupt_handler adc_isr:iv_ADC
 030E           ; void adc_isr(void)
 030E           ; {
 030E                   .dbline 399
 030E           ; 
 030E           ; /*
 030E           ;   uart_TxChar(0xeb);
 030E           ;   uart_TxChar(0x90);
 030E           ;   uart_TxChar(adc_mul);
 030E           ;   uart_TxChar(ADMUX);
 030E           ;   uart_TxChar(ADCL);
 030E           ;   uart_TxChar(ADCH);
 030E           ; */
 030E           ;   data[adc_mux*2] = ADCL;
 030E 80E0              ldi R24,<_data
 0310 90E0              ldi R25,>_data
 0312 E091D800          lds R30,_adc_mux
 0316 F091D900          lds R31,_adc_mux+1
 031A EE0F              lsl R30
 031C FF1F              rol R31
 031E E80F              add R30,R24
 0320 F91F              adc R31,R25
 0322 24B0              in R2,0x4
 0324 2082              std z+0,R2
 0326                   .dbline 400
 0326           ;   data[adc_mux*2+1] = ADCH;
 0326 E091D800          lds R30,_adc_mux
 032A F091D900          lds R31,_adc_mux+1
 032E EE0F              lsl R30
 0330 FF1F              rol R31
 0332 3196              adiw R30,1
 0334 E80F              add R30,R24
 0336 F91F              adc R31,R25
 0338 25B0              in R2,0x5
 033A 2082              std z+0,R2
 033C                   .dbline 402
 033C           ; 
 033C           ;   adc_val = (data[adc_mux*2+1]<<8)|data[adc_mux*2];
 033C 2090D800          lds R2,_adc_mux
 0340 3090D900          lds R3,_adc_mux+1
 0344 220C              lsl R2
 0346 331C              rol R3
 0348 2101              movw R4,R2
 034A F101              movw R30,R2
 034C E80F              add R30,R24
 034E F91F              adc R31,R25
 0350 2080              ldd R2,z+0
 0352 F201              movw R30,R4
 0354 3196              adiw R30,1
 0356 E80F              add R30,R24
 0358 F91F              adc R31,R25
 035A 3080              ldd R3,z+0
 035C 3092DB00          sts _adc_val+1,R3
 0360 2092DA00          sts _adc_val,R2
 0364                   .dbline 404
 0364           ;   
 0364           ;   ++adc_mux;
 0364 8091D800          lds R24,_adc_mux
 0368 9091D900          lds R25,_adc_mux+1
 036C 0196              adiw R24,1
 036E 9093D900          sts _adc_mux+1,R25
 0372 8093D800          sts _adc_mux,R24
 0376                   .dbline 406
 0376           ;   
 0376           ;   if(num > 4) {
 0376 84E0              ldi R24,4
 0378 20900100          lds R2,_num
 037C 8215              cp R24,R2
 037E F8F4              brsh L97
 0380           X24:
 0380                   .dbline 406
 0380                   .dbline 407
 0380           ;                       if(adc_mux == 4) adc_mux = adc_mux+2;
 0380 8091D800          lds R24,_adc_mux
 0384 9091D900          lds R25,_adc_mux+1
 0388 8430              cpi R24,4
 038A E0E0              ldi R30,0
 038C 9E07              cpc R25,R30
 038E 29F4              brne L99
 0390           X25:
 0390                   .dbline 407
 0390 0296              adiw R24,2
 0392 9093D900          sts _adc_mux+1,R25
 0396 8093D800          sts _adc_mux,R24
 039A           L99:
 039A                   .dbline 408
 039A           ;                          if(adc_mux > (num+1)) adc_mux = 0;
 039A 80910100          lds R24,_num

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -