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

📄 public.lis

📁 ATmega128和ads7864实现ATP闭环控制
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module Public.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\ATP_AVR\Public.c
 0000                   .dbfunc e count_seconds _count_seconds fl
 0000           ;              k -> <dead>
 0000           ;              j -> <dead>
 0000           ;            ucM -> R12
 0000           ;            ucF -> R10
 0000           ;            ucS -> y+9
 0000           ;            ucR -> y+8
 0000           ;            ucY -> y+7
 0000           ;            ucN -> y+6
 0000           ;      ulSeconds -> y+0
 0000           ;              i -> R14
 0000           ;         nyrsfm -> R12,R13
                        .even
 0000           _count_seconds::
 0000 0E940000          xcall push_gset5
 0004 6801              movw R12,R16
 0006 2A97              sbiw R28,10
 0008                   .dbline -1
 0008                   .dbline 38
 0008           ; 
 0008           ; //#include "public.h"
 0008           ; #include <iom128v.h>
 0008           ; #include <macros.h>
 0008           ; #include <string.h>
 0008           ; #include <math.h>
 0008           ; #include "DC_Defines.h"
 0008           ; 
 0008           ; 
 0008           ; #define u8 unsigned char
 0008           ; #define s8 char
 0008           ; #define u16 unsigned short
 0008           ; #define s16 short
 0008           ; #define u32 unsigned long
 0008           ; #define s32 long
 0008           ; #define pu16 (unsigned short *)
 0008           ; #define ps16 (short *)
 0008           ; #define pu32 (unsigned long *)
 0008           ; #define ps32 (long *)
 0008           ; 
 0008           ; //全局变量定义
 0008           ; unsigned char ucUpDownTime[12];
 0008           ; unsigned char ucNowTime[6];
 0008           ; unsigned char ucLastFlashTime[6];
 0008           ; unsigned char ucDTTime[6];
 0008           ; unsigned char ucNowValuePer[8];
 0008           ; unsigned char ucNowValuePerCOM[8];
 0008           ; unsigned char FTREC[4];
 0008           ; unsigned char TREC[4];
 0008           ; unsigned char ucSystemConfig[80];
 0008           ; unsigned char ucChannelConfig[80];
 0008           ; unsigned char RECORD[1048];
 0008           ; 
 0008           ; 
 0008           ; 
 0008           ; //计算该时间与2000-01-01 00:00:00 的间隔秒数
 0008           ; unsigned long count_seconds(unsigned char * nyrsfm)
 0008           ; {
 0008                   .dbline 42
 0008           ;       unsigned char ucN,ucY,ucR,ucS,ucF,ucM;//年月日时分秒
 0008           ;       unsigned char i,j,k;
 0008           ;       unsigned long ulSeconds;
 0008           ;       ucN=nyrsfm[0];
 0008 F601              movw R30,R12
 000A 2080              ldd R2,z+0
 000C 2E82              std y+6,R2
 000E                   .dbline 43
 000E           ;       ucY=nyrsfm[1];
 000E 2180              ldd R2,z+1
 0010 2F82              std y+7,R2
 0012                   .dbline 44
 0012           ;       ucR=nyrsfm[2];
 0012 F601              movw R30,R12
 0014 2280              ldd R2,z+2
 0016 2886              std y+8,R2
 0018                   .dbline 45
 0018           ;       ucS=nyrsfm[3];
 0018 F601              movw R30,R12
 001A 2380              ldd R2,z+3
 001C 2986              std y+9,R2
 001E                   .dbline 46
 001E           ;       ucF=nyrsfm[4];
 001E F601              movw R30,R12
 0020 A480              ldd R10,z+4
 0022                   .dbline 47
 0022           ;       ucM=nyrsfm[5];
 0022 F601              movw R30,R12
 0024 C580              ldd R12,z+5
 0026                   .dbline 49
 0026           ; 
 0026           ;       ulSeconds=0;
 0026 40E0              ldi R20,0
 0028 50E0              ldi R21,0
 002A 60E0              ldi R22,0
 002C 70E0              ldi R23,0
 002E FE01              movw R30,R28
 0030 4083              std z+0,R20
 0032 5183              std z+1,R21
 0034 6283              std z+2,R22
 0036 7383              std z+3,R23
 0038                   .dbline 51
 0038           ;       
 0038           ;       for(i=0;i<ucN;i++)
 0038 EE24              clr R14
 003A 2CC0              xjmp L5
 003C           L2:
 003C                   .dbline 52
 003C           ;       {
 003C                   .dbline 53
 003C           ;               if((i%4)==0)    ulSeconds+=((unsigned long)366)*((unsigned long)24)*((unsigned long)3600);      //如果是闰年,加上366的秒数
 003C 14E0              ldi R17,4
 003E 0E2D              mov R16,R14
 0040 0E940000          xcall mod8u
 0044 0023              tst R16
 0046 99F4              brne L6
 0048                   .dbline 53
 0048 40E0              ldi R20,0
 004A 55E8              ldi R21,133
 004C 62EE              ldi R22,226
 004E 71E0              ldi R23,1
 0050 FE01              movw R30,R28
 0052 2080              ldd R2,z+0
 0054 3180              ldd R3,z+1
 0056 4280              ldd R4,z+2
 0058 5380              ldd R5,z+3
 005A 240E              add R2,R20
 005C 351E              adc R3,R21
 005E 461E              adc R4,R22
 0060 571E              adc R5,R23
 0062 FE01              movw R30,R28
 0064 2082              std z+0,R2
 0066 3182              std z+1,R3
 0068 4282              std z+2,R4
 006A 5382              std z+3,R5
 006C 12C0              xjmp L7
 006E           L6:
 006E                   .dbline 54
 006E           ;               else            ulSeconds+=((unsigned long)365)*((unsigned long)24)*((unsigned long)3600);      //如果是平年,加上365的秒数
 006E 40E8              ldi R20,128
 0070 53E3              ldi R21,51
 0072 61EE              ldi R22,225
 0074 71E0              ldi R23,1
 0076 FE01              movw R30,R28
 0078 2080              ldd R2,z+0
 007A 3180              ldd R3,z+1
 007C 4280              ldd R4,z+2
 007E 5380              ldd R5,z+3
 0080 240E              add R2,R20
 0082 351E              adc R3,R21
 0084 461E              adc R4,R22
 0086 571E              adc R5,R23
 0088 FE01              movw R30,R28
 008A 2082              std z+0,R2
 008C 3182              std z+1,R3
 008E 4282              std z+2,R4
 0090 5382              std z+3,R5
 0092           L7:
 0092                   .dbline 55
 0092           L3:
 0092                   .dbline 51
 0092 E394              inc R14
 0094           L5:
 0094                   .dbline 51
 0094 0E80              ldd R0,y+6
 0096 E014              cp R14,R0
 0098 08F4              brsh X1
 009A D0CF              xjmp L2
 009C           X1:
 009C                   .dbline 56
 009C           ;       }
 009C           ;       for(i=1;i<ucY;i++)
 009C EE24              clr R14
 009E E394              inc R14
 00A0 3FC1              xjmp L11
 00A2           L8:
 00A2                   .dbline 57
 00A2           ;       {
 00A2                   .dbline 58
 00A2           ;               switch(i)
 00A2 2E2C              mov R2,R14
 00A4 3324              clr R3
 00A6 3D82              std y+5,R3
 00A8 2C82              std y+4,R2
 00AA C101              movw R24,R2
 00AC 8130              cpi R24,1
 00AE E0E0              ldi R30,0
 00B0 9E07              cpc R25,R30
 00B2 09F4              brne X2
 00B4 38C0              xjmp L15
 00B6           X2:
 00B6 8230              cpi R24,2
 00B8 E0E0              ldi R30,0
 00BA 9E07              cpc R25,R30
 00BC 09F4              brne X3
 00BE 46C0              xjmp L16
 00C0           X3:
 00C0 8330              cpi R24,3
 00C2 E0E0              ldi R30,0
 00C4 9E07              cpc R25,R30
 00C6 09F4              brne X4
 00C8 6DC0              xjmp L19
 00CA           X4:
 00CA 8430              cpi R24,4
 00CC E0E0              ldi R30,0
 00CE 9E07              cpc R25,R30
 00D0 09F4              brne X5
 00D2 7BC0              xjmp L20
 00D4           X5:
 00D4 8530              cpi R24,5
 00D6 E0E0              ldi R30,0
 00D8 9E07              cpc R25,R30
 00DA 09F4              brne X6
 00DC 89C0              xjmp L21
 00DE           X6:
 00DE 8630              cpi R24,6
 00E0 E0E0              ldi R30,0
 00E2 9E07              cpc R25,R30
 00E4 09F4              brne X7
 00E6 97C0              xjmp L22
 00E8           X7:
 00E8 8730              cpi R24,7
 00EA E0E0              ldi R30,0
 00EC 9E07              cpc R25,R30
 00EE 09F4              brne X8
 00F0 A5C0              xjmp L23
 00F2           X8:
 00F2 8830              cpi R24,8
 00F4 E0E0              ldi R30,0
 00F6 9E07              cpc R25,R30
 00F8 09F4              brne X9
 00FA B3C0              xjmp L24
 00FC           X9:
 00FC 8930              cpi R24,9
 00FE E0E0              ldi R30,0
 0100 9E07              cpc R25,R30
 0102 09F4              brne X10
 0104 C1C0              xjmp L25
 0106           X10:
 0106 8A30              cpi R24,10
 0108 E0E0              ldi R30,0
 010A 9E07              cpc R25,R30
 010C 09F4              brne X11
 010E CFC0              xjmp L26
 0110           X11:
 0110 8B30              cpi R24,11
 0112 E0E0              ldi R30,0
 0114 9E07              cpc R25,R30
 0116 09F4              brne X12
 0118 DDC0              xjmp L27
 011A           X12:
 011A 8C30              cpi R24,12
 011C E0E0              ldi R30,0
 011E 9E07              cpc R25,R30
 0120 09F4              brne X13
 0122 EBC0              xjmp L28
 0124           X13:
 0124 FCC0              xjmp L13
 0126           X0:
 0126                   .dbline 59
 0126           ;               {
 0126           L15:
 0126                   .dbline 61
 0126           ;                       case 1:
 0126           ;                               ulSeconds+=((unsigned long)31)*((unsigned long)24)*((unsigned long)3600);
 0126 40E8              ldi R20,128
 0128 5EED              ldi R21,222
 012A 68E2              ldi R22,40
 012C 70E0              ldi R23,0
 012E FE01              movw R30,R28
 0130 2080              ldd R2,z+0
 0132 3180              ldd R3,z+1
 0134 4280              ldd R4,z+2
 0136 5380              ldd R5,z+3
 0138 240E              add R2,R20
 013A 351E              adc R3,R21
 013C 461E              adc R4,R22
 013E 571E              adc R5,R23
 0140 FE01              movw R30,R28
 0142 2082              std z+0,R2
 0144 3182              std z+1,R3
 0146 4282              std z+2,R4
 0148 5382              std z+3,R5
 014A                   .dbline 62
 014A           ;                               break;
 014A E9C0              xjmp L13
 014C           L16:
 014C                   .dbline 64
 014C           ;                       case 2:
 014C           ;                               if((ucN%4)==0)  ulSeconds+=((unsigned long)29)*((unsigned long)24)*((unsigned long)3600);
 014C 14E0              ldi R17,4
 014E 0E81              ldd R16,y+6
 0150 0E940000          xcall mod8u
 0154 0023              tst R16
 0156 99F4              brne L17
 0158                   .dbline 64
 0158 40E8              ldi R20,128
 015A 5BE3              ldi R21,59
 015C 66E2              ldi R22,38
 015E 70E0              ldi R23,0
 0160 FE01              movw R30,R28
 0162 2080              ldd R2,z+0
 0164 3180              ldd R3,z+1
 0166 4280              ldd R4,z+2
 0168 5380              ldd R5,z+3
 016A 240E              add R2,R20
 016C 351E              adc R3,R21
 016E 461E              adc R4,R22
 0170 571E              adc R5,R23
 0172 FE01              movw R30,R28
 0174 2082              std z+0,R2
 0176 3182              std z+1,R3
 0178 4282              std z+2,R4
 017A 5382              std z+3,R5
 017C D0C0              xjmp L13
 017E           L17:
 017E                   .dbline 65
 017E           ;                               else            ulSeconds+=((unsigned long)28)*((unsigned long)24)*((unsigned long)3600);
 017E 40E0              ldi R20,0
 0180 5AEE              ldi R21,234
 0182 64E2              ldi R22,36
 0184 70E0              ldi R23,0
 0186 FE01              movw R30,R28
 0188 2080              ldd R2,z+0
 018A 3180              ldd R3,z+1
 018C 4280              ldd R4,z+2
 018E 5380              ldd R5,z+3
 0190 240E              add R2,R20
 0192 351E              adc R3,R21
 0194 461E              adc R4,R22
 0196 571E              adc R5,R23
 0198 FE01              movw R30,R28
 019A 2082              std z+0,R2
 019C 3182              std z+1,R3
 019E 4282              std z+2,R4
 01A0 5382              std z+3,R5
 01A2                   .dbline 66
 01A2           ;                               break;
 01A2 BDC0              xjmp L13
 01A4           L19:
 01A4                   .dbline 68
 01A4           ;                       case 3:
 01A4           ;                               ulSeconds+=((unsigned long)31)*((unsigned long)24)*((unsigned long)3600);
 01A4 40E8              ldi R20,128
 01A6 5EED              ldi R21,222
 01A8 68E2              ldi R22,40
 01AA 70E0              ldi R23,0
 01AC FE01              movw R30,R28
 01AE 2080              ldd R2,z+0
 01B0 3180              ldd R3,z+1
 01B2 4280              ldd R4,z+2
 01B4 5380              ldd R5,z+3
 01B6 240E              add R2,R20
 01B8 351E              adc R3,R21
 01BA 461E              adc R4,R22
 01BC 571E              adc R5,R23
 01BE FE01              movw R30,R28
 01C0 2082              std z+0,R2
 01C2 3182              std z+1,R3
 01C4 4282              std z+2,R4
 01C6 5382              std z+3,R5
 01C8                   .dbline 69
 01C8           ;                               break;
 01C8 AAC0              xjmp L13
 01CA           L20:
 01CA                   .dbline 71
 01CA           ;                       case 4:
 01CA           ;                               ulSeconds+=((unsigned long)30)*((unsigned long)24)*((unsigned long)3600);
 01CA 40E0              ldi R20,0
 01CC 5DE8              ldi R21,141

⌨️ 快捷键说明

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