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

📄 main.lis

📁 工控计数器ICCAVR的MAGE8程序LED数码显示+4键
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _ticnt::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\NumberDisplay\cfile\main.c
 0002                   .dbsym e ticnt _ticnt i
 0002           _keytime::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile E:\NumberDisplay\cfile\main.c
 0004                   .dbsym e keytime _keytime i
                        .area vector(rom, abs)
                        .org 2
 0002 00C0              rjmp _Key_Init
                        .area data(ram, con, rel)
 0004                   .dbfile E:\NumberDisplay\cfile\main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\NumberDisplay\cfile\main.c
 0000                   .dbfunc e Key_Init _Key_Init fV
 0000           ;              j -> R10
 0000           ;              x -> R10
                        .even
 0000           _Key_Init::
 0000 0A92              st -y,R0
 0002 1A92              st -y,R1
 0004 2A92              st -y,R2
 0006 3A92              st -y,R3
 0008 4A92              st -y,R4
 000A 5A92              st -y,R5
 000C 6A92              st -y,R6
 000E 7A92              st -y,R7
 0010 8A92              st -y,R8
 0012 9A92              st -y,R9
 0014 0A93              st -y,R16
 0016 1A93              st -y,R17
 0018 2A93              st -y,R18
 001A 8A93              st -y,R24
 001C 9A93              st -y,R25
 001E EA93              st -y,R30
 0020 FA93              st -y,R31
 0022 0FB6              in R0,0x3f
 0024 0A92              st -y,R0
 0026 00D0              rcall push_gset3
 0028                   .dbline -1
 0028                   .dbline 16
 0028           ; #define MAIN_C
 0028           ; #include "main.h"
 0028           ; #define    ds            0
 0028           ; #define    cp            1
 0028           ; #define    sh_cp       2
 0028           ; long                                Contdata,timeset[3];
 0028           ; unsigned    int                 ti[3],ticnt =0;
 0028           ; unsigned    int                 keytime=0;
 0028           ; unsigned    char              kt[3],keybit;
 0028           ; extern        long                    tempcnt;
 0028           ; extern        unsigned char     trdata_x[ ];
 0028           ; extern        unsigned char     inmtemp;
 0028           ; //--------------------------------------------------------------------
 0028           ; #pragma interrupt_handler Key_Init:2
 0028           ; void Key_Init(void)    
 0028           ; {
 0028                   .dbline 18
 0028           ;     unsigned char j,x;
 0028           ;      j=ACSR&0X20; 
 0028 80B7              in R24,0x30
 002A 8072              andi R24,32
 002C A82E              mov R10,R24
 002E                   .dbline 19
 002E 20900000          lds R2,_inmtemp
 0032 2220              tst R2
 0034 31F0              breq L2
 0036                   .dbline 19
 0036                   .dbline 19
 0036 8823              tst R24
 0038 19F4              brne L4
 003A                   .dbline 19
 003A 80E2              ldi R24,32
 003C A82E              mov R10,R24
 003E 01C0              rjmp L5
 0040           L4:
 0040                   .dbline 19
 0040 AA24              clr R10
 0042           L5:
 0042                   .dbline 19
 0042           ;       if( inmtemp!=0)   { if(j==0)   j=0x20;    else      j=0;   }
 0042           L2:
 0042                   .dbline 20
 0042           ;       if  (j==0)           {  Contdata++;}
 0042 AA20              tst R10
 0044 C9F4              brne L6
 0046                   .dbline 20
 0046                   .dbline 20
 0046 41E0              ldi R20,1
 0048 50E0              ldi R21,0
 004A 60E0              ldi R22,0
 004C 70E0              ldi R23,0
 004E 40901800          lds R4,_Contdata+2
 0052 50901900          lds R5,_Contdata+2+1
 0056 20901600          lds R2,_Contdata
 005A 30901700          lds R3,_Contdata+1
 005E 240E              add R2,R20
 0060 351E              adc R3,R21
 0062 461E              adc R4,R22
 0064 571E              adc R5,R23
 0066 30921700          sts _Contdata+1,R3
 006A 20921600          sts _Contdata,R2
 006E 50921900          sts _Contdata+2+1,R5
 0072 40921800          sts _Contdata+2,R4
 0076                   .dbline 20
 0076 18C0              rjmp L7
 0078           L6:
 0078                   .dbline 21
 0078           ;       else                  {   Contdata--;}
 0078                   .dbline 21
 0078 41E0              ldi R20,1
 007A 50E0              ldi R21,0
 007C 60E0              ldi R22,0
 007E 70E0              ldi R23,0
 0080 40901800          lds R4,_Contdata+2
 0084 50901900          lds R5,_Contdata+2+1
 0088 20901600          lds R2,_Contdata
 008C 30901700          lds R3,_Contdata+1
 0090 241A              sub R2,R20
 0092 350A              sbc R3,R21
 0094 460A              sbc R4,R22
 0096 570A              sbc R5,R23
 0098 30921700          sts _Contdata+1,R3
 009C 20921600          sts _Contdata,R2
 00A0 50921900          sts _Contdata+2+1,R5
 00A4 40921800          sts _Contdata+2,R4
 00A8                   .dbline 21
 00A8           L7:
 00A8                   .dbline 22
 00A8           ;     for (x=0; x<3;x++)  
 00A8 AA24              clr R10
 00AA 48C0              rjmp L11
 00AC           L8:
 00AC                   .dbline 23
 00AC           ;       {
 00AC                   .dbline 24
 00AC           ;     if(tempcnt>=timeset[x])   
 00AC 84E0              ldi R24,4
 00AE 8A9D              mul R24,R10
 00B0 F001              movw R30,R0
 00B2 80E0              ldi R24,<_timeset
 00B4 90E0              ldi R25,>_timeset
 00B6 E80F              add R30,R24
 00B8 F91F              adc R31,R25
 00BA 2080              ldd R2,z+0
 00BC 3180              ldd R3,z+1
 00BE 4280              ldd R4,z+2
 00C0 5380              ldd R5,z+3
 00C2 80900200          lds R8,_tempcnt+2
 00C6 90900300          lds R9,_tempcnt+2+1
 00CA 60900000          lds R6,_tempcnt
 00CE 70900100          lds R7,_tempcnt+1
 00D2 6214              cp R6,R2
 00D4 7304              cpc R7,R3
 00D6 8404              cpc R8,R4
 00D8 9504              cpc R9,R5
 00DA 0CF4              brge X0
 00DC 2EC0              rjmp L12
 00DE           X0:
 00DE                   .dbline 25
 00DE           ;              {
 00DE                   .dbline 26
 00DE           ;               if(kt[x]==0) 
 00DE 80E0              ldi R24,<_kt
 00E0 90E0              ldi R25,>_kt
 00E2 EA2D              mov R30,R10
 00E4 FF27              clr R31
 00E6 E80F              add R30,R24
 00E8 F91F              adc R31,R25
 00EA 2080              ldd R2,z+0
 00EC 2220              tst R2
 00EE 29F5              brne L14
 00F0                   .dbline 27
 00F0           ;                       {
 00F0                   .dbline 28
 00F0           ;                       if(trdata_x[x]!=0) {PORTC|=BIT(x+3);}
 00F0 80E0              ldi R24,<_trdata_x
 00F2 90E0              ldi R25,>_trdata_x
 00F4 EA2D              mov R30,R10
 00F6 FF27              clr R31
 00F8 E80F              add R30,R24
 00FA F91F              adc R31,R25
 00FC 2080              ldd R2,z+0
 00FE 2220              tst R2
 0100 39F0              breq L16
 0102                   .dbline 28
 0102                   .dbline 28
 0102 1A2D              mov R17,R10
 0104 1D5F              subi R17,253    ; addi 3
 0106 01E0              ldi R16,1
 0108 00D0              rcall lsl8
 010A 28B0              in R2,0x8
 010C 202A              or R2,R16
 010E 28B8              out 0x8,R2
 0110                   .dbline 28
 0110           L16:
 0110                   .dbline 29
 0110           ;                       ti[x]=ticnt;
 0110 82E0              ldi R24,2
 0112 8A9D              mul R24,R10
 0114 F001              movw R30,R0
 0116 80E0              ldi R24,<_ti
 0118 90E0              ldi R25,>_ti
 011A E80F              add R30,R24
 011C F91F              adc R31,R25
 011E 20900000          lds R2,_ticnt
 0122 30900100          lds R3,_ticnt+1
 0126 3182              std z+1,R3
 0128 2082              std z+0,R2
 012A                   .dbline 30
 012A           ;                       kt[x]=1;
 012A 80E0              ldi R24,<_kt
 012C 90E0              ldi R25,>_kt
 012E EA2D              mov R30,R10
 0130 FF27              clr R31
 0132 E80F              add R30,R24
 0134 F91F              adc R31,R25
 0136 81E0              ldi R24,1
 0138 8083              std z+0,R24
 013A                   .dbline 31
 013A           ;                  }
 013A           L14:
 013A                   .dbline 32
 013A           ;                }
 013A           L12:
 013A                   .dbline 33
 013A           L9:
 013A                   .dbline 22
 013A A394              inc R10
 013C           L11:
 013C                   .dbline 22
 013C 8A2D              mov R24,R10
 013E 8330              cpi R24,3
 0140 08F4              brsh X1
 0142 B4CF              rjmp L8
 0144           X1:
 0144                   .dbline -2
 0144           L1:
 0144 00D0              rcall pop_gset3
 0146 0990              ld R0,y+
 0148 0FBE              out 0x3f,R0
 014A F991              ld R31,y+
 014C E991              ld R30,y+
 014E 9991              ld R25,y+
 0150 8991              ld R24,y+
 0152 2991              ld R18,y+
 0154 1991              ld R17,y+
 0156 0991              ld R16,y+
 0158 9990              ld R9,y+
 015A 8990              ld R8,y+
 015C 7990              ld R7,y+
 015E 6990              ld R6,y+
 0160 5990              ld R5,y+
 0162 4990              ld R4,y+
 0164 3990              ld R3,y+
 0166 2990              ld R2,y+
 0168 1990              ld R1,y+
 016A 0990              ld R0,y+
 016C                   .dbline 0 ; func end
 016C 1895              reti
 016E                   .dbsym r j 10 c
 016E                   .dbsym r x 10 c
 016E                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 B7C0              rjmp _bakcnt
                        .area text(rom, con, rel)
 016E                   .dbfile E:\NumberDisplay\cfile\main.c
 016E                   .dbfunc e bakcnt _bakcnt fV
                        .even
 016E           _bakcnt::
 016E 00D0              rcall push_lset
 0170                   .dbline -1
 0170                   .dbline 38
 0170           ;      }                                                                                                    
 0170           ; }
 0170           ; //--------------------------------------------------------------------
 0170           ; #pragma interrupt_handler bakcnt:3
 0170           ; void    bakcnt(void)   
 0170           ; {   
 0170                   .dbline 39
 0170           ;  CLI( );
 0170 F894              cli
 0172                   .dbline 40
 0172           ;  powersave();
 0172 A2D0              rcall _powersave
 0174                   .dbline -2
 0174           L18:
 0174 00D0              rcall pop_lset
 0176                   .dbline 0 ; func end
 0176 1895              reti
 0178                   .dbend
                        .area vector(rom, abs)
                        .org 26
 001A BCC0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0178                   .dbfile E:\NumberDisplay\cfile\main.c
 0178                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0178           _timer1_ovf_isr::
 0178 2A92              st -y,R2
 017A 3A92              st -y,R3
 017C 8A93              st -y,R24
 017E 9A93              st -y,R25
 0180 EA93              st -y,R30
 0182 2FB6              in R2,0x3f
 0184 2A92              st -y,R2
 0186                   .dbline -1
 0186                   .dbline 45
 0186           ; }
 0186           ; //---------------------------------------------------------------------
 0186           ; #pragma interrupt_handler timer1_ovf_isr:14
 0186           ; void timer1_ovf_isr(void)
 0186           ; {
 0186                   .dbline 46
 0186           ;  TCNT1H = 0xFD; //reload counter high value
 0186 8DEF              ldi R24,253
 0188 80938500          sts 133,R24
 018C                   .dbline 47
 018C           ;  TCNT1L = 0x8F; //reload counter low value
 018C 8FE8              ldi R24,143
 018E 80938400          sts 132,R24
 0192                   .dbline 48
 0192           ;  if(ticnt<60000)                {ticnt++; keytime++;}
 0192 80910000          lds R24,_ticnt
 0196 90910100          lds R25,_ticnt+1
 019A 8036              cpi R24,96
 019C EAEE              ldi R30,234
 019E 9E07              cpc R25,R30
 01A0 78F4              brsh L20

⌨️ 快捷键说明

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