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

📄 yaokong.lst

📁 实现无线控制功能
💻 LST
📖 第 1 页 / 共 3 页
字号:
    0173 902000A9  LDS	R2,count1
    0175 903000AA  LDS	R3,count1+1
    0177 1542      CP	R20,R2
    0178 0553      CPC	R21,R3
    0179 0564      CPC	R22,R4
    017A 0575      CPC	R23,R5
    017B F5C8      BCC	0x01B5
    017C EF0F      LDI	R16,0xFF
    017D C105      RJMP	0x0283
(0137) 				   while(1)
(0138) 				   {
(0139) 				     pin_var=PINA&(1<<wuxian_js);if(count1>250){return(0xff);}
    017E B389      IN	R24,0x19
    017F 7088      ANDI	R24,0x8
    0180 2EE8      MOV	R14,R24
    0181 EF4A      LDI	R20,0xFA
    0182 E050      LDI	R21,0
    0183 E060      LDI	R22,0
    0184 E070      LDI	R23,0
    0185 904000AB  LDS	R4,count1+2
    0187 905000AC  LDS	R5,count1+3
    0189 902000A9  LDS	R2,count1
    018B 903000AA  LDS	R3,count1+1
    018D 1542      CP	R20,R2
    018E 0553      CPC	R21,R3
    018F 0564      CPC	R22,R4
    0190 0575      CPC	R23,R5
    0191 F410      BCC	0x0194
    0192 EF0F      LDI	R16,0xFF
    0193 C0EF      RJMP	0x0283
(0140) 					 if(pin_var!=0)
    0194 20EE      TST	R14
    0195 F0F9      BEQ	0x01B5
(0141) 					 {
(0142) 				        if((count>130)&&(count<155))  {flag=1;break;}
    0196 E842      LDI	R20,0x82
    0197 E050      LDI	R21,0
    0198 E060      LDI	R22,0
    0199 E070      LDI	R23,0
    019A 904000AF  LDS	R4,count+2
    019C 905000B0  LDS	R5,count+3
    019E 902000AD  LDS	R2,count
    01A0 903000AE  LDS	R3,count+1
    01A2 1542      CP	R20,R2
    01A3 0553      CPC	R21,R3
    01A4 0564      CPC	R22,R4
    01A5 0575      CPC	R23,R5
    01A6 F460      BCC	0x01B3
    01A7 E94B      LDI	R20,0x9B
    01A8 E050      LDI	R21,0
    01A9 E060      LDI	R22,0
    01AA E070      LDI	R23,0
    01AB 1624      CP	R2,R20
    01AC 0635      CPC	R3,R21
    01AD 0646      CPC	R4,R22
    01AE 0657      CPC	R5,R23
    01AF F418      BCC	0x01B3
    01B0 24AA      CLR	R10
    01B1 94A3      INC	R10
    01B2 C007      RJMP	0x01BA
(0143) 					    else  {flag=0;break;}
    01B3 24AA      CLR	R10
    01B4 C005      RJMP	0x01BA
    01B5 CFC8      RJMP	0x017E
(0144) 					 }	
(0145) 				   }	
(0146) 				   break;
    01B6 C003      RJMP	0x01BA
    01B7 20EE      TST	R14
    01B8 F409      BNE	0x01BA
    01B9 CFA5      RJMP	0x015F
(0147) 				 }
(0148) 				 if(flag==1) break;
    01BA 2D8A      MOV	R24,R10
    01BB 3081      CPI	R24,1
    01BC F409      BNE	0x01BE
    01BD C001      RJMP	0x01BF
    01BE CF85      RJMP	0x0144
(0149) 			} 
(0150) 			      
(0151) 				   for(i=0;i<24;i++)
    01BF 24CC      CLR	R12
    01C0 C095      RJMP	0x0256
(0152) 				       {
(0153) 					      
(0154) 					      count=0;
    01C1 E040      LDI	R20,0
    01C2 E050      LDI	R21,0
    01C3 E060      LDI	R22,0
    01C4 E070      LDI	R23,0
    01C5 935000AE  STS	count+1,R21
    01C7 934000AD  STS	count,R20
    01C9 937000B0  STS	count+3,R23
    01CB 936000AF  STS	count+2,R22
(0155) 						  data<<=1;                       //数据左移
    01CD 01FE      MOVW	R30,R28
    01CE 8020      LDD	R2,Z+0
    01CF 8031      LDD	R3,Z+1
    01D0 8042      LDD	R4,Z+2
    01D1 8053      LDD	R5,Z+3
    01D2 0C22      LSL	R2
    01D3 1C33      ROL	R3
    01D4 1C44      ROL	R4
    01D5 1C55      ROL	R5
    01D6 01FE      MOVW	R30,R28
    01D7 8220      STD	Z+0,R2
    01D8 8231      STD	Z+1,R3
    01D9 8242      STD	Z+2,R4
    01DA 8253      STD	Z+3,R5
    01DB C019      RJMP	0x01F5
(0156) 					      while (1)           //高位计数 
(0157)                             {   
(0158) 							   pin_var=PINA&(1<<wuxian_js);
    01DC B389      IN	R24,0x19
    01DD 7088      ANDI	R24,0x8
    01DE 2EE8      MOV	R14,R24
(0159) 							   if(pin_var==0) {break;}
    01DF 2388      TST	R24
    01E0 F409      BNE	0x01E2
    01E1 C014      RJMP	0x01F6
(0160) 							   if(count>200)  return 0xff; 
    01E2 EC48      LDI	R20,0xC8
    01E3 E050      LDI	R21,0
    01E4 E060      LDI	R22,0
    01E5 E070      LDI	R23,0
    01E6 904000AF  LDS	R4,count+2
    01E8 905000B0  LDS	R5,count+3
    01EA 902000AD  LDS	R2,count
    01EC 903000AE  LDS	R3,count+1
    01EE 1542      CP	R20,R2
    01EF 0553      CPC	R21,R3
    01F0 0564      CPC	R22,R4
    01F1 0575      CPC	R23,R5
    01F2 F410      BCC	0x01F5
    01F3 EF0F      LDI	R16,0xFF
    01F4 C08E      RJMP	0x0283
    01F5 CFE6      RJMP	0x01DC
(0161) 							 }
(0162) 							 if(count>1&&count<8)  data+=0;
    01F6 E041      LDI	R20,1
    01F7 E050      LDI	R21,0
    01F8 E060      LDI	R22,0
    01F9 E070      LDI	R23,0
    01FA 904000AF  LDS	R4,count+2
    01FC 905000B0  LDS	R5,count+3
    01FE 902000AD  LDS	R2,count
    0200 903000AE  LDS	R3,count+1
    0202 1542      CP	R20,R2
    0203 0553      CPC	R21,R3
    0204 0564      CPC	R22,R4
    0205 0575      CPC	R23,R5
    0206 F4A0      BCC	0x021B
    0207 E048      LDI	R20,0x8
    0208 E050      LDI	R21,0
    0209 E060      LDI	R22,0
    020A E070      LDI	R23,0
    020B 1624      CP	R2,R20
    020C 0635      CPC	R3,R21
    020D 0646      CPC	R4,R22
    020E 0657      CPC	R5,R23
    020F F458      BCC	0x021B
    0210 01FE      MOVW	R30,R28
    0211 8020      LDD	R2,Z+0
    0212 8031      LDD	R3,Z+1
    0213 8042      LDD	R4,Z+2
    0214 8053      LDD	R5,Z+3
    0215 01FE      MOVW	R30,R28
    0216 8220      STD	Z+0,R2
    0217 8231      STD	Z+1,R3
    0218 8242      STD	Z+2,R4
    0219 8253      STD	Z+3,R5
    021A C012      RJMP	0x022D
(0163) 							 else //if(count>13&&count<15)    
(0164) 							  data|=1;
    021B E041      LDI	R20,1
    021C E050      LDI	R21,0
    021D E060      LDI	R22,0
    021E E070      LDI	R23,0
    021F 01FE      MOVW	R30,R28
    0220 8020      LDD	R2,Z+0
    0221 8031      LDD	R3,Z+1
    0222 8042      LDD	R4,Z+2
    0223 8053      LDD	R5,Z+3
    0224 2A24      OR	R2,R20
    0225 2A35      OR	R3,R21
    0226 2A46      OR	R4,R22
    0227 2A57      OR	R5,R23
    0228 01FE      MOVW	R30,R28
    0229 8220      STD	Z+0,R2
    022A 8231      STD	Z+1,R3
    022B 8242      STD	Z+2,R4
    022C 8253      STD	Z+3,R5
(0165)                             
(0166) 							 count=0;
    022D E040      LDI	R20,0
    022E E050      LDI	R21,0
    022F E060      LDI	R22,0
    0230 E070      LDI	R23,0
    0231 935000AE  STS	count+1,R21
    0233 934000AD  STS	count,R20
    0235 937000B0  STS	count+3,R23
    0237 936000AF  STS	count+2,R22
    0239 C01A      RJMP	0x0254
(0167) 			              while(1)
(0168) 			                {
(0169)     			             WDR();
    023A 95A8      WDR
(0170) 				             pin_var=PINA&(1<<wuxian_js);
    023B B389      IN	R24,0x19
    023C 7088      ANDI	R24,0x8
    023D 2EE8      MOV	R14,R24
(0171) 				             if(pin_var!=0){break;}
    023E 2388      TST	R24
    023F F009      BEQ	0x0241
    0240 C014      RJMP	0x0255
(0172) 				             if(count>200)
    0241 EC48      LDI	R20,0xC8
    0242 E050      LDI	R21,0
    0243 E060      LDI	R22,0
    0244 E070      LDI	R23,0
    0245 904000AF  LDS	R4,count+2
    0247 905000B0  LDS	R5,count+3
    0249 902000AD  LDS	R2,count
    024B 903000AE  LDS	R3,count+1
    024D 1542      CP	R20,R2
    024E 0553      CPC	R21,R3
    024F 0564      CPC	R22,R4
    0250 0575      CPC	R23,R5
    0251 F410      BCC	0x0254
(0173)     			               {
(0174)         			              return(0xff);
    0252 EF0F      LDI	R16,0xFF
    0253 C02F      RJMP	0x0283
    0254 CFE5      RJMP	0x023A
    0255 94C3      INC	R12
    0256 2D8C      MOV	R24,R12
    0257 3188      CPI	R24,0x18
    0258 F408      BCC	0x025A
    0259 CF67      RJMP	0x01C1
(0175)     			               }
(0176) 			                } 
(0177) 					   }	
(0178) 			if(i==24)
    025A 3188      CPI	R24,0x18
    025B F531      BNE	0x0282
(0179) 			   {		   
(0180) 				for(j=2;j>=0;j--)
    025C E082      LDI	R24,2
    025D 2EA8      MOV	R10,R24
    025E C020      RJMP	0x027F
(0181) 				   {
(0182) 				     code[j]=data;
    025F EA86      LDI	R24,0xA6
    0260 E090      LDI	R25,0
    0261 2DEA      MOV	R30,R10
    0262 27FF      CLR	R31
    0263 FDE7      SBRC	R30,7
    0264 95F0      COM	R31
    0265 0FE8      ADD	R30,R24
    0266 1FF9      ADC	R31,R25
    0267 01DE      MOVW	R26,R28
    0268 902D      LD	R2,X+
    0269 903D      LD	R3,X+
    026A 904D      LD	R4,X+
    026B 905C      LD	R5,0(X)
    026C 8220      STD	Z+0,R2
(0183) 					 data>>=8;
    026D E088      LDI	R24,0x8
    026E E090      LDI	R25,0
    026F 01FE      MOVW	R30,R28
    0270 8020      LDD	R2,Z+0
    0271 8031      LDD	R3,Z+1
    0272 8042      LDD	R4,Z+2
    0273 8053      LDD	R5,Z+3
    0274 938A      ST	R24,-Y
    0275 0181      MOVW	R16,R2
    0276 0192      MOVW	R18,R4
    0277 940E0410  CALL	lsr32
    0279 01FE      MOVW	R30,R28
    027A 8300      STD	Z+0,R16
    027B 8311      STD	Z+1,R17
    027C 8322      STD	Z+2,R18
    027D 8333      STD	Z+3,R19
    027E 94AA      DEC	R10
    027F 2D8A      MOV	R24,R10
    0280 3080      CPI	R24,0
    0281 F6EC      BGE	0x025F
(0184) 				   }  
(0185) 			  }	   
(0186) 		 return 1;	 	   		 
    0282 E001      LDI	R16,1
    0283 9624      ADIW	R28,4
    0284 940E03EE  CALL	pop_gset5
    0286 9508      RET
_ana_decode:
  key_var              --> R20
  code_buf             --> Y+0
  flag                 --> R22
  i                    --> R20
    0287 940E03F7  CALL	push_gset2
    0289 9727      SBIW	R28,7
(0187) 	 }
(0188) 	 
(0189) 	void ana_decode(void)
(0190)    {
(0191) 	uchar key_var;
(0192) 	uchar i,flag=0;
    028A 2766      CLR	R22
(0193) 	uchar  code_buf[7];
(0194) 	DDRC&=~(1<<study_key);PORTC|=(1<<study_key);
    028B 98A1      CBI	0x14,1
    028C 9AA9      SBI	0x15,1
(0195) 	key_var=PINC&(1<<study_key);
    028D B343      IN	R20,0x13
    028E 7042      ANDI	R20,2
(0196) 	if(key_var==0)
    028F F009      BEQ	0x0291
    0290 C051      RJMP	0x02E2
(0197) 	   {
    0291 C03C      RJMP	0x02CE
(0198) 	      while(1)
(0199) 		     {
(0200) 	          while(1)
(0201)     		   {
(0202)     		       flag=decode();
    0292 DE95      RCALL	_decode
    0293 2F60      MOV	R22,R16
(0203) 				   if(flag==1)  {flag=0;break;}
    0294 3001      CPI	R16,1
    0295 F411      BNE	0x0298
    0296 2766      CLR	R22
    0297 C001      RJMP	0x0299
    0298 CFF9      RJMP	0x0292
(0204)     		   }
(0205) 			   for(i=0;i<2;++i){code1[i]=code[i];}
    0299 2744      CLR	R20
    029A C00F      RJMP	0x02AA
    029B EA86      LDI	R24,0xA6
    029C E090      LDI	R25,0
    029D 2FE4      MOV	R30,R20
    029E 27FF      CLR	R31
    029F 0FE8      ADD	R30,R24
    02A0 1FF9      ADC	R31,R25
    02A1 8020      LDD	R2,Z+0
    02A2 EA83      LDI	R24,0xA3
    02A3 E090      LDI	R25,0
    02A4 2FE4      MOV	R30,R20
    02A5 27FF      CLR	R31
    02A6 0FE8      ADD	R30,R24
    02A7 1FF9      ADC	R31,R25
    02A8 8220      STD	Z+0,R2
    02A9 9543      INC	R20
    02AA 3042      CPI	R20,2
    02AB F378      BCS	0x029B
    02AC C006      RJMP	0x02B3
(0206) 			   while(1)
(0207)     		   {
(0208)     		       flag=decode();
    02AD DE7A      RCALL	_decode
    02AE 2F60      MOV	R22,R16
(0209) 				   if(flag==1)  {flag=0;break;}
    02AF 3001      CPI	R16,1
    02B0 F411      BNE	0x02B3
    02B1 2766      CLR	R22
    02B2 C001      RJMP	0x02B4
    02B3 CFF9      RJMP	0x02AD
(0210) 			
(0211)     		   }
(0212) 			   for(i=0;i<2;++i){if(code1[i]!=code[i]){break;}}
    02B4 2744      CLR	R20
    02B5 C012      RJMP	0x02C8
    02B6 EA86      LDI	R24,0xA6
    02B7 E090      LDI	R25,0
    02B8 2FE4      MOV	R30,R20
    02B9 27FF      CLR	R31
    02BA 0FE8      ADD	R30,R24
    02BB 1FF9      ADC	R31,R25
    02BC 8020      LDD	R2,Z+0
    02BD EA83      LDI	R24,0xA3
    02BE E090      LDI	R25,0
    02BF 2FE4      MOV	R30,R20
    02C0 27FF      CLR	R31
    02C1 0FE8      ADD	R30,R24
    02C2 1FF9      ADC	R31,R25
    02C3 8030      LDD	R3,Z+0
    02C4 1432      CP	R3,R2
    02C5 F009      BEQ	0x02C7
    02C6 C003      RJMP	0x02CA
    02C7 9543      INC	R20
    02C8 3042      CPI	R20,2
    02C9 F360      BCS	0x02B6
(0213) 			   if(i==2){flag=1;break;}
    02CA 3042      CPI	R20,2
    02CB F411      BNE	0x02CE
    02CC E061      LDI	R22,1
    02CD C001      RJMP	0x02CF
    02CE CFC9      RJMP	0x0298
(0214) 	        }
(0215) 			 if(flag==1)	
    02CF 3061      CPI	R22,1
    02D0 F009      BEQ	0x02D2
    02D1 C10C      RJMP	0x03DE
(0216) 			    {    
(0217) 				    for(i=0;i<2;++i)
    02D2 2744      CLR	R20
    02D3 C00A      RJMP	0x02DE
(0218)     		           {
(0219)    				         eeprom_writ(i,code[i]);
    02D4 EA86      LDI	R24,0xA6
    02D5 E090      LDI	R25,0
    02D6 2FE4      MOV	R30,R20
    02D7 27FF      CLR	R31
    02D8 0FE8      ADD	R30,R24
    02D9 1FF9      ADC	R31,R25
    02DA 8120      LDD	R18,Z+0
    02DB 2F04      MOV	R16,R20
    02DC DE2B      RCALL	_eeprom_writ
    02DD 9543      INC	R20
    02DE 3042      CPI	R20,2
    02DF F3A0      BCS	0x02D4
(0220)    			            } 
(0221) 				flag=0;	

⌨️ 快捷键说明

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