📄 main.lis
字号:
0290 9F81 ldd R25,y+7
0292 8338 cpi R24,131
0294 E0E0 ldi R30,0
0296 9E07 cpc R25,R30
0298 18F4 brsh L59
029A .dbline 186
029A 81E0 ldi R24,1
029C 80930000 sts _flas4,R24
02A0 L59:
02A0 .dbline 188
02A0 ;
02A0 ; bubble_sort(temp, batt);
02A0 20911400 lds R18,_batt
02A4 8E01 movw R16,R28
02A6 11DF rcall _bubble_sort
02A8 .dbline 190
02A8 ;
02A8 ; if(batt==4)
02A8 80911400 lds R24,_batt
02AC 8430 cpi R24,4
02AE A9F4 brne L62
02B0 .dbline 191
02B0 ; {
02B0 .dbline 192
02B0 ; if( (temp[0]-temp[3])>10 )
02B0 2E80 ldd R2,y+6
02B2 3F80 ldd R3,y+7
02B4 4880 ldd R4,y+0
02B6 5980 ldd R5,y+1
02B8 4218 sub R4,R2
02BA 5308 sbc R5,R3
02BC 8AE0 ldi R24,10
02BE 90E0 ldi R25,0
02C0 8415 cp R24,R4
02C2 9505 cpc R25,R5
02C4 90F5 brsh L63
02C6 .dbline 193
02C6 ; {
02C6 .dbline 194
02C6 ; flas1 = 1;
02C6 81E0 ldi R24,1
02C8 80930300 sts _flas1,R24
02CC .dbline 195
02CC ; flas2 = 1;
02CC 80930200 sts _flas2,R24
02D0 .dbline 196
02D0 ; flas3 = 1;
02D0 80930100 sts _flas3,R24
02D4 .dbline 197
02D4 ; flas4 = 1;
02D4 80930000 sts _flas4,R24
02D8 .dbline 198
02D8 ; }
02D8 .dbline 199
02D8 ; }
02D8 28C0 rjmp L63
02DA L62:
02DA .dbline 200
02DA ; else if(batt==3)
02DA 80911400 lds R24,_batt
02DE 8330 cpi R24,3
02E0 81F4 brne L67
02E2 .dbline 201
02E2 ; {
02E2 .dbline 202
02E2 ; if(temp[0]> (temp[2]+5))
02E2 8C81 ldd R24,y+4
02E4 9D81 ldd R25,y+5
02E6 0596 adiw R24,5
02E8 2880 ldd R2,y+0
02EA 3980 ldd R3,y+1
02EC 8215 cp R24,R2
02EE 9305 cpc R25,R3
02F0 E0F4 brsh L68
02F2 .dbline 203
02F2 ; {
02F2 .dbline 204
02F2 ; flas1 = 1;
02F2 81E0 ldi R24,1
02F4 80930300 sts _flas1,R24
02F8 .dbline 205
02F8 ; flas2 = 1;
02F8 80930200 sts _flas2,R24
02FC .dbline 206
02FC ; flas3 = 1;
02FC 80930100 sts _flas3,R24
0300 .dbline 207
0300 ; }
0300 .dbline 208
0300 ; }
0300 14C0 rjmp L68
0302 L67:
0302 .dbline 209
0302 ; else if(batt==2)
0302 80911400 lds R24,_batt
0306 8230 cpi R24,2
0308 81F4 brne L72
030A .dbline 210
030A ; {
030A .dbline 211
030A ; if( (temp[0]-temp[1])>10 )
030A 2A80 ldd R2,y+2
030C 3B80 ldd R3,y+3
030E 4880 ldd R4,y+0
0310 5980 ldd R5,y+1
0312 4218 sub R4,R2
0314 5308 sbc R5,R3
0316 8AE0 ldi R24,10
0318 90E0 ldi R25,0
031A 8415 cp R24,R4
031C 9505 cpc R25,R5
031E 28F4 brsh L74
0320 .dbline 212
0320 ; {
0320 .dbline 213
0320 ; flas1 = 1;
0320 81E0 ldi R24,1
0322 80930300 sts _flas1,R24
0326 .dbline 214
0326 ; flas2 = 1;
0326 80930200 sts _flas2,R24
032A .dbline 215
032A ; }
032A L74:
032A .dbline 216
032A ; }
032A L72:
032A L68:
032A L63:
032A .dbline -2
032A L29:
032A 2896 adiw R28,8
032C .dbline 0 ; func end
032C 0895 ret
032E .dbsym l temp 0 A[8:4]i
032E .dbend
032E .dbfunc e ADC_count _ADC_count fV
032E ; temp -> R20,R21
.even
032E _ADC_count::
032E 00D0 rcall push_gset1
0330 .dbline -1
0330 .dbline 228
0330 ;
0330 ; }
0330 ;
0330 ;
0330 ;
0330 ;
0330 ; /*---------------------------------------------------------------
0330 ; A/D 转换
0330 ; ----------------------------------------------------------------*/
0330 ;
0330 ; void ADC_count(void)
0330 ; {
0330 .dbline 231
0330 ; uint temp;
0330 ;
0330 ; ad_temp += AD_CH(adc_ch);
0330 00910000 lds R16,_adc_ch
0334 6CDE rcall _AD_CH
0336 20901600 lds R2,_ad_temp
033A 30901700 lds R3,_ad_temp+1
033E 200E add R2,R16
0340 311E adc R3,R17
0342 30921700 sts _ad_temp+1,R3
0346 20921600 sts _ad_temp,R2
034A .dbline 232
034A ; adc_num ++;
034A 80911500 lds R24,_adc_num
034E 8F5F subi R24,255 ; addi 1
0350 80931500 sts _adc_num,R24
0354 .dbline 233
0354 ; if(adc_num>=16)
0354 8031 cpi R24,16
0356 08F4 brsh X5
0358 43C0 rjmp L78
035A X5:
035A .dbline 234
035A ; {
035A .dbline 235
035A ; adc_num = 0;
035A 2224 clr R2
035C 20921500 sts _adc_num,R2
0360 .dbline 236
0360 ; temp = ad_temp>>4;
0360 40911600 lds R20,_ad_temp
0364 50911700 lds R21,_ad_temp+1
0368 5695 lsr R21
036A 4795 ror R20
036C 5695 lsr R21
036E 4795 ror R20
0370 5695 lsr R21
0372 4795 ror R20
0374 5695 lsr R21
0376 4795 ror R20
0378 .dbline 237
0378 ; ad_temp = 0;
0378 3324 clr R3
037A 30921700 sts _ad_temp+1,R3
037E 20921600 sts _ad_temp,R2
0382 .dbline 239
0382 ;
0382 ; if(adc_ch==0)
0382 20900000 lds R2,_adc_ch
0386 2220 tst R2
0388 41F4 brne L80
038A .dbline 240
038A ; {
038A .dbline 241
038A ; V[1] = temp;
038A 50931D00 sts _V+2+1,R21
038E 40931C00 sts _V+2,R20
0392 .dbline 242
0392 ; adc_ch = 1;
0392 81E0 ldi R24,1
0394 80930000 sts _adc_ch,R24
0398 .dbline 243
0398 ; }
0398 23C0 rjmp L81
039A L80:
039A .dbline 244
039A ; else if(adc_ch==1)
039A 80910000 lds R24,_adc_ch
039E 8130 cpi R24,1
03A0 41F4 brne L83
03A2 .dbline 245
03A2 ; {
03A2 .dbline 246
03A2 ; V[0] = temp;
03A2 50931B00 sts _V+1,R21
03A6 40931A00 sts _V,R20
03AA .dbline 247
03AA ; adc_ch = 6;
03AA 86E0 ldi R24,6
03AC 80930000 sts _adc_ch,R24
03B0 .dbline 248
03B0 ; }
03B0 17C0 rjmp L84
03B2 L83:
03B2 .dbline 249
03B2 ; else if(adc_ch==6)
03B2 80910000 lds R24,_adc_ch
03B6 8630 cpi R24,6
03B8 41F4 brne L85
03BA .dbline 250
03BA ; {
03BA .dbline 251
03BA ; V[3] = temp ;
03BA 50932100 sts _V+6+1,R21
03BE 40932000 sts _V+6,R20
03C2 .dbline 252
03C2 ; adc_ch = 7;
03C2 87E0 ldi R24,7
03C4 80930000 sts _adc_ch,R24
03C8 .dbline 253
03C8 ; }
03C8 0BC0 rjmp L86
03CA L85:
03CA .dbline 254
03CA ; else if(adc_ch==7)
03CA 80910000 lds R24,_adc_ch
03CE 8730 cpi R24,7
03D0 39F4 brne L88
03D2 .dbline 255
03D2 ; {
03D2 .dbline 256
03D2 ; V[2] = temp ;
03D2 50931F00 sts _V+4+1,R21
03D6 40931E00 sts _V+4,R20
03DA .dbline 257
03DA ; adc_ch = 0;
03DA 2224 clr R2
03DC 20920000 sts _adc_ch,R2
03E0 .dbline 258
03E0 ; }
03E0 L88:
03E0 L86:
03E0 L84:
03E0 L81:
03E0 .dbline 261
03E0 L78:
03E0 .dbline -2
03E0 L77:
03E0 00D0 rcall pop_gset1
03E2 .dbline 0 ; func end
03E2 0895 ret
03E4 .dbsym r temp 20 i
03E4 .dbend
03E4 .dbfunc e batt_test _batt_test fV
.even
03E4 _batt_test::
03E4 .dbline -1
03E4 .dbline 273
03E4 ;
03E4 ; //abcd();
03E4 ; }
03E4 ;
03E4 ; }
03E4 ;
03E4 ;
03E4 ;
03E4 ;
03E4 ; /*---------------------------------------------------------------
03E4 ; 电池组数检测
03E4 ; ----------------------------------------------------------------*/
03E4 ;
03E4 ; void batt_test(void)
03E4 ; {
03E4 .dbline 274
03E4 ; if(AD_CH(1)>60) batt =1;
03E4 01E0 ldi R16,1
03E6 13DE rcall _AD_CH
03E8 8CE3 ldi R24,60
03EA 90E0 ldi R25,0
03EC 8017 cp R24,R16
03EE 9107 cpc R25,R17
03F0 18F4 brsh L92
03F2 .dbline 274
03F2 81E0 ldi R24,1
03F4 80931400 sts _batt,R24
03F8 L92:
03F8 .dbline 275
03F8 ; if(AD_CH(0)>120) batt =2;
03F8 0027 clr R16
03FA 09DE rcall _AD_CH
03FC 88E7 ldi R24,120
03FE 90E0 ldi R25,0
0400 8017 cp R24,R16
0402 9107 cpc R25,R17
0404 18F4 brsh L94
0406 .dbline 275
0406 82E0 ldi R24,2
0408 80931400 sts _batt,R24
040C L94:
040C .dbline 276
040C ; if(AD_CH(7)>180) batt =3;
040C 07E0 ldi R16,7
040E FFDD rcall _AD_CH
0410 84EB ldi R24,180
0412 90E0 ldi R25,0
0414 8017 cp R24,R16
0416 9107 cpc R25,R17
0418 18F4 brsh L96
041A .dbline 276
041A 83E0 ldi R24,3
041C 80931400 sts _batt,R24
0420 L96:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -