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

📄 cw1.lis

📁 实现无线控制功能
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0168                   .dbline 114
 0168           ;  MCUCR = 0x00;
 0168 2224              clr R2
 016A 25BE              out 0x35,R2
 016C                   .dbline 115
 016C           ;  GICR  = 0x00;
 016C 2BBE              out 0x3b,R2
 016E                   .dbline 116
 016E           ;  TIMSK = 0x40; //timer interrupt sources
 016E 80E4              ldi R24,64
 0170 89BF              out 0x39,R24
 0172                   .dbline 117
 0172           ;  SEI(); //re-enable interrupts
 0172 7894              sei
 0174                   .dbline -2
 0174           L31:
 0174                   .dbline 0 ; func end
 0174 0895              ret
 0176                   .dbend
 0176                   .dbfunc e decode _decode fc
 0176           ;              j -> R10
 0176           ;              i -> R12
 0176           ;           data -> y+0
 0176           ;           flag -> R10
 0176           ;        pin_var -> R14
                        .even
 0176           _decode::
 0176 0E940000          xcall push_gset5
 017A 2497              sbiw R28,4
 017C                   .dbline -1
 017C                   .dbline 121
 017C           ;  //all peripherals are now initialized
 017C           ; }
 017C           ; uchar decode(void)
 017C           ;      {
 017C                   .dbline 123
 017C           ;          uchar pin_var,i;
 017C           ;          uchar flag=0;
 017C AA24              clr R10
 017E                   .dbline 125
 017E           ;          signed char j;
 017E           ;          ulong data=0;
 017E 40E0              ldi R20,0
 0180 50E0              ldi R21,0
 0182 60E0              ldi R22,0
 0184 70E0              ldi R23,0
 0186 FE01              movw R30,R28
 0188 4083              std z+0,R20
 018A 5183              std z+1,R21
 018C 6283              std z+2,R22
 018E 7383              std z+3,R23
 0190                   .dbline 126
 0190           ;          count1=0;
 0190 40E0              ldi R20,0
 0192 50E0              ldi R21,0
 0194 60E0              ldi R22,0
 0196 70E0              ldi R23,0
 0198 50930700          sts _count1+1,R21
 019C 40930600          sts _count1,R20
 01A0 70930900          sts _count1+2+1,R23
 01A4 60930800          sts _count1+2,R22
 01A8                   .dbline 127
 01A8           ;          DDRA&=~(1<<wuxian_js);PORTA|=(1<<wuxian_js);
 01A8 D398              cbi 0x1a,3
 01AA                   .dbline 127
 01AA DB9A              sbi 0x1b,3
 01AC 7AC0              xjmp L34
 01AE           L33:
 01AE                   .dbline 129
 01AE           ;          while(1)
 01AE           ;              {
 01AE                   .dbline 130
 01AE           ;                   if(count1>250){return(0xff);}
 01AE 4AEF              ldi R20,250
 01B0 50E0              ldi R21,0
 01B2 60E0              ldi R22,0
 01B4 70E0              ldi R23,0
 01B6 40900800          lds R4,_count1+2
 01BA 50900900          lds R5,_count1+2+1
 01BE 20900600          lds R2,_count1
 01C2 30900700          lds R3,_count1+1
 01C6 4215              cp R20,R2
 01C8 5305              cpc R21,R3
 01CA 6405              cpc R22,R4
 01CC 7505              cpc R23,R5
 01CE 10F4              brsh L36
 01D0                   .dbline 130
 01D0                   .dbline 130
 01D0 0FEF              ldi R16,255
 01D2 2CC1              xjmp L32
 01D4           L36:
 01D4                   .dbline 131
 01D4           ;                   pin_var=PINA&(1<<wuxian_js);
 01D4 89B3              in R24,0x19
 01D6 8870              andi R24,8
 01D8 E82E              mov R14,R24
 01DA                   .dbline 132
 01DA           ;                       if(flag==1){break;}
 01DA 8A2D              mov R24,R10
 01DC 8130              cpi R24,1
 01DE 09F0              breq X1
 01E0 59C0              xjmp L41
 01E2           X1:
 01E2                   .dbline 132
 01E2                   .dbline 132
 01E2 60C0              xjmp L35
 01E4           L40:
 01E4                   .dbline 134
 01E4           ;                       while(pin_var==0)
 01E4           ;                            {
 01E4                   .dbline 135
 01E4           ;                                  count=0;
 01E4 40E0              ldi R20,0
 01E6 50E0              ldi R21,0
 01E8 60E0              ldi R22,0
 01EA 70E0              ldi R23,0
 01EC 50930B00          sts _count+1,R21
 01F0 40930A00          sts _count,R20
 01F4 70930D00          sts _count+2+1,R23
 01F8 60930C00          sts _count+2,R22
 01FC                   .dbline 136
 01FC           ;                                  if(count1>250){return(0xff);}
 01FC 4AEF              ldi R20,250
 01FE 50E0              ldi R21,0
 0200 60E0              ldi R22,0
 0202 70E0              ldi R23,0
 0204 40900800          lds R4,_count1+2
 0208 50900900          lds R5,_count1+2+1
 020C 20900600          lds R2,_count1
 0210 30900700          lds R3,_count1+1
 0214 4215              cp R20,R2
 0216 5305              cpc R21,R3
 0218 6405              cpc R22,R4
 021A 7505              cpc R23,R5
 021C C8F5              brsh L46
 021E                   .dbline 136
 021E                   .dbline 136
 021E 0FEF              ldi R16,255
 0220 05C1              xjmp L32
 0222           L45:
 0222                   .dbline 138
 0222           ;                                  while(1)
 0222           ;                                  {
 0222                   .dbline 139
 0222           ;                                    pin_var=PINA&(1<<wuxian_js);if(count1>250){return(0xff);}
 0222 89B3              in R24,0x19
 0224 8870              andi R24,8
 0226 E82E              mov R14,R24
 0228                   .dbline 139
 0228 4AEF              ldi R20,250
 022A 50E0              ldi R21,0
 022C 60E0              ldi R22,0
 022E 70E0              ldi R23,0
 0230 40900800          lds R4,_count1+2
 0234 50900900          lds R5,_count1+2+1
 0238 20900600          lds R2,_count1
 023C 30900700          lds R3,_count1+1
 0240 4215              cp R20,R2
 0242 5305              cpc R21,R3
 0244 6405              cpc R22,R4
 0246 7505              cpc R23,R5
 0248 10F4              brsh L48
 024A                   .dbline 139
 024A                   .dbline 139
 024A 0FEF              ldi R16,255
 024C EFC0              xjmp L32
 024E           L48:
 024E                   .dbline 140
 024E           ;                                        if(pin_var!=0)
 024E EE20              tst R14
 0250 F9F0              breq L50
 0252                   .dbline 141
 0252           ;                                        {
 0252                   .dbline 142
 0252           ;                                       if((count>130)&&(count<155))  {flag=1;break;}
 0252 42E8              ldi R20,130
 0254 50E0              ldi R21,0
 0256 60E0              ldi R22,0
 0258 70E0              ldi R23,0
 025A 40900C00          lds R4,_count+2
 025E 50900D00          lds R5,_count+2+1
 0262 20900A00          lds R2,_count
 0266 30900B00          lds R3,_count+1
 026A 4215              cp R20,R2
 026C 5305              cpc R21,R3
 026E 6405              cpc R22,R4
 0270 7505              cpc R23,R5
 0272 60F4              brsh L52
 0274 4BE9              ldi R20,155
 0276 50E0              ldi R21,0
 0278 60E0              ldi R22,0
 027A 70E0              ldi R23,0
 027C 2416              cp R2,R20
 027E 3506              cpc R3,R21
 0280 4606              cpc R4,R22
 0282 5706              cpc R5,R23
 0284 18F4              brsh L52
 0286                   .dbline 142
 0286                   .dbline 142
 0286 AA24              clr R10
 0288 A394              inc R10
 028A                   .dbline 142
 028A 07C0              xjmp L42
 028C           L52:
 028C                   .dbline 143
 028C           ;                                           else  {flag=0;break;}
 028C                   .dbline 143
 028C AA24              clr R10
 028E                   .dbline 143
 028E 05C0              xjmp L42
 0290           L50:
 0290                   .dbline 145
 0290           L46:
 0290                   .dbline 137
 0290 C8CF              xjmp L45
 0292           X0:
 0292                   .dbline 146
 0292 03C0              xjmp L42
 0294           L41:
 0294                   .dbline 133
 0294 EE20              tst R14
 0296 09F4              brne X2
 0298 A5CF              xjmp L40
 029A           X2:
 029A           L42:
 029A                   .dbline 148
 029A           ;                                        }      
 029A           ;                                  }    
 029A           ;                                  break;
 029A           ;                                }
 029A           ;                                if(flag==1) break;
 029A 8A2D              mov R24,R10
 029C 8130              cpi R24,1
 029E 09F4              brne L54
 02A0                   .dbline 148
 02A0 01C0              xjmp L35
 02A2           L54:
 02A2                   .dbline 149
 02A2           L34:
 02A2                   .dbline 128
 02A2 85CF              xjmp L33
 02A4           L35:
 02A4                   .dbline 151
 02A4           ;                       } 
 02A4           ;                             
 02A4           ;                                  for(i=0;i<24;i++)
 02A4 CC24              clr R12
 02A6 95C0              xjmp L59
 02A8           L56:
 02A8                   .dbline 152
 02A8           ;                                      {
 02A8                   .dbline 154
 02A8           ;                                             
 02A8           ;                                             count=0;
 02A8 40E0              ldi R20,0
 02AA 50E0              ldi R21,0
 02AC 60E0              ldi R22,0
 02AE 70E0              ldi R23,0
 02B0 50930B00          sts _count+1,R21
 02B4 40930A00          sts _count,R20
 02B8 70930D00          sts _count+2+1,R23
 02BC 60930C00          sts _count+2,R22
 02C0                   .dbline 155
 02C0           ;                                                 data<<=1;                       //数据左移
 02C0 FE01              movw R30,R28
 02C2 2080              ldd R2,z+0
 02C4 3180              ldd R3,z+1
 02C6 4280              ldd R4,z+2
 02C8 5380              ldd R5,z+3
 02CA 220C              lsl R2
 02CC 331C              rol R3
 02CE 441C              rol R4
 02D0 551C              rol R5
 02D2 FE01              movw R30,R28
 02D4 2082              std z+0,R2
 02D6 3182              std z+1,R3
 02D8 4282              std z+2,R4
 02DA 5382              std z+3,R5
 02DC 19C0              xjmp L61
 02DE           L60:
 02DE                   .dbline 157
 02DE           ;                                             while (1)           //高位计数 
 02DE           ;                             {   
 02DE                   .dbline 158
 02DE           ;                                                          pin_var=PINA&(1<<wuxian_js);
 02DE 89B3              in R24,0x19
 02E0 8870              andi R24,8
 02E2 E82E              mov R14,R24
 02E4                   .dbline 159
 02E4           ;                                                          if(pin_var==0) {break;}
 02E4 8823              tst R24
 02E6 09F4              brne L63
 02E8                   .dbline 159
 02E8                   .dbline 159
 02E8 14C0              xjmp L62
 02EA           L63:
 02EA                   .dbline 160
 02EA           ;                                                          if(count>200)  return 0xff; 
 02EA 48EC              ldi R20,200
 02EC 50E0              ldi R21,0
 02EE 60E0              ldi R22,0
 02F0 70E0              ldi R23,0
 02F2 40900C00          lds R4,_count+2
 02F6 50900D00          lds R5,_count+2+1
 02FA 20900A00          lds R2,_count
 02FE 30900B00          lds R3,_count+1
 0302 4215              cp R20,R2
 0304 5305              cpc R21,R3
 0306 6405              cpc R22,R4
 0308 7505              cpc R23,R5
 030A 10F4              brsh L65
 030C                   .dbline 160
 030C 0FEF              ldi R16,255
 030E 8EC0              xjmp L32
 0310           L65:
 0310                   .dbline 161
 0310           L61:
 0310                   .dbline 156
 0310 E6CF              xjmp L60
 0312           L62:
 0312                   .dbline 162
 0312           ;                                                        }
 0312           ;                                                        if(count>1&&count<8)  data+=0;
 0312 41E0              ldi R20,1
 0314 50E0              ldi R21,0
 0316 60E0              ldi R22,0
 0318 70E0              ldi R23,0

⌨️ 快捷键说明

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