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

📄 led.lis

📁 使用Atmel88芯片实现RS485通讯,Modbus通讯协议.在IVR_AVR环境中编译,文件完整.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00DC 80E0              ldi R24,<PL_light_1
 00DE 90E0              ldi R25,>PL_light_1
 00E0 90930700          sts _pcled+2+1,R25
 00E4 80930600          sts _pcled+2,R24
 00E8                   .dbline 103
 00E8           ;       pcled[2] =  light_2; 
 00E8 80E0              ldi R24,<PL_light_2
 00EA 90E0              ldi R25,>PL_light_2
 00EC 90930900          sts _pcled+4+1,R25
 00F0 80930800          sts _pcled+4,R24
 00F4                   .dbline 104
 00F4           ;       pcled[3] =  light_3; 
 00F4 80E0              ldi R24,<PL_light_3
 00F6 90E0              ldi R25,>PL_light_3
 00F8 90930B00          sts _pcled+6+1,R25
 00FC 80930A00          sts _pcled+6,R24
 0100                   .dbline 105
 0100           ;       pcled[4] =  light_4; 
 0100 80E0              ldi R24,<PL_light_4
 0102 90E0              ldi R25,>PL_light_4
 0104 90930D00          sts _pcled+8+1,R25
 0108 80930C00          sts _pcled+8,R24
 010C                   .dbline 106
 010C           ;       pcled[5] =  light_5; 
 010C 80E0              ldi R24,<PL_light_5
 010E 90E0              ldi R25,>PL_light_5
 0110 90930F00          sts _pcled+10+1,R25
 0114 80930E00          sts _pcled+10,R24
 0118                   .dbline 107
 0118           ;       pcled[6] =  light_6; 
 0118 80E0              ldi R24,<PL_light_6
 011A 90E0              ldi R25,>PL_light_6
 011C 90931100          sts _pcled+12+1,R25
 0120 80931000          sts _pcled+12,R24
 0124                   .dbline 108
 0124           ;       pcled[7] =  light_7; 
 0124 80E0              ldi R24,<PL_light_7
 0126 90E0              ldi R25,>PL_light_7
 0128 90931300          sts _pcled+14+1,R25
 012C 80931200          sts _pcled+14,R24
 0130                   .dbline 109
 0130           ;       pcled[8] =  light_8; 
 0130 80E0              ldi R24,<PL_light_8
 0132 90E0              ldi R25,>PL_light_8
 0134 90931500          sts _pcled+16+1,R25
 0138 80931400          sts _pcled+16,R24
 013C                   .dbline 110
 013C           ;       pcled[9] =  light_9; 
 013C 80E0              ldi R24,<PL_light_9
 013E 90E0              ldi R25,>PL_light_9
 0140 90931700          sts _pcled+18+1,R25
 0144 80931600          sts _pcled+18,R24
 0148                   .dbline -2
 0148           L15:
 0148                   .dbline 0 ; func end
 0148 0895              ret
 014A                   .dbend
 014A                   .dbfunc e CalculateSub _CalculateSub fV
 014A           ;       p_aloneD -> R20,R21
 014A           ;          Digit -> R22,R23
                        .even
 014A           _CalculateSub::
 014A 00D0              rcall push_gset2
 014C A901              movw R20,R18
 014E B801              movw R22,R16
 0150                   .dbline -1
 0150                   .dbline 115
 0150           ; }
 0150           ; 
 0150           ; //位计算.
 0150           ; void CalculateSub(unsigned int Digit,char *p_aloneD)
 0150           ; {
 0150                   .dbline 116
 0150           ;       *p_aloneD = (char)(Digit/1000);
 0150 28EE              ldi R18,1000
 0152 33E0              ldi R19,3
 0154 8B01              movw R16,R22
 0156 00D0              rcall div16u
 0158 FA01              movw R30,R20
 015A 0083              std z+0,R16
 015C                   .dbline 117
 015C           ;       Digit -= *p_aloneD++ * 1000;
 015C 2191              ld R18,Z+
 015E AF01              movw R20,R30
 0160 3327              clr R19
 0162 08EE              ldi R16,1000
 0164 13E0              ldi R17,3
 0166 00D0              rcall empy16s
 0168 601B              sub R22,R16
 016A 710B              sbc R23,R17
 016C                   .dbline 119
 016C           ;       
 016C           ;       *p_aloneD = (char)(Digit/100);
 016C 24E6              ldi R18,100
 016E 30E0              ldi R19,0
 0170 8B01              movw R16,R22
 0172 00D0              rcall div16u
 0174 FA01              movw R30,R20
 0176 0083              std z+0,R16
 0178                   .dbline 120
 0178           ;       Digit -= *p_aloneD++ * 100;
 0178 1191              ld R17,Z+
 017A AF01              movw R20,R30
 017C 04E6              ldi R16,100
 017E 0102              muls R16,R17
 0180 6019              sub R22,R0
 0182 7109              sbc R23,R1
 0184                   .dbline 122
 0184           ;       
 0184           ;       *p_aloneD = (char)(Digit/10);
 0184 2AE0              ldi R18,10
 0186 30E0              ldi R19,0
 0188 8B01              movw R16,R22
 018A 00D0              rcall div16u
 018C FA01              movw R30,R20
 018E 0083              std z+0,R16
 0190                   .dbline 123
 0190           ;       Digit -= *p_aloneD++ * 10;
 0190 1191              ld R17,Z+
 0192 0AE0              ldi R16,10
 0194 0102              muls R16,R17
 0196 6019              sub R22,R0
 0198 7109              sbc R23,R1
 019A                   .dbline 125
 019A           ; 
 019A           ;       *p_aloneD = (char)Digit;
 019A 6083              std z+0,R22
 019C                   .dbline 126
 019C           ;       p_aloneD = 0;   
 019C 4427              clr R20
 019E 5527              clr R21
 01A0                   .dbline -2
 01A0           L25:
 01A0 00D0              rcall pop_gset2
 01A2                   .dbline 0 ; func end
 01A2 0895              ret
 01A4                   .dbsym r p_aloneD 20 pc
 01A4                   .dbsym r Digit 22 i
 01A4                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\ICCTES~1\1128\led.c
 0000           L27:
 0000                   .blkb 2
                        .area text(rom, con, rel)
 01A4                   .dbfile D:\ICCTES~1\1128\led.c
 01A4                   .dbfunc e sub2 _sub2 fV
 01A4                   .dbsym s ShowDigit L27 I
                        .even
 01A4           _sub2::
 01A4                   .dbline -1
 01A4                   .dbline 130
 01A4           ; }
 01A4           ; 
 01A4           ; void sub2(void)
 01A4           ; {
 01A4                   .dbline 132
 01A4           ;       static int ShowDigit;
 01A4           ;       NOP();
 01A4 0000              nop
 01A6                   .dbline 133
 01A6           ;       ShowDigit =      LedShowLink;//  0x4d2;// 
 01A6 20900200          lds R2,_LedShowLink
 01AA 30900300          lds R3,_LedShowLink+1
 01AE 30920100          sts L27+1,R3
 01B2 20920000          sts L27,R2
 01B6                   .dbline 134
 01B6           ;       CalculateSub(ShowDigit, &aloneD[0]);
 01B6 20E0              ldi R18,<_aloneD
 01B8 30E0              ldi R19,>_aloneD
 01BA 00910000          lds R16,L27
 01BE 10910100          lds R17,L27+1
 01C2 C3DF              rcall _CalculateSub
 01C4                   .dbline 135
 01C4           ;       NOP();
 01C4 0000              nop
 01C6                   .dbline -2
 01C6           L26:
 01C6                   .dbline 0 ; func end
 01C6 0895              ret
 01C8                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\ICCTES~1\1128\led.c
 0000           L29:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile D:\ICCTES~1\1128\led.c
                        .area text(rom, con, rel)
 01C8                   .dbfile D:\ICCTES~1\1128\led.c
 01C8                   .dbfunc e subled _subled fV
 01C8                   .dbsym s ledbitcou L29 c
 01C8           ;        bytebit -> R22
 01C8           ;          byteT -> R20
                        .even
 01C8           _subled::
 01C8 00D0              rcall push_gset2
 01CA                   .dbline -1
 01CA                   .dbline 139
 01CA           ; }
 01CA           ; 
 01CA           ; void subled(void)
 01CA           ; {
 01CA                   .dbline 142
 01CA           ;       static char ledbitcou=0b00000000;
 01CA           ; //    static char coui ; //用作数组aloneD[]下标.
 01CA           ;       char bytebit=0,byteT=0;
 01CA 6627              clr R22
 01CC                   .dbline 142
 01CC 4427              clr R20
 01CE                   .dbline 146
 01CE           ;       
 01CE           ; //为每位扫描. 1,置一,四位都不亮;  2,清零,点亮一个位.
 01CE           ; 
 01CE           ;       if(ledbitcou == 0)
 01CE 20900000          lds R2,L29
 01D2 2220              tst R2
 01D4 11F4              brne L30
 01D6                   .dbline 147
 01D6           ;       {
 01D6                   .dbline 148
 01D6           ;                bytebit = 0b11111011;
 01D6 6BEF              ldi R22,251
 01D8                   .dbline 149
 01D8 11C0              rjmp L31
 01DA           L30:
 01DA                   .dbline 149
 01DA           ;       }else if(ledbitcou == 1)
 01DA 80910000          lds R24,L29
 01DE 8130              cpi R24,1
 01E0 11F4              brne L32
 01E2                   .dbline 150
 01E2           ;       {
 01E2                   .dbline 151
 01E2           ;                bytebit = 0b11110111;
 01E2 67EF              ldi R22,247
 01E4                   .dbline 152
 01E4 0BC0              rjmp L33
 01E6           L32:
 01E6                   .dbline 152
 01E6           ;       }else if(ledbitcou == 2)
 01E6 80910000          lds R24,L29
 01EA 8230              cpi R24,2
 01EC 11F4              brne L34
 01EE                   .dbline 153
 01EE           ;       {
 01EE                   .dbline 154
 01EE           ;                bytebit = 0b11101111;
 01EE 6FEE              ldi R22,239
 01F0                   .dbline 155
 01F0 05C0              rjmp L35
 01F2           L34:
 01F2                   .dbline 155
 01F2           ;       }else if(ledbitcou == 3)
 01F2 80910000          lds R24,L29
 01F6 8330              cpi R24,3
 01F8 09F4              brne L36
 01FA                   .dbline 156
 01FA           ;       {         
 01FA                   .dbline 157
 01FA           ;                bytebit = 0b11011111;
 01FA 6FED              ldi R22,223
 01FC                   .dbline 158
 01FC           ;       }
 01FC           L36:
 01FC           L35:
 01FC           L33:
 01FC           L31:
 01FC                   .dbline 163
 01FC 8BB1              in R24,0xb
 01FE 806C              ori R24,192
 0200 8BB9              out 0xb,R24
 0202                   .dbline 164
 0202 85B1              in R24,0x5
 0204 8C6F              ori R24,252
 0206 85B9              out 0x5,R24
 0208                   .dbline 166
 0208 88B1              in R24,0x8
 020A 8C63              ori R24,60
 020C 88B9              out 0x8,R24
 020E                   .dbline 167
 020E 28B0              in R2,0x8
 0210 2622              and R2,R22
 0212 28B8              out 0x8,R2
 0214                   .dbline 169
 0214 80E0              ldi R24,<_aloneD
 0216 90E0              ldi R25,>_aloneD
 0218 E0910000          lds R30,L29
 021C FF27              clr R31
 021E E80F              add R30,R24
 0220 F91F              adc R31,R25
 0222 4081              ldd R20,z+0
 0224                   .dbline 170
 0224 82E0              ldi R24,2
 0226 849F              mul R24,R20
 0228 F001              movw R30,R0
 022A 80E0              ldi R24,<_pcled
 022C 90E0              ldi R25,>_pcled
 022E E80F              add R30,R24
 0230 F91F              adc R31,R25
 0232 A081              ldd R26,z+0
 0234 B181              ldd R27,z+1
 0236 FD01              movw R30,R26
 0238 00D0              rcall xicall
 023A                   .dbline 171
 023A 80910000          lds R24,L29
 023E 8F5F              subi R24,255    ; addi 1
 0240 282E              mov R2,R24
 0242 20920000          sts L29,R2
 0246 8430              cpi R24,4
 0248 19F4              brne L38
 024A                   .dbline 172
 024A 2224              clr R2
 024C 20920000          sts L29,R2
 0250           L38:
 0250                   .dbline -2
 0250           L28:
 0250 00D0              rcall pop_gset2
 0252                   .dbline 0 ; func end
 0252 0895              ret
 0254                   .dbsym r bytebit 22 c
 0254                   .dbsym r byteT 20 c
 0254                   .dbend
                        .area bss(ram, con, rel)
 0002                   .dbfile D:\ICCTES~1\1128\led.c
 0002           _LedShowLink::
 0002                   .blkb 2
 0004                   .dbsym e LedShowLink _LedShowLink i
 0004           _pcled::
 0004                   .blkb 20
 0018                   .dbsym e pcled _pcled A[20:10]pfV
 0018           _aloneD:
 0018                   .blkb 4
 001C                   .dbsym s aloneD _aloneD A[4:4]c
                        .area func_lit
 0000 4C00      PL_light_9:     .word `_light_9
 0002 4500      PL_light_8:     .word `_light_8
 0004 3D00      PL_light_7:     .word `_light_7
 0006 3500      PL_light_6:     .word `_light_6
 0008 2B00      PL_light_5:     .word `_light_5
 000A 2100      PL_light_4:     .word `_light_4
 000C 1700      PL_light_3:     .word `_light_3
 000E 0D00      PL_light_2:     .word `_light_2
 0010 0500      PL_light_1:     .word `_light_1
 0012 0000      PL_light_0:     .word `_light_0

⌨️ 快捷键说明

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