📄 main.lis
字号:
0138 0083 std z+0,R16
013A .dbline 96
013A 2AE0 ldi R18,10
013C 30E0 ldi R19,0
013E 8A01 movw R16,R20
0140 00D0 rcall div16u
0142 A801 movw R20,R16
0144 .dbline 97
0144 L21:
0144 .dbline 93
0144 6F5F subi R22,255 ; offset = 1
0146 7F4F sbci R23,255
0148 L23:
0148 .dbline 93
0148 6430 cpi R22,4
014A E0E0 ldi R30,0
014C 7E07 cpc R23,R30
014E 68F3 brlo L20
0150 .dbline -2
0150 L15:
0150 00D0 rcall pop_gset3
0152 .dbline 0 ; func end
0152 0895 ret
0154 .dbsym r intV 20 i
0154 .dbsym r i 22 i
0154 .dbsym r pch 10 pc
0154 .dbend
0154 .dbfunc e convert_a _convert_a fV
0154 ; k -> R10,R11
0154 ; temp -> y+4
0154 ; intA -> y+0
0154 ; n -> R12,R13
0154 ; i -> R14,R15
0154 ; pch -> y+22
.even
0154 _convert_a::
0154 1A93 st -y,r17
0156 0A93 st -y,r16
0158 00D0 rcall push_gset5
015A 2C97 sbiw R28,12
015C .dbline -1
015C .dbline 101
015C ; {
015C ; pch[i] = intV % 10;
015C ; intV /= 10;
015C ; }
015C ; }
015C ;
015C ; void convert_a( unsigned char* pch)
015C ; {
015C .dbline 103
015C ; unsigned int i,n,k;
015C ; float temp = 0,intA;
015C 00E0 ldi R16,<L25
015E 10E0 ldi R17,>L25
0160 00D0 rcall lpm32
0162 FE01 movw R30,R28
0164 0483 std z+4,R16
0166 1583 std z+5,R17
0168 2683 std z+6,R18
016A 3783 std z+7,R19
016C .dbline 104
016C ; CHECK_EDATA_A();
016C 65D2 rcall _CHECK_EDATA_A
016E .dbline 105
016E ; if ( MAX_A[0] < 500 )
016E 80910000 lds R24,_MAX_A
0172 90910100 lds R25,_MAX_A+1
0176 843F cpi R24,244
0178 E1E0 ldi R30,1
017A 9E07 cpc R25,R30
017C 20F4 brsh L26
017E .dbline 106
017E ; {
017E .dbline 107
017E ; k = 10;
017E 8AE0 ldi R24,10
0180 90E0 ldi R25,0
0182 5C01 movw R10,R24
0184 .dbline 108
0184 ; }
0184 03C0 rjmp L27
0186 L26:
0186 .dbline 110
0186 ; else
0186 ; {
0186 .dbline 111
0186 ; k = 1;
0186 81E0 ldi R24,1
0188 90E0 ldi R25,0
018A 5C01 movw R10,R24
018C .dbline 112
018C ; }
018C L27:
018C .dbline 113
018C ; intA = ((float)MAX_A[0] * 2.0 * k * adc_data[1]) / 1024.0;
018C 00E0 ldi R16,<L29
018E 10E0 ldi R17,>L29
0190 00D0 rcall lpm32
0192 3A93 st -y,R19
0194 2A93 st -y,R18
0196 1A93 st -y,R17
0198 0A93 st -y,R16
019A 00E0 ldi R16,<L30
019C 10E0 ldi R17,>L30
019E 00D0 rcall lpm32
01A0 3A93 st -y,R19
01A2 2A93 st -y,R18
01A4 1A93 st -y,R17
01A6 0A93 st -y,R16
01A8 00910000 lds R16,_MAX_A
01AC 10910100 lds R17,_MAX_A+1
01B0 1695 lsr R17
01B2 0795 ror R16
01B4 00D0 rcall int2fp
01B6 3A93 st -y,R19
01B8 2A93 st -y,R18
01BA 1A93 st -y,R17
01BC 0A93 st -y,R16
01BE 00D0 rcall empy32fs
01C0 00910000 lds R16,_MAX_A
01C4 10910100 lds R17,_MAX_A+1
01C8 0170 andi R16,1
01CA 1070 andi R17,0
01CC 00D0 rcall int2fp
01CE 3A93 st -y,R19
01D0 2A93 st -y,R18
01D2 1A93 st -y,R17
01D4 0A93 st -y,R16
01D6 00D0 rcall add32fs
01D8 00D0 rcall empy32fs
01DA 00E0 ldi R16,<L30
01DC 10E0 ldi R17,>L30
01DE 00D0 rcall lpm32
01E0 3A93 st -y,R19
01E2 2A93 st -y,R18
01E4 1A93 st -y,R17
01E6 0A93 st -y,R16
01E8 8501 movw R16,R10
01EA 1695 lsr R17
01EC 0795 ror R16
01EE 00D0 rcall int2fp
01F0 3A93 st -y,R19
01F2 2A93 st -y,R18
01F4 1A93 st -y,R17
01F6 0A93 st -y,R16
01F8 00D0 rcall empy32fs
01FA 8501 movw R16,R10
01FC 0170 andi R16,1
01FE 1070 andi R17,0
0200 00D0 rcall int2fp
0202 3A93 st -y,R19
0204 2A93 st -y,R18
0206 1A93 st -y,R17
0208 0A93 st -y,R16
020A 00D0 rcall add32fs
020C 00D0 rcall empy32fs
020E 40900600 lds R4,_adc_data+4+2
0212 50900700 lds R5,_adc_data+4+2+1
0216 20900400 lds R2,_adc_data+4
021A 30900500 lds R3,_adc_data+4+1
021E 5A92 st -y,R5
0220 4A92 st -y,R4
0222 3A92 st -y,R3
0224 2A92 st -y,R2
0226 00D0 rcall empy32fs
0228 00E0 ldi R16,<L17
022A 10E0 ldi R17,>L17
022C 00D0 rcall lpm32
022E 3A93 st -y,R19
0230 2A93 st -y,R18
0232 1A93 st -y,R17
0234 0A93 st -y,R16
0236 00D0 rcall div32f
0238 FE01 movw R30,R28
023A 0083 std z+0,R16
023C 1183 std z+1,R17
023E 2283 std z+2,R18
0240 3383 std z+3,R19
0242 .dbline 116
0242 ; //计算电流值
0242 ;
0242 ; temp = (float)MAX_A[0]* 7.93 * k / 100.0 ;
0242 00E0 ldi R16,<L31
0244 10E0 ldi R17,>L31
0246 00D0 rcall lpm32
0248 3A93 st -y,R19
024A 2A93 st -y,R18
024C 1A93 st -y,R17
024E 0A93 st -y,R16
0250 00E0 ldi R16,<L30
0252 10E0 ldi R17,>L30
0254 00D0 rcall lpm32
0256 3A93 st -y,R19
0258 2A93 st -y,R18
025A 1A93 st -y,R17
025C 0A93 st -y,R16
025E 00910000 lds R16,_MAX_A
0262 10910100 lds R17,_MAX_A+1
0266 1695 lsr R17
0268 0795 ror R16
026A 00D0 rcall int2fp
026C 3A93 st -y,R19
026E 2A93 st -y,R18
0270 1A93 st -y,R17
0272 0A93 st -y,R16
0274 00D0 rcall empy32fs
0276 00910000 lds R16,_MAX_A
027A 10910100 lds R17,_MAX_A+1
027E 0170 andi R16,1
0280 1070 andi R17,0
0282 00D0 rcall int2fp
0284 3A93 st -y,R19
0286 2A93 st -y,R18
0288 1A93 st -y,R17
028A 0A93 st -y,R16
028C 00D0 rcall add32fs
028E 00D0 rcall empy32fs
0290 00E0 ldi R16,<L30
0292 10E0 ldi R17,>L30
0294 00D0 rcall lpm32
0296 3A93 st -y,R19
0298 2A93 st -y,R18
029A 1A93 st -y,R17
029C 0A93 st -y,R16
029E 8501 movw R16,R10
02A0 1695 lsr R17
02A2 0795 ror R16
02A4 00D0 rcall int2fp
02A6 3A93 st -y,R19
02A8 2A93 st -y,R18
02AA 1A93 st -y,R17
02AC 0A93 st -y,R16
02AE 00D0 rcall empy32fs
02B0 8501 movw R16,R10
02B2 0170 andi R16,1
02B4 1070 andi R17,0
02B6 00D0 rcall int2fp
02B8 3A93 st -y,R19
02BA 2A93 st -y,R18
02BC 1A93 st -y,R17
02BE 0A93 st -y,R16
02C0 00D0 rcall add32fs
02C2 00D0 rcall empy32fs
02C4 00E0 ldi R16,<L32
02C6 10E0 ldi R17,>L32
02C8 00D0 rcall lpm32
02CA 3A93 st -y,R19
02CC 2A93 st -y,R18
02CE 1A93 st -y,R17
02D0 0A93 st -y,R16
02D2 00D0 rcall div32f
02D4 FE01 movw R30,R28
02D6 0483 std z+4,R16
02D8 1583 std z+5,R17
02DA 2683 std z+6,R18
02DC 3783 std z+7,R19
02DE .dbline 118
02DE ;
02DE ; if ( intA > temp )
02DE FE01 movw R30,R28
02E0 2480 ldd R2,z+4
02E2 3580 ldd R3,z+5
02E4 4680 ldd R4,z+6
02E6 5780 ldd R5,z+7
02E8 5A92 st -y,R5
02EA 4A92 st -y,R4
02EC 3A92 st -y,R3
02EE 2A92 st -y,R2
02F0 FE01 movw R30,R28
02F2 ; stack offset 4
02F2 2480 ldd R2,z+4
02F4 3580 ldd R3,z+5
02F6 4680 ldd R4,z+6
02F8 5780 ldd R5,z+7
02FA 5A92 st -y,R5
02FC 4A92 st -y,R4
02FE 3A92 st -y,R3
0300 2A92 st -y,R2
0302 00D0 rcall cmp32f
0304 0CF0 brlt X1
0306 E6C0 rjmp L33
0308 X1:
0308 .dbline 119
0308 ; {
0308 .dbline 120
0308 ; intA -= temp;
0308 FE01 movw R30,R28
030A 2080 ldd R2,z+0
030C 3180 ldd R3,z+1
030E 4280 ldd R4,z+2
0310 5380 ldd R5,z+3
0312 5A92 st -y,R5
0314 4A92 st -y,R4
0316 3A92 st -y,R3
0318 2A92 st -y,R2
031A FE01 movw R30,R28
031C ; stack offset 4
031C 2084 ldd R2,z+8
031E 3184 ldd R3,z+9
0320 4284 ldd R4,z+10
0322 5384 ldd R5,z+11
0324 5A92 st -y,R5
0326 4A92 st -y,R4
0328 3A92 st -y,R3
032A 2A92 st -y,R2
032C 00D0 rcall sub32f
032E FE01 movw R30,R28
0330 0083 std z+0,R16
0332 1183 std z+1,R17
0334 2283 std z+2,R18
0336 3383 std z+3,R19
0338 .dbline 121
0338 ; if( adc_data[1] < 33)
0338 40900600 lds R4,_adc_data+4+2
033C 50900700 lds R5,_adc_data+4+2+1
0340 20900400 lds R2,_adc_data+4
0344 30900500 lds R3,_adc_data+4+1
0348 5A92 st -y,R5
034A 4A92 st -y,R4
034C 3A92 st -y,R3
034E 2A92 st -y,R2
0350 00E0 ldi R16,<L38
0352 10E0 ldi R17,>L38
0354 00D0 rcall lpm32
0356 3A93 st -y,R19
0358 2A93 st -y,R18
035A 1A93 st -y,R17
035C 0A93 st -y,R16
035E 00D0 rcall cmp32f
0360 0CF0 brlt X2
0362 51C0 rjmp L35
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -