📄 zero.lis
字号:
0106 E80F add R30,R24
0108 F91F adc R31,R25
010A 2080 ldd R2,z+0
010C 3180 ldd R3,z+1
010E 4424 clr R4
0110 5524 clr R5
0112 FE01 movw R30,R28
0114 EC59 subi R30,156 ; addi 100
0116 FF4F sbci R31,255
0118 6080 ldd R6,z+0
011A 7180 ldd R7,z+1
011C 8280 ldd R8,z+2
011E 9380 ldd R9,z+3
0120 620C add R6,R2
0122 731C adc R7,R3
0124 841C adc R8,R4
0126 951C adc R9,R5
0128 FE01 movw R30,R28
012A EC59 subi R30,156 ; addi 100
012C FF4F sbci R31,255
012E 6082 std z+0,R6
0130 7182 std z+1,R7
0132 8282 std z+2,R8
0134 9382 std z+3,R9
0136 .dbline 62
0136 L25:
0136 .dbline 59
0136 A394 inc R10
0138 L27:
0138 .dbline 59
0138 8A2D mov R24,R10
013A 8233 cpi R24,50
013C 00F3 brlo L24
013E .dbline 64
013E ; {
013E ; Ad_buf +=Ad_Ze[i]; //重复50次 以保证基准点测量的准确性
013E ; }
013E ;
013E ; asm("nop");
013E 0000 nop
0140 .dbline 65
0140 ; asm("nop");
0140 0000 nop
0142 .dbline 66
0142 ; Ad_Ze_Data=Ad_buf/50.0;
0142 FE01 movw R30,R28
0144 EC59 subi R30,156 ; addi 100
0146 FF4F sbci R31,255
0148 0081 ldd R16,z+0
014A 1181 ldd R17,z+1
014C 2281 ldd R18,z+2
014E 3381 ldd R19,z+3
0150 0E940000 xcall long2fp
0154 1801 movw R2,R16
0156 2901 movw R4,R18
0158 00E0 ldi R16,<L28
015A 10E0 ldi R17,>L28
015C 0E940000 xcall lpm32
0160 3A93 st -y,R19
0162 2A93 st -y,R18
0164 1A93 st -y,R17
0166 0A93 st -y,R16
0168 8101 movw R16,R2
016A 9201 movw R18,R4
016C 0E940000 xcall fpdiv2
0170 FE01 movw R30,R28
0172 E459 subi R30,148 ; addi 108
0174 FF4F sbci R31,255
0176 0083 std z+0,R16
0178 1183 std z+1,R17
017A 2283 std z+2,R18
017C 3383 std z+3,R19
017E .dbline 67
017E ; Ze_temp=Ad_Ze_Data*1000; //放大1000倍
017E 00E0 ldi R16,<L29
0180 10E0 ldi R17,>L29
0182 0E940000 xcall lpm32
0186 CE01 movw R24,R28
0188 8459 subi R24,148 ; offset = 108
018A 9F4F sbci R25,255
018C 9A93 st -y,R25
018E 8A93 st -y,R24
0190 0E940000 xcall fpmule1
0194 0E940000 xcall fpint
0198 FE01 movw R30,R28
019A E859 subi R30,152 ; addi 104
019C FF4F sbci R31,255
019E 0083 std z+0,R16
01A0 1183 std z+1,R17
01A2 2283 std z+2,R18
01A4 3383 std z+3,R19
01A6 .dbline 69
01A6 ;
01A6 ; temp_dd = (Ze_temp&0xff000000)>>24; //数据高八位存入EEROM的00地址
01A6 40E0 ldi R20,0
01A8 50E0 ldi R21,0
01AA 60E0 ldi R22,0
01AC 7FEF ldi R23,255
01AE FE01 movw R30,R28
01B0 E859 subi R30,152 ; addi 104
01B2 FF4F sbci R31,255
01B4 0081 ldd R16,z+0
01B6 1181 ldd R17,z+1
01B8 2281 ldd R18,z+2
01BA 3381 ldd R19,z+3
01BC 0423 and R16,R20
01BE 1523 and R17,R21
01C0 2623 and R18,R22
01C2 3723 and R19,R23
01C4 88E1 ldi R24,24
01C6 90E0 ldi R25,0
01C8 8A93 st -y,R24
01CA 0E940000 xcall lsr32
01CE C02E mov R12,R16
01D0 .dbline 70
01D0 ; EEPROMwrite(0x01,temp_dd);
01D0 2C2D mov R18,R12
01D2 01E0 ldi R16,1
01D4 10E0 ldi R17,0
01D6 0E940000 xcall _EEPROMwrite
01DA .dbline 72
01DA ;
01DA ; temp_dd = (Ze_temp&0x00ff0000)>>16;
01DA 40E0 ldi R20,0
01DC 50E0 ldi R21,0
01DE 6FEF ldi R22,255
01E0 70E0 ldi R23,0
01E2 FE01 movw R30,R28
01E4 E859 subi R30,152 ; addi 104
01E6 FF4F sbci R31,255
01E8 2080 ldd R2,z+0
01EA 3180 ldd R3,z+1
01EC 4280 ldd R4,z+2
01EE 5380 ldd R5,z+3
01F0 2422 and R2,R20
01F2 3522 and R3,R21
01F4 4622 and R4,R22
01F6 5722 and R5,R23
01F8 6201 movw R12,R4
01FA .dbline 73
01FA ; EEPROMwrite(0x02,temp_dd);
01FA 2C2D mov R18,R12
01FC 02E0 ldi R16,2
01FE 10E0 ldi R17,0
0200 0E940000 xcall _EEPROMwrite
0204 .dbline 75
0204 ;
0204 ; temp_dd = (Ze_temp&0x00ff00)>>8;
0204 40E0 ldi R20,0
0206 5FEF ldi R21,255
0208 60E0 ldi R22,0
020A 70E0 ldi R23,0
020C FE01 movw R30,R28
020E E859 subi R30,152 ; addi 104
0210 FF4F sbci R31,255
0212 0081 ldd R16,z+0
0214 1181 ldd R17,z+1
0216 2281 ldd R18,z+2
0218 3381 ldd R19,z+3
021A 0423 and R16,R20
021C 1523 and R17,R21
021E 2623 and R18,R22
0220 3723 and R19,R23
0222 88E0 ldi R24,8
0224 90E0 ldi R25,0
0226 8A93 st -y,R24
0228 0E940000 xcall asr32
022C C02E mov R12,R16
022E .dbline 76
022E ; EEPROMwrite(0x03,temp_dd);
022E 2C2D mov R18,R12
0230 03E0 ldi R16,3
0232 10E0 ldi R17,0
0234 0E940000 xcall _EEPROMwrite
0238 .dbline 78
0238 ;
0238 ; temp_dd = (Ze_temp&0x00ff);
0238 4FEF ldi R20,255
023A 50E0 ldi R21,0
023C 60E0 ldi R22,0
023E 70E0 ldi R23,0
0240 FE01 movw R30,R28
0242 E859 subi R30,152 ; addi 104
0244 FF4F sbci R31,255
0246 2080 ldd R2,z+0
0248 3180 ldd R3,z+1
024A 4280 ldd R4,z+2
024C 5380 ldd R5,z+3
024E 2422 and R2,R20
0250 3522 and R3,R21
0252 4622 and R4,R22
0254 5722 and R5,R23
0256 C22C mov R12,R2
0258 .dbline 79
0258 ; EEPROMwrite(0x04,temp_dd);
0258 222D mov R18,R2
025A 04E0 ldi R16,4
025C 10E0 ldi R17,0
025E 0E940000 xcall _EEPROMwrite
0262 .dbline 80
0262 ; EEPROMwrite(0x09,0x5a);
0262 2AE5 ldi R18,90
0264 09E0 ldi R16,9
0266 10E0 ldi R17,0
0268 0E940000 xcall _EEPROMwrite
026C .dbline 81
026C ; asm("nop");
026C 0000 nop
026E .dbline 82
026E ; asm("nop");
026E 0000 nop
0270 .dbline 83
0270 ; PORTB|=0x20; //点亮运行指示灯 表示基准点测量已完成
0270 2D9A sbi 0x5,5
0272 .dbline -2
0272 L7:
0272 EF96 adiw R28,63
0274 E196 adiw R28,49 ; offset = 112
0276 0E940000 xcall pop_gset5
027A .dbline 0 ; func end
027A 0895 ret
027C .dbsym l Ad_Ze_Data 108 D
027C .dbsym r ta 10 c
027C .dbsym l Ze_temp 104 L
027C .dbsym r temp_dd 12 c
027C .dbsym l Ad_buf 100 L
027C .dbsym l Ad_Ze 0 A[100:50]i
027C .dbsym r j 14 c
027C .dbsym r i 10 c
027C .dbend
.area lit(rom, con, rel)
0000 L29:
0000 00007A44 .word 0x0,0x447a
0004 L28:
0004 00004842 .word 0x0,0x4248
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -