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

📄 full.lis

📁 工业开关量检测模块的原代码,带断线检测功能
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module full.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\电流CAN网\full.c
 0000                   .dbfunc e full_ref _full_ref fV
 0000           ;     Ad_Fu_Data -> y+108
 0000           ;             ta -> R10
 0000           ;        Fu_temp -> y+104
 0000           ;        temp_dd -> R12
 0000           ;         Ad_buf -> y+100
 0000           ;          Ad_Fu -> y+0
 0000           ;              j -> R14
 0000           ;              i -> R10
                        .even
 0000           _full_ref::
 0000 0E940000          xcall push_gset5
 0004 EF97              sbiw R28,63
 0006 E197              sbiw R28,49  ; offset = 112
 0008                   .dbline -1
 0008                   .dbline 7
 0008           ; #include "main.h"
 0008           ; 
 0008           ; extern unsigned char  tempL,tempH;
 0008           ; extern  unsigned int Ad_Fu_Buf[11];
 0008           ; extern  unsigned int Ad_Ze_Buf[11];
 0008           ; void full_ref(void)                    //满量程校准函数
 0008           ; { 
 0008                   .dbline 12
 0008           ;   unsigned char ta,i,j,temp_dd;
 0008           ;   unsigned int Ad_Fu[50];
 0008           ;   float Ad_Fu_Data;
 0008           ;   long Ad_buf,Fu_temp;
 0008           ;   Ad_buf=0;
 0008 40E0              ldi R20,0
 000A 50E0              ldi R21,0
 000C 60E0              ldi R22,0
 000E 70E0              ldi R23,0
 0010 FE01              movw R30,R28
 0012 EC59              subi R30,156  ; addi 100
 0014 FF4F              sbci R31,255
 0016 4083              std z+0,R20
 0018 5183              std z+1,R21
 001A 6283              std z+2,R22
 001C 7383              std z+3,R23
 001E                   .dbline 14
 001E           ;   
 001E           ;   spi_write(RD_Id_Reg);               
 001E 00E6              ldi R16,96
 0020 0E940000          xcall _spi_write
 0024                   .dbline 15
 0024           ;   ta=spi_read();
 0024 0E940000          xcall _spi_read
 0028 A02E              mov R10,R16
 002A                   .dbline 17
 002A           ;   
 002A           ;   if((ta&0x0f)!=0x0a)
 002A 8A2D              mov R24,R10
 002C 8F70              andi R24,15
 002E 8A30              cpi R24,10
 0030 19F0              breq L8
 0032                   .dbline 18
 0032           ;   RESET;
 0032 0C940000          jmp 0x000
 0036 33C0              xjmp L9
 0038           L8:
 0038                   .dbline 21
 0038           ;   
 0038           ;   else
 0038           ;   {
 0038                   .dbline 23
 0038           ;   
 0038           ;   spi_write(WR_Con_Reg);               
 0038 00E1              ldi R16,16
 003A 0E940000          xcall _spi_write
 003E                   .dbline 24
 003E           ;   spi_write(ConHreg_u_mask);
 003E 00E1              ldi R16,16
 0040 0E940000          xcall _spi_write
 0044                   .dbline 25
 0044           ;   spi_write(ConLreg_ref_mask|ConLreg_buf_mask);
 0044 00E9              ldi R16,144
 0046 0E940000          xcall _spi_write
 004A                   .dbline 27
 004A           ;    
 004A           ;   spi_write(WR_Io_Reg);                 
 004A 08E2              ldi R16,40
 004C 0E940000          xcall _spi_write
 0050                   .dbline 28
 0050           ;   spi_write(0x00);                      
 0050 0027              clr R16
 0052 0E940000          xcall _spi_write
 0056                   .dbline 30
 0056           ;   
 0056           ;   spi_write(WR_Mod_Reg);                
 0056 08E0              ldi R16,8
 0058 0E940000          xcall _spi_write
 005C                   .dbline 31
 005C           ;   spi_write(ModHreg_md2_mask);
 005C 00E8              ldi R16,128
 005E 0E940000          xcall _spi_write
 0062                   .dbline 32
 0062           ;   spi_write(ModLreg_fs0_mask|ModLreg_fs1_mask|ModLreg_fs2_mask|ModLreg_fs3_mask);
 0062 0FE0              ldi R16,15
 0064 0E940000          xcall _spi_write
 0068           L10:
 0068                   .dbline 35
 0068           L11:
 0068                   .dbline 34
 0068           ;   
 0068           ;    while(!PINB3)                        
 0068                   .dbline 36
 0068           ;    ;
 0068           ;   spi_write(WR_Mod_Reg);                          
 0068 08E0              ldi R16,8
 006A 0E940000          xcall _spi_write
 006E                   .dbline 37
 006E           ;   spi_write(ModHreg_md2_mask|ModHreg_md0_mask);
 006E 00EA              ldi R16,160
 0070 0E940000          xcall _spi_write
 0074                   .dbline 38
 0074           ;   spi_write(ModLreg_fs0_mask|ModLreg_fs1_mask|ModLreg_fs2_mask|ModLreg_fs3_mask);
 0074 0FE0              ldi R16,15
 0076 0E940000          xcall _spi_write
 007A           L13:
 007A                   .dbline 41
 007A           L14:
 007A                   .dbline 40
 007A           ;   
 007A           ;    while(!PINB3)                       
 007A                   .dbline 42
 007A           ;    ;
 007A           ;   spi_write(WR_Con_Reg);                
 007A 00E1              ldi R16,16
 007C 0E940000          xcall _spi_write
 0080                   .dbline 43
 0080           ;   spi_write(ConHreg_u_mask);
 0080 00E1              ldi R16,16
 0082 0E940000          xcall _spi_write
 0086                   .dbline 44
 0086           ;   spi_write(ConLreg_ref_mask|ConLreg_buf_mask);
 0086 00E9              ldi R16,144
 0088 0E940000          xcall _spi_write
 008C                   .dbline 46
 008C           ;    
 008C           ;   spi_write(WR_Mod_Reg);               
 008C 08E0              ldi R16,8
 008E 0E940000          xcall _spi_write
 0092                   .dbline 47
 0092           ;   spi_write(0x00);  
 0092 0027              clr R16
 0094 0E940000          xcall _spi_write
 0098                   .dbline 48
 0098           ;   spi_write(ModLreg_fs0_mask|ModLreg_fs1_mask|ModLreg_fs2_mask|ModLreg_fs3_mask);
 0098 0FE0              ldi R16,15
 009A 0E940000          xcall _spi_write
 009E                   .dbline 49
 009E           ;  }                                                   
 009E           L9:
 009E                   .dbline 52
 009E           ;  
 009E           ; 
 009E           ; chan_change(0); 
 009E 0027              clr R16
 00A0 0E940000          xcall _chan_change
 00A4                   .dbline 53
 00A4           ; delay_ms(1000);
 00A4 08EE              ldi R16,1000
 00A6 13E0              ldi R17,3
 00A8 0E940000          xcall _delay_ms
 00AC                   .dbline 54
 00AC           ; for(j=0;j<50;j++)
 00AC EE24              clr R14
 00AE 22C0              xjmp L19
 00B0           L16:
 00B0                   .dbline 55
 00B0           ; {
 00B0                   .dbline 56
 00B0           ; for(i=0;i<11;i++)
 00B0 AA24              clr R10
 00B2 12C0              xjmp L23
 00B4           L20:
 00B4                   .dbline 57
 00B4                   .dbline 58
 00B4 0E940000          xcall _conves_ad
 00B8                   .dbline 59
 00B8 20910000          lds R18,_tempH
 00BC 00910000          lds R16,_tempL
 00C0 0E940000          xcall _char_int
 00C4 82E0              ldi R24,2
 00C6 8A9D              mul R24,R10
 00C8 F001              movw R30,R0
 00CA 80E0              ldi R24,<_Ad_Ze_Buf
 00CC 90E0              ldi R25,>_Ad_Ze_Buf
 00CE E80F              add R30,R24
 00D0 F91F              adc R31,R25
 00D2 1183              std z+1,R17
 00D4 0083              std z+0,R16
 00D6                   .dbline 60
 00D6           L21:
 00D6                   .dbline 56
 00D6 A394              inc R10
 00D8           L23:
 00D8                   .dbline 56
 00D8 8A2D              mov R24,R10
 00DA 8B30              cpi R24,11
 00DC 58F3              brlo L20
 00DE                   .dbline 61
 00DE 0E940000          xcall _filter
 00E2 82E0              ldi R24,2
 00E4 8E9D              mul R24,R14
 00E6 F001              movw R30,R0
 00E8 CE01              movw R24,R28
 00EA E80F              add R30,R24
 00EC F91F              adc R31,R25
 00EE 1183              std z+1,R17
 00F0 0083              std z+0,R16
 00F2                   .dbline 62
 00F2           L17:
 00F2                   .dbline 54
 00F2 E394              inc R14
 00F4           L19:
 00F4                   .dbline 54
 00F4 8E2D              mov R24,R14
 00F6 8233              cpi R24,50
 00F8 D8F2              brlo L16
 00FA                   .dbline 63
 00FA           ; {
 00FA           ; conves_ad();
 00FA           ; Ad_Ze_Buf[i] = char_int(tempL,tempH);
 00FA           ; }
 00FA           ; Ad_Fu[j] = filter();                        //冒泡排序滤波
 00FA           ; }
 00FA           ; for(i=0;i<50;i++)
 00FA AA24              clr R10
 00FC 1DC0              xjmp L27
 00FE           L24:
 00FE                   .dbline 64
 00FE                   .dbline 65
 00FE 82E0              ldi R24,2
 0100 8A9D              mul R24,R10

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -