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

📄 init.lis

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 020A           ;       if ((LO_COUNT_SAVE>MAXDURATION)||(LO_COUNT_SAVE==0))//如果低电平大于限定值
 020A E0E0              ldi R30,<_MAXDURATION
 020C F0E0              ldi R31,>_MAXDURATION
 020E E491              lpm R30,Z
 0210 20900000          lds R2,_LO_COUNT_SAVE
 0214 E215              cp R30,R2
 0216 10F0              brlo L40
 0218 2220              tst R2
 021A 69F4              brne L38
 021C           L40:
 021C                   .dbline 189
 021C           ;         {//3-1
 021C                   .dbline 190
 021C           ;          BITCOUNTER=CODELANGTH;//代码是错误的
 021C E0E0              ldi R30,<_CODELANGTH
 021E F0E0              ldi R31,>_CODELANGTH
 0220 E491              lpm R30,Z
 0222 E0930000          sts _BITCOUNTER,R30
 0226                   .dbline 191
 0226           ;          data[0]=0; 
 0226 2224              clr R2
 0228 20920000          sts _data,R2
 022C                   .dbline 192
 022C           ;          data[1]=0;
 022C 20920100          sts _data+1,R2
 0230                   .dbline 193
 0230           ;          data[2]=0;
 0230 20920200          sts _data+2,R2
 0234                   .dbline 194
 0234           ;         return;//跳出中断
 0234 B8C0              rjmp L20
 0236           L38:
 0236                   .dbline 196
 0236           ;         }//3-1
 0236           ;    }//3
 0236                   .dbline 197
 0236           ;    if (HI_COUNT_SAVE<LO_COUNT_SAVE)//为1的数据存贮
 0236 20900000          lds R2,_LO_COUNT_SAVE
 023A 30900000          lds R3,_HI_COUNT_SAVE
 023E 3214              cp R3,R2
 0240 08F0              brlo X6
 0242 51C0              rjmp L43
 0244           X6:
 0244                   .dbline 198
 0244           ;        {//5  
 0244                   .dbline 199
 0244           ;        i=data[2]&0x80;          //保存第七位
 0244 60910200          lds R22,_data+2
 0248 6078              andi R22,128
 024A                   .dbline 200
 024A           ;        data[2]<<=1;
 024A 20900200          lds R2,_data+2
 024E 220C              lsl R2
 0250 20920200          sts _data+2,R2
 0254                   .dbline 201
 0254           ;        data[2]+=1;
 0254 822D              mov R24,R2
 0256 8F5F              subi R24,255    ; addi 1
 0258 80930200          sts _data+2,R24
 025C                   .dbline 202
 025C           ;        j=data[1]&0x80;          //保存第七位
 025C 40910100          lds R20,_data+1
 0260 4078              andi R20,128
 0262                   .dbline 203
 0262           ;        if(i){data[1]<<=1;data[1]+=1;}
 0262 6623              tst R22
 0264 51F0              breq L49
 0266                   .dbline 203
 0266                   .dbline 203
 0266 20900100          lds R2,_data+1
 026A 220C              lsl R2
 026C 20920100          sts _data+1,R2
 0270                   .dbline 203
 0270 822D              mov R24,R2
 0272 8F5F              subi R24,255    ; addi 1
 0274 80930100          sts _data+1,R24
 0278                   .dbline 203
 0278 05C0              rjmp L50
 027A           L49:
 027A                   .dbline 204
 027A           ;        else data[1]<<=1;
 027A 20900100          lds R2,_data+1
 027E 220C              lsl R2
 0280 20920100          sts _data+1,R2
 0284           L50:
 0284                   .dbline 205
 0284           ;        if(j){data[0]<<=1;data[0]+=1;}
 0284 4423              tst R20
 0286 51F0              breq L54
 0288                   .dbline 205
 0288                   .dbline 205
 0288 20900000          lds R2,_data
 028C 220C              lsl R2
 028E 20920000          sts _data,R2
 0292                   .dbline 205
 0292 822D              mov R24,R2
 0294 8F5F              subi R24,255    ; addi 1
 0296 80930000          sts _data,R24
 029A                   .dbline 205
 029A 05C0              rjmp L55
 029C           L54:
 029C                   .dbline 206
 029C           ;        else data[0]<<=1;
 029C 20900000          lds R2,_data
 02A0 220C              lsl R2
 02A2 20920000          sts _data,R2
 02A6           L55:
 02A6                   .dbline 207
 02A6           ;          BITCOUNTER--;
 02A6 80910000          lds R24,_BITCOUNTER
 02AA 8150              subi R24,1
 02AC 80930000          sts _BITCOUNTER,R24
 02B0                   .dbline 208
 02B0           ;          if (BITCOUNTER==0)//解码完成
 02B0 8823              tst R24
 02B2 09F0              breq X7
 02B4 78C0              rjmp L20
 02B6           X7:
 02B6                   .dbline 209
 02B6           ;                 {//5-3
 02B6                   .dbline 210
 02B6           ;                 if(CRC3(data,3)==0)
 02B6 23E0              ldi R18,3
 02B8 00E0              ldi R16,<_data
 02BA 10E0              ldi R17,>_data
 02BC 16DF              rcall _CRC3
 02BE 0023              tst R16
 02C0 09F0              breq X8
 02C2 5CC0              rjmp L61
 02C4           X8:
 02C4                   .dbline 211
 02C4           ;                    {//n
 02C4                   .dbline 212
 02C4           ;                        DECODER_FLAG_H;
 02C4 80910000          lds R24,_flag
 02C8 8460              ori R24,4
 02CA 80930000          sts _flag,R24
 02CE                   .dbline 213
 02CE           ;                    DECODER_EN_L;
 02CE 8D7F              andi R24,253
 02D0 80930000          sts _flag,R24
 02D4                   .dbline 214
 02D4           ;                               eaddr0=data[0];
 02D4 20900000          lds R2,_data
 02D8 20920000          sts _eaddr0,R2
 02DC                   .dbline 215
 02DC           ;                               eaddr1=data[1];
 02DC 20900100          lds R2,_data+1
 02E0 20920000          sts _eaddr1,R2
 02E4                   .dbline 216
 02E4           ;                        return;
 02E4 60C0              rjmp L20
 02E6           X1:
 02E6                   .dbline 219
 02E6           ;                        }//n
 02E6           ;                 else //解码错误
 02E6           ;                   {
 02E6                   .dbline 220
 02E6           ;                       goto give_up;
 02E6                   .dbline 223
 02E6           ;                       }
 02E6           ;                 }//5-3
 02E6           ;                 return;
 02E6           L43:
 02E6                   .dbline 226
 02E6           ;        }//5
 02E6           ;       else //为0的数据存贮
 02E6           ;       {//6
 02E6                   .dbline 227
 02E6           ;        i=data[2]&0x80;          //保存第七位
 02E6 60910200          lds R22,_data+2
 02EA 6078              andi R22,128
 02EC                   .dbline 228
 02EC           ;        data[2]<<=1;
 02EC 20900200          lds R2,_data+2
 02F0 220C              lsl R2
 02F2 20920200          sts _data+2,R2
 02F6                   .dbline 229
 02F6           ;        j=data[1]&0x80;          //保存第七位
 02F6 40910100          lds R20,_data+1
 02FA 4078              andi R20,128
 02FC                   .dbline 230
 02FC           ;        if(i){data[1]<<=1;data[1]+=1;}
 02FC 6623              tst R22
 02FE 51F0              breq L65
 0300                   .dbline 230
 0300                   .dbline 230
 0300 20900100          lds R2,_data+1
 0304 220C              lsl R2
 0306 20920100          sts _data+1,R2
 030A                   .dbline 230
 030A 822D              mov R24,R2
 030C 8F5F              subi R24,255    ; addi 1
 030E 80930100          sts _data+1,R24
 0312                   .dbline 230
 0312 05C0              rjmp L66
 0314           L65:
 0314                   .dbline 231
 0314           ;        else data[1]<<=1;
 0314 20900100          lds R2,_data+1
 0318 220C              lsl R2
 031A 20920100          sts _data+1,R2
 031E           L66:
 031E                   .dbline 232
 031E           ;        if(j){data[0]<<=1;data[0]+=1;}
 031E 4423              tst R20
 0320 51F0              breq L70
 0322                   .dbline 232
 0322                   .dbline 232
 0322 20900000          lds R2,_data
 0326 220C              lsl R2
 0328 20920000          sts _data,R2
 032C                   .dbline 232
 032C 822D              mov R24,R2
 032E 8F5F              subi R24,255    ; addi 1
 0330 80930000          sts _data,R24
 0334                   .dbline 232
 0334 05C0              rjmp L71
 0336           L70:
 0336                   .dbline 233
 0336           ;        else data[0]<<=1;
 0336 20900000          lds R2,_data
 033A 220C              lsl R2
 033C 20920000          sts _data,R2
 0340           L71:
 0340                   .dbline 234
 0340           ;          BITCOUNTER--;
 0340 80910000          lds R24,_BITCOUNTER
 0344 8150              subi R24,1
 0346 80930000          sts _BITCOUNTER,R24
 034A                   .dbline 235
 034A           ;          if (BITCOUNTER==0)//解码完成
 034A 8823              tst R24
 034C 61F5              brne L20
 034E                   .dbline 236
 034E           ;                 {//6-3
 034E                   .dbline 237
 034E           ;                 if(CRC3(data,3)==0)
 034E 23E0              ldi R18,3
 0350 00E0              ldi R16,<_data
 0352 10E0              ldi R17,>_data
 0354 CADE              rcall _CRC3
 0356 0023              tst R16
 0358 89F4              brne L61
 035A                   .dbline 238
 035A           ;                       {//n
 035A                   .dbline 239
 035A           ;                               DECODER_FLAG_H;
 035A 80910000          lds R24,_flag
 035E 8460              ori R24,4
 0360 80930000          sts _flag,R24
 0364                   .dbline 240
 0364           ;                       DECODER_EN_L;
 0364 8D7F              andi R24,253
 0366 80930000          sts _flag,R24
 036A                   .dbline 241
 036A           ;                               eaddr0=data[0];
 036A 20900000          lds R2,_data
 036E 20920000          sts _eaddr0,R2
 0372                   .dbline 242
 0372           ;                               eaddr1=data[1];
 0372 20900100          lds R2,_data+1
 0376 20920000          sts _eaddr1,R2
 037A                   .dbline 243
 037A           ;                               return;
 037A 15C0              rjmp L20
 037C           X2:
 037C                   .dbline 246
 037C           ;                               }//n 
 037C           ;                       else //解码错误
 037C           ;                   {
 037C                   .dbline 247
 037C           ;                       goto give_up;
 037C                   .dbline 250
 037C           ;                       }
 037C           ;                   }//6-3
 037C           ;                 return;
 037C           L61:
 037C                   .dbline 253
 037C 2224              clr R2
 037E 20920000          sts _data,R2
 0382                   .dbline 254
 0382 20920100          sts _data+1,R2
 0386                   .dbline 255
 0386 20920200          sts _data+2,R2
 038A                   .dbline 256
 038A E0E0              ldi R30,<_CODELANGTH
 038C F0E0              ldi R31,>_CODELANGTH
 038E E491              lpm R30,Z
 0390 E0930000          sts _BITCOUNTER,R30
 0394                   .dbline 257
 0394 80910000          lds R24,_flag
 0398 8B7F              andi R24,251
 039A 80930000          sts _flag,R24
 039E                   .dbline 258
 039E 20920000          sts _LO_COUNT_SAVE,R2
 03A2                   .dbline 259
 03A2 20920000          sts _HI_COUNT_SAVE,R2
 03A6                   .dbline 260
 03A6           L21:
 03A6                   .dbline -2
 03A6           L20:
 03A6 00D0              rcall pop_gset2
 03A8 00D0              rcall pop_lset
 03AA                   .dbline 0 ; func end
 03AA 1895              reti

⌨️ 快捷键说明

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