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

📄 jiaozhun.lis

📁 工业开关量检测模块的原代码,带断线检测功能
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -