📄 full.lis
字号:
.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 + -