📄 jiaozhun.lis
字号:
.module jiaozhun.c
.area text(rom, con, rel)
0000 .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\电流CAN网\jiaozhun.c
0000 .dbfunc e jiaozhun _jiaozhun fV
0000 ; F_Ref -> y+24
0000 ; Z_Ref -> y+20
0000 ; Jiao_Flag -> R10
0000 ; Fu_Data -> y+16
0000 ; Ze_Data -> y+12
0000 ; F_Data -> y+8
0000 ; Z_Data -> y+4
0000 ; td -> y+0
.even
0000 _jiaozhun::
0000 0E940000 xcall push_gset3
0004 6C97 sbiw R28,28
0006 .dbline -1
0006 .dbline 7
0006 ; #include "main.h"
0006 ;
0006 ; extern float x0,k0;
0006 ; extern unsigned char Pass_Flag;
0006 ;
0006 ; void jiaozhun(void)
0006 ; {
0006 .dbline 12
0006 ; long Ze_Data,Fu_Data,td;
0006 ; float Z_Ref,F_Ref,Z_Data,F_Data;
0006 ; unsigned char Jiao_Flag;
0006 ;
0006 ; asm("nop");
0006 0000 nop
0008 .dbline 13
0008 ; asm("nop");
0008 0000 nop
000A .dbline 14
000A ; Jiao_Flag = EEPROMread(0x09);
000A 09E0 ldi R16,9
000C 10E0 ldi R17,0
000E 0E940000 xcall _EEPROMread
0012 A02E mov R10,R16
0014 .dbline 15
0014 ; if(Jiao_Flag == 0x5a)
0014 0A35 cpi R16,90
0016 09F0 breq X0
0018 16C2 xjmp L8
001A X0:
001A .dbline 16
001A ; {
001A .dbline 17
001A ; Pass_Flag = 0x01;
001A 81E0 ldi R24,1
001C 80930000 sts _Pass_Flag,R24
0020 .dbline 18
0020 ; Ze_Data = EEPROMread(0x01); //读取EEROM的数据 计算零点的基准值
0020 01E0 ldi R16,1
0022 10E0 ldi R17,0
0024 0E940000 xcall _EEPROMread
0028 202E mov R2,R16
002A 3324 clr R3
002C 4424 clr R4
002E 5524 clr R5
0030 2C86 std y+12,R2
0032 3D86 std y+13,R3
0034 4E86 std y+14,R4
0036 5F86 std y+15,R5
0038 .dbline 19
0038 ; Ze_Data = Ze_Data<<24;
0038 88E1 ldi R24,24
003A 90E0 ldi R25,0
003C 0C85 ldd R16,y+12
003E 1D85 ldd R17,y+13
0040 2E85 ldd R18,y+14
0042 3F85 ldd R19,y+15
0044 8A93 st -y,R24
0046 0E940000 xcall lsl32
004A 0C87 std y+12,R16
004C 1D87 std y+13,R17
004E 2E87 std y+14,R18
0050 3F87 std y+15,R19
0052 .dbline 20
0052 ; td = EEPROMread(0x02);
0052 02E0 ldi R16,2
0054 10E0 ldi R17,0
0056 0E940000 xcall _EEPROMread
005A 202E mov R2,R16
005C 3324 clr R3
005E 4424 clr R4
0060 5524 clr R5
0062 2882 std y+0,R2
0064 3982 std y+1,R3
0066 4A82 std y+2,R4
0068 5B82 std y+3,R5
006A .dbline 21
006A ; td = td<<16;
006A 2880 ldd R2,y+0
006C 3980 ldd R3,y+1
006E 4A80 ldd R4,y+2
0070 5B80 ldd R5,y+3
0072 2101 movw R4,R2
0074 2224 clr R2
0076 3324 clr R3
0078 2882 std y+0,R2
007A 3982 std y+1,R3
007C 4A82 std y+2,R4
007E 5B82 std y+3,R5
0080 .dbline 22
0080 ; Ze_Data +=td;
0080 2880 ldd R2,y+0
0082 3980 ldd R3,y+1
0084 4A80 ldd R4,y+2
0086 5B80 ldd R5,y+3
0088 6C84 ldd R6,y+12
008A 7D84 ldd R7,y+13
008C 8E84 ldd R8,y+14
008E 9F84 ldd R9,y+15
0090 620C add R6,R2
0092 731C adc R7,R3
0094 841C adc R8,R4
0096 951C adc R9,R5
0098 6C86 std y+12,R6
009A 7D86 std y+13,R7
009C 8E86 std y+14,R8
009E 9F86 std y+15,R9
00A0 .dbline 23
00A0 ; td = EEPROMread(0x03);
00A0 03E0 ldi R16,3
00A2 10E0 ldi R17,0
00A4 0E940000 xcall _EEPROMread
00A8 202E mov R2,R16
00AA 3324 clr R3
00AC 4424 clr R4
00AE 5524 clr R5
00B0 2882 std y+0,R2
00B2 3982 std y+1,R3
00B4 4A82 std y+2,R4
00B6 5B82 std y+3,R5
00B8 .dbline 24
00B8 ; td = td<<8;
00B8 88E0 ldi R24,8
00BA 90E0 ldi R25,0
00BC 0881 ldd R16,y+0
00BE 1981 ldd R17,y+1
00C0 2A81 ldd R18,y+2
00C2 3B81 ldd R19,y+3
00C4 8A93 st -y,R24
00C6 0E940000 xcall lsl32
00CA 0883 std y+0,R16
00CC 1983 std y+1,R17
00CE 2A83 std y+2,R18
00D0 3B83 std y+3,R19
00D2 .dbline 25
00D2 ; Ze_Data +=td;
00D2 2880 ldd R2,y+0
00D4 3980 ldd R3,y+1
00D6 4A80 ldd R4,y+2
00D8 5B80 ldd R5,y+3
00DA 6C84 ldd R6,y+12
00DC 7D84 ldd R7,y+13
00DE 8E84 ldd R8,y+14
00E0 9F84 ldd R9,y+15
00E2 620C add R6,R2
00E4 731C adc R7,R3
00E6 841C adc R8,R4
00E8 951C adc R9,R5
00EA 6C86 std y+12,R6
00EC 7D86 std y+13,R7
00EE 8E86 std y+14,R8
00F0 9F86 std y+15,R9
00F2 .dbline 26
00F2 ; td = EEPROMread(0x04);
00F2 04E0 ldi R16,4
00F4 10E0 ldi R17,0
00F6 0E940000 xcall _EEPROMread
00FA 202E mov R2,R16
00FC 3324 clr R3
00FE 4424 clr R4
0100 5524 clr R5
0102 2882 std y+0,R2
0104 3982 std y+1,R3
0106 4A82 std y+2,R4
0108 5B82 std y+3,R5
010A .dbline 27
010A ; Ze_Data +=td;
010A 2880 ldd R2,y+0
010C 3980 ldd R3,y+1
010E 4A80 ldd R4,y+2
0110 5B80 ldd R5,y+3
0112 6C84 ldd R6,y+12
0114 7D84 ldd R7,y+13
0116 8E84 ldd R8,y+14
0118 9F84 ldd R9,y+15
011A 620C add R6,R2
011C 731C adc R7,R3
011E 841C adc R8,R4
0120 951C adc R9,R5
0122 6C86 std y+12,R6
0124 7D86 std y+13,R7
0126 8E86 std y+14,R8
0128 9F86 std y+15,R9
012A .dbline 28
012A ; Pass_Flag = Pass_Flag<<1;
012A 20900000 lds R2,_Pass_Flag
012E 220C lsl R2
0130 20920000 sts _Pass_Flag,R2
0134 .dbline 29
0134 ; Z_Ref = Ze_Data/1000.0;
0134 0C85 ldd R16,y+12
0136 1D85 ldd R17,y+13
0138 2E85 ldd R18,y+14
013A 3F85 ldd R19,y+15
013C 0E940000 xcall long2fp
0140 1801 movw R2,R16
0142 2901 movw R4,R18
0144 00E0 ldi R16,<L10
0146 10E0 ldi R17,>L10
0148 0E940000 xcall lpm32
014C 3A93 st -y,R19
014E 2A93 st -y,R18
0150 1A93 st -y,R17
0152 0A93 st -y,R16
0154 8101 movw R16,R2
0156 9201 movw R18,R4
0158 0E940000 xcall fpdiv2
015C 0C8B std y+20,R16
015E 1D8B std y+21,R17
0160 2E8B std y+22,R18
0162 3F8B std y+23,R19
0164 .dbline 30
0164 ; Z_Data = Z_Ref*VR;
0164 00E0 ldi R16,<L11
0166 10E0 ldi R17,>L11
0168 0E940000 xcall lpm32
016C CE01 movw R24,R28
016E 4496 adiw R24,20
0170 9A93 st -y,R25
0172 8A93 st -y,R24
0174 0E940000 xcall fpmule1
0178 0C83 std y+4,R16
017A 1D83 std y+5,R17
017C 2E83 std y+6,R18
017E 3F83 std y+7,R19
0180 .dbline 31
0180 ; Pass_Flag = Pass_Flag<<1;
0180 20900000 lds R2,_Pass_Flag
0184 220C lsl R2
0186 20920000 sts _Pass_Flag,R2
018A .dbline 32
018A ; Z_Data = Z_Data/65535.0;
018A 2C80 ldd R2,y+4
018C 3D80 ldd R3,y+5
018E 4E80 ldd R4,y+6
0190 5F80 ldd R5,y+7
0192 00E0 ldi R16,<L12
0194 10E0 ldi R17,>L12
0196 0E940000 xcall lpm32
019A 3A93 st -y,R19
019C 2A93 st -y,R18
019E 1A93 st -y,R17
01A0 0A93 st -y,R16
01A2 8101 movw R16,R2
01A4 9201 movw R18,R4
01A6 0E940000 xcall fpdiv2
01AA 0C83 std y+4,R16
01AC 1D83 std y+5,R17
01AE 2E83 std y+6,R18
01B0 3F83 std y+7,R19
01B2 .dbline 33
01B2 ; Z_Data = Z_Data*1000;
01B2 00E0 ldi R16,<L13
01B4 10E0 ldi R17,>L13
01B6 0E940000 xcall lpm32
01BA CE01 movw R24,R28
01BC 0496 adiw R24,4
01BE 9A93 st -y,R25
01C0 8A93 st -y,R24
01C2 0E940000 xcall fpmule1
01C6 0C83 std y+4,R16
01C8 1D83 std y+5,R17
01CA 2E83 std y+6,R18
01CC 3F83 std y+7,R19
01CE .dbline 34
01CE ; Z_Data = Z_Data/Rref;
01CE 2C80 ldd R2,y+4
01D0 3D80 ldd R3,y+5
01D2 4E80 ldd R4,y+6
01D4 5F80 ldd R5,y+7
01D6 00E0 ldi R16,<L14
01D8 10E0 ldi R17,>L14
01DA 0E940000 xcall lpm32
01DE 3A93 st -y,R19
01E0 2A93 st -y,R18
01E2 1A93 st -y,R17
01E4 0A93 st -y,R16
01E6 8101 movw R16,R2
01E8 9201 movw R18,R4
01EA 0E940000 xcall fpdiv2
01EE 0C83 std y+4,R16
01F0 1D83 std y+5,R17
01F2 2E83 std y+6,R18
01F4 3F83 std y+7,R19
01F6 .dbline 36
01F6 ;
01F6 ; asm("nop");
01F6 0000 nop
01F8 .dbline 37
01F8 ; asm("nop");
01F8 0000 nop
01FA .dbline 38
01FA ; if(Pass_Flag !=0x04)
01FA 80910000 lds R24,_Pass_Flag
01FE 8430 cpi R24,4
0200 11F0 breq L15
0202 .dbline 39
0202 ; RESET;
0202 0C940000 jmp 0x000
0206 L15:
0206 .dbline 41
0206 ;
0206 ; Pass_Flag = 0x01;
0206 81E0 ldi R24,1
0208 80930000 sts _Pass_Flag,R24
020C .dbline 42
020C ; Fu_Data = EEPROMread(0x05); //读取EEROM的数据,计算满量程的基准值
020C 05E0 ldi R16,5
020E 10E0 ldi R17,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -