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

📄 emd.lst

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LST
📖 第 1 页 / 共 5 页
字号:
    02A3 91E4      LPM	R30,0(Z)
    02A4 93E00123  STS	0x123,R30
(0295) 		   j=((d4<<4)+d5);
    02A6 90200128  LDS	R2,d5
    02A8 91400129  LDS	R20,d4
    02AA 704F      ANDI	R20,0xF
    02AB 9542      SWAP	R20
    02AC 0D42      ADD	R20,R2
(0296) 		   EEPROM_write((d*4)+3,j); 
    02AD 2F24      MOV	R18,R20
    02AE E084      LDI	R24,4
    02AF 9F86      MUL	R24,R22
    02B0 2D00      MOV	R16,R0
    02B1 5F0D      SUBI	R16,0xFD
    02B2 D468      RCALL	_EEPROM_write
(0297) 		   }
(0298) 	 }
(0299) 	 if(e==2)
    02B3 2D8A      MOV	R24,R10
    02B4 3082      CPI	R24,2
    02B5 F499      BNE	0x02C9
(0300) 	   {
(0301) 	   if((PIND&0x20)==0)
    02B6 994D      SBIC	0x09,5
    02B7 C011      RJMP	0x02C9
(0302) 	      {
(0303) 		  for(i=0;i<255;i++)
    02B8 24CC      CLR	R12
    02B9 C004      RJMP	0x02BE
(0304) 		      {
(0305) 		  	  EEPROM_write(i,0xff);
    02BA EF2F      LDI	R18,0xFF
    02BB 2D0C      MOV	R16,R12
    02BC D45E      RCALL	_EEPROM_write
    02BD 94C3      INC	R12
    02BE 2D8C      MOV	R24,R12
    02BF 3F8F      CPI	R24,0xFF
    02C0 F3C8      BCS	0x02BA
(0306) 			  }	
(0307) 			  flagh |=0x01;
    02C1 91800103  LDS	R24,flagh
    02C3 6081      ORI	R24,1
    02C4 93800103  STS	flagh,R24
(0308) 			  SPFC=1;
    02C6 E081      LDI	R24,1
    02C7 93800108  STS	SPFC,R24
(0309) 		  }
(0310) 	   }
(0311) 	 e=(key_3());
    02C9 D738      RCALL	_key_3
    02CA 2EA0      MOV	R10,R16
(0312)    if(e==1)		 //闪烁数据减一
    02CB 3001      CPI	R16,1
    02CC F009      BEQ	0x02CE
    02CD C096      RJMP	0x0364
(0313) 	  {	
(0314) 	    sec=30;
    02CE E18E      LDI	R24,0x1E
    02CF 93800104  STS	sec,R24
(0315) 	    if(D1FC!=0)
    02D1 90200130  LDS	R2,D1FC
    02D3 2022      TST	R2
    02D4 F0F9      BEQ	0x02F4
(0316) 		   {
(0317) 		   if(d!=0) d--;	 //转成BCD到显示
    02D5 2366      TST	R22
    02D6 F009      BEQ	0x02D8
    02D7 956A      DEC	R22
(0318) 		   dipdata[1]=diptable[(d/10)];
    02D8 E02A      LDI	R18,0xA
    02D9 E030      LDI	R19,0
    02DA 2F06      MOV	R16,R22
    02DB 2711      CLR	R17
    02DC D74B      RCALL	div16s
    02DD 01F8      MOVW	R30,R16
    02DE E386      LDI	R24,0x36
    02DF E090      LDI	R25,0
    02E0 0FE8      ADD	R30,R24
    02E1 1FF9      ADC	R31,R25
    02E2 91E4      LPM	R30,0(Z)
    02E3 93E0011F  STS	dipdata+1,R30
(0319) 		   dipdata[2]=diptable[d%10];
    02E5 E02A      LDI	R18,0xA
    02E6 E030      LDI	R19,0
    02E7 2F06      MOV	R16,R22
    02E8 2711      CLR	R17
    02E9 D73A      RCALL	mod16s
    02EA 01F8      MOVW	R30,R16
    02EB E386      LDI	R24,0x36
    02EC E090      LDI	R25,0
    02ED 0FE8      ADD	R30,R24
    02EE 1FF9      ADC	R31,R25
    02EF 91E4      LPM	R30,0(Z)
    02F0 93E00120  STS	dipdata+2,R30
(0320) 		   lookup_led(d);
    02F2 2F06      MOV	R16,R22
    02F3 DE38      RCALL	_lookup_led
(0321) 		   }
(0322) 		if((D3FC!=0)&&(D4FC==0))
    02F4 9020012E  LDS	R2,D3FC
    02F6 2022      TST	R2
    02F7 F0E9      BEQ	0x0315
    02F8 9020012D  LDS	R2,D4FC
    02FA 2022      TST	R2
    02FB F4C9      BNE	0x0315
(0323) 		   {
(0324) 		   if(d3!=0) d3--;	 
    02FC 9020012A  LDS	R2,d3
    02FE 2022      TST	R2
    02FF F021      BEQ	0x0304
    0300 2D82      MOV	R24,R2
    0301 5081      SUBI	R24,1
    0302 9380012A  STS	d3,R24
(0325) 		   dipdata[3]=diptable[d3];
    0304 E386      LDI	R24,0x36
    0305 E090      LDI	R25,0
    0306 91E0012A  LDS	R30,d3
    0308 27FF      CLR	R31
    0309 0FE8      ADD	R30,R24
    030A 1FF9      ADC	R31,R25
    030B 91E4      LPM	R30,0(Z)
    030C 93E00121  STS	dipdata+3,R30
(0326) 		   EEPROM_write((d*4)+2,d3); 
    030E 9120012A  LDS	R18,d3
    0310 E084      LDI	R24,4
    0311 9F86      MUL	R24,R22
    0312 2D00      MOV	R16,R0
    0313 5F0E      SUBI	R16,0xFE
    0314 D406      RCALL	_EEPROM_write
(0327) 		   }
(0328) 		if((D4FC!=0)&&(D5FC==0))
    0315 9020012D  LDS	R2,D4FC
    0317 2022      TST	R2
    0318 F121      BEQ	0x033D
    0319 9020012C  LDS	R2,D5FC
    031B 2022      TST	R2
    031C F501      BNE	0x033D
(0329) 		   {
(0330) 		   if(d4!=0) d4--;
    031D 90200129  LDS	R2,d4
    031F 2022      TST	R2
    0320 F021      BEQ	0x0325
    0321 2D82      MOV	R24,R2
    0322 5081      SUBI	R24,1
    0323 93800129  STS	d4,R24
(0331) 		   dipdata[4]=diptable[d4];
    0325 E386      LDI	R24,0x36
    0326 E090      LDI	R25,0
    0327 91E00129  LDS	R30,d4
    0329 27FF      CLR	R31
    032A 0FE8      ADD	R30,R24
    032B 1FF9      ADC	R31,R25
    032C 91E4      LPM	R30,0(Z)
    032D 93E00122  STS	0x122,R30
(0332) 		   j=((d4<<4)+d5);
    032F 90200128  LDS	R2,d5
    0331 91400129  LDS	R20,d4
    0333 704F      ANDI	R20,0xF
    0334 9542      SWAP	R20
    0335 0D42      ADD	R20,R2
(0333) 		   EEPROM_write((d*4)+3,d4); 
    0336 91200129  LDS	R18,d4
    0338 E084      LDI	R24,4
    0339 9F86      MUL	R24,R22
    033A 2D00      MOV	R16,R0
    033B 5F0D      SUBI	R16,0xFD
    033C D3DE      RCALL	_EEPROM_write
(0334) 		   }
(0335) 		if((D5FC!=0)&&(D4FC==0))
    033D 9020012C  LDS	R2,D5FC
    033F 2022      TST	R2
    0340 F119      BEQ	0x0364
    0341 9020012D  LDS	R2,D4FC
    0343 2022      TST	R2
    0344 F4F9      BNE	0x0364
(0336) 		   {
(0337) 		   if(d5!=0) d5--;
    0345 90200128  LDS	R2,d5
    0347 2022      TST	R2
    0348 F021      BEQ	0x034D
    0349 2D82      MOV	R24,R2
    034A 5081      SUBI	R24,1
    034B 93800128  STS	d5,R24
(0338) 		   dipdata[5]=diptable[d5];
    034D E386      LDI	R24,0x36
    034E E090      LDI	R25,0
    034F 91E00128  LDS	R30,d5
    0351 27FF      CLR	R31
    0352 0FE8      ADD	R30,R24
    0353 1FF9      ADC	R31,R25
    0354 91E4      LPM	R30,0(Z)
    0355 93E00123  STS	0x123,R30
(0339) 		   j=((d4<<4)+d5);
    0357 90200128  LDS	R2,d5
    0359 91400129  LDS	R20,d4
    035B 704F      ANDI	R20,0xF
    035C 9542      SWAP	R20
    035D 0D42      ADD	R20,R2
(0340) 		   EEPROM_write((d*4)+3,d5); 
    035E 2D22      MOV	R18,R2
    035F E084      LDI	R24,4
    0360 9F86      MUL	R24,R22
    0361 2D00      MOV	R16,R0
    0362 5F0D      SUBI	R16,0xFD
    0363 D3B7      RCALL	_EEPROM_write
(0341) 		   }
(0342) 	  }
(0343) 	 if(e==2)
    0364 2D8A      MOV	R24,R10
    0365 3082      CPI	R24,2
    0366 F499      BNE	0x037A
(0344) 	   {
(0345) 	   if((PIND&0x40)==0)
    0367 994E      SBIC	0x09,6
    0368 C011      RJMP	0x037A
(0346) 	      {
(0347) 		  for(i=0;i<255;i++)
    0369 24CC      CLR	R12
    036A C004      RJMP	0x036F
(0348) 		      {
(0349) 		  	  EEPROM_write(i,0xff);
    036B EF2F      LDI	R18,0xFF
    036C 2D0C      MOV	R16,R12
    036D D3AD      RCALL	_EEPROM_write
    036E 94C3      INC	R12
    036F 2D8C      MOV	R24,R12
    0370 3F8F      CPI	R24,0xFF
    0371 F3C8      BCS	0x036B
(0350) 			  }	
(0351) 			  flagh |=0x01;
    0372 91800103  LDS	R24,flagh
    0374 6081      ORI	R24,1
    0375 93800103  STS	flagh,R24
(0352) 			  SPFC=1;
    0377 E081      LDI	R24,1
    0378 93800108  STS	SPFC,R24
(0353) 		  }
(0354) 	   }
(0355) 	if((D3FC!=0)&&(D4FC!=0)&&(D5FC!=0))
    037A 9020012E  LDS	R2,D3FC
    037C 2022      TST	R2
    037D F409      BNE	0x037F
    037E C0A0      RJMP	0x041F
    037F 9020012D  LDS	R2,D4FC
    0381 2022      TST	R2
    0382 F409      BNE	0x0384
    0383 C09B      RJMP	0x041F
    0384 9020012C  LDS	R2,D5FC
    0386 2022      TST	R2
    0387 F409      BNE	0x0389
    0388 C096      RJMP	0x041F
(0356) 	     {
(0357) 		  if((flag&0x04)!=0)
    0389 90200102  LDS	R2,flag
    038B FE22      SBRS	R2,2
    038C C092      RJMP	0x041F
(0358) 		     {
(0359) 			 j=code_comp();
    038D DD79      RCALL	_code_comp
    038E 2F40      MOV	R20,R16
(0360) 			 if(j<100)			 //代码存在,显示代码位置,响三下表示学习不成功
    038F 3604      CPI	R16,0x64
    0390 F008      BCS	0x0392
    0391 C02F      RJMP	0x03C1
(0361) 			 		{
(0362) 			 		 SPFC=3;
    0392 E083      LDI	R24,3
    0393 93800108  STS	SPFC,R24
(0363) 					 d=j;
    0395 2F64      MOV	R22,R20
(0364) 					 dipdata[0]=diptable[0];
    0396 E3E6      LDI	R30,0x36
    0397 E0F0      LDI	R31,0
    0398 91E4      LPM	R30,0(Z)
    0399 93E0011E  STS	dipdata,R30
(0365) 					 dipdata[1]=diptable[(d/10)];
    039B E02A      LDI	R18,0xA
    039C E030      LDI	R19,0
    039D 2711      CLR	R17
    039E D689      RCALL	div16s
    039F 01F8      MOVW	R30,R16
    03A0 E386      LDI	R24,0x36
    03A1 E090      LDI	R25,0
    03A2 0FE8      ADD	R30,R24
    03A3 1FF9      ADC	R31,R25
    03A4 91E4      LPM	R30,0(Z)
    03A5 93E0011F  STS	dipdata+1,R30
(0366) 		   	 	  	 dipdata[2]=diptable[d%10];
    03A7 E02A      LDI	R18,0xA
    03A8 E030      LDI	R19,0
    03A9 2F06      MOV	R16,R22
    03AA 2711      CLR	R17
    03AB D678      RCALL	mod16s
    03AC 01F8      MOVW	R30,R16
    03AD E386      LDI	R24,0x36
    03AE E090      LDI	R25,0
    03AF 0FE8      ADD	R30,R24
    03B0 1FF9      ADC	R31,R25
    03B1 91E4      LPM	R30,0(Z)
    03B2 93E00120  STS	dipdata+2,R30
(0367) 			   	  	 lookup_led(d);
    03B4 2F06      MOV	R16,R22
    03B5 DD76      RCALL	_lookup_led
(0368) 					 D1FC=1;
    03B6 E081      LDI	R24,1
    03B7 93800130  STS	D1FC,R24
(0369) 					 D3FC=0;
    03B9 2422      CLR	R2
    03BA 9220012E  STS	D3FC,R2
(0370) 			 		 D4FC=0;
    03BC 9220012D  STS	D4FC,R2
(0371) 			 		 D5FC=0;
    03BE 9220012C  STS	D5FC,R2
(0372) 			 		}
    03C0 C056      RJMP	0x0417
(0373) 			 else
(0374) 			     {
(0375) 			 	 EEPROM_write(d*4,eaddr0);		   //写入EEPROM
    03C1 91200132  LDS	R18,eaddr0
    03C3 E084      LDI	R24,4
    03C4 9F86      MUL	R24,R22
    03C5 2D00      MOV	R16,R0
    03C6 D354      RCALL	_EEPROM_write
(0376) 			 	 EEPROM_write((d*4)+1,eaddr1); 
    03C7 91200131  LDS	R18,eaddr1
    03C9 E084      LDI	R24,4
    03CA 9F86      MUL	R24,R22
    03CB 2D00      MOV	R16,R0
    03CC 5F0F      SUBI	R16,0xFF
    03CD D34D      RCALL	_EEPROM_write
(0377) 			 	 SPFC=1;
    03CE E081      LDI	R24,1
    03CF 93800108  STS	SPFC,R24
(0378) 		   	 	 if(d<99)
    03D1 3663      CPI	R22,0x63
    03D2 F008      BCS	0x03D4
    03D3 C036      RJMP	0x040A
(0379) 			          { 
(0380) 			 	  	  d++;	 //转成BCD到显示
    03D4 9563      INC	R22
(0381) 		   	 	  	  dipdata[1]=diptable[(d/10)];
    03D5 E02A      LDI	R18,0xA
    03D6 E030      LDI	R19,0
    03D7 2F06      MOV	R16,R22
    03D8 2711      CLR	R17
    03D9 D64E      RCALL	div16s
    03DA 01F8      MOVW	R30,R16
    03DB E386      LDI	R24,0x36
    03DC E090      LDI	R25,0
    03DD 0FE8      ADD	R30,R24
    03DE 1FF9      ADC	R31,R25
    03DF 91E4      LPM	R30,0(Z)
    03E0 93E0011F  STS	dipdata+1,R30
(0382) 		   	 	  	  dipdata[2]=diptable[d%10];
    03E2 E02A      LDI	R18,0xA
    03E3 E030      LDI	R19,0
    03E4 2F06      MOV	R16,R22
    03E5 2711      CLR	R17
    03E6 D63D      RCALL	mod16s
    03E7 01F8      MOVW	R30,R16
    03E8 E386      LDI	R24,0x36
    03E9 E090      LDI	R25,0
    03EA 0FE8      ADD	R30,R24
    03EB 1FF9      ADC	R31,R25
    03EC 91E4      LPM	R30,0(Z)
    03ED 93E00120  STS	dipdata+2,R30
(0383) 			   	  	  lookup_led(d);
    03EF 2F06      MOV	R16,R22
    03F0 DD3B      RCALL	_lookup_led
(0384) 		   		  	  if((d3==0)&&(d4==0)&&(d5==0)) //未用过的EEPROM写0
    03F1 9020012A  LDS	R2,d3
    03F3 2022      TST	R2
    03F4 F4D1      BNE	0x040F
    03F5 90200129  LDS	R2,d4
    03F7 2022      TST	R2
    03F8 F4B1      BNE	0x040F
    03F9 90200128  LDS	R2,d5
    03FB 2022      TST	R2
    03FC F491      BNE	0x040F
(0385) 		              		{	  
(0386) 			  		 		EEPROM_write((d*4)+2,0);
    03FD 2722      CLR	R18
    03FE E084      LDI	R24,4
    03FF 9F86      MUL	R24,R22
    0400 2D00      MOV	R16,R0
    0401 5F0E      SUBI	R16,0xFE
    0402 D318      RCALL	_EEPROM_write
(0387) 			  		 		EEPROM_write((d*4)+3,0);
    0403 2722      CLR	R18
    0404 E084      LDI	R24,4
    0405 9F86      MUL	R24,R22
    0406 2D00      MOV	R16,R0
    0407 5F0D      SUBI	R16,0xFD
    0408 D312      RCALL	_EEPROM_write
(0388) 			  		  		}
(0389) 				      }
    0409 C005      RJMP	0x040F
(0390) 			 		  else  flagh |=0x01;
    040A 91800103  LDS	R24,flagh
    040C 6081      ORI	R24,1
    040D 93800103  STS	flagh,R24
(0391) 			 		  D3FC=1;
    040F E081      LDI	R24,1
    0410 9380012E  STS	D3FC,R24
(0392) 			 		  D4FC=0;
    0412 2422      CLR	R2
    0413 9220012D  STS	D4FC,R2
(0393) 			 		  D5FC=0;
    0415 9220012C  STS	D5FC,R2
(0394) 			 	 }
(0395) 				 DECODER_FLAG_L; 
    0417 91800102  LDS	R24,flag
    0419 7F8B      ANDI	R24,0xFB
    041A 93800102  STS	flag,R24
(0396) 				 DECODER_EN_H;//开RF接收数据	
    041C 6082      ORI	R24,2
    041D 93800102  STS	flag,R24
(0397) 			 }
(0398) 		 }
(0399) 		 DECODER_FLAG_L; 
    041F 91800102  LDS	R24,flag
    0421 7F8B      ANDI	R24,0xFB
    0422 93800102  STS	flag,R24
(0400) 		DECODER_EN_H;//开RF接收数据	
    0424 6082      ORI	R24,2
    0425 93800102  STS	flag,R24
    0427 90200103  LDS	R2,flagh
    0429 FE20      SBRS	R2,0
    042A CD84      RJMP	0x01AF

⌨️ 快捷键说明

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