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

📄 emd.lst

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0401)   }
(0402)   dipdata[0]=0;	  //退出设定时全部清空,不显示
    042B 2422      CLR	R2
    042C 9220011E  STS	dipdata,R2
(0403)   dipdata[1]=0;
    042E 9220011F  STS	dipdata+1,R2
(0404)   dipdata[2]=0;
    0430 92200120  STS	dipdata+2,R2
(0405)   dipdata[3]=0;
    0432 92200121  STS	dipdata+3,R2
(0406)   dipdata[4]=0;
    0434 92200122  STS	0x122,R2
(0407)   dipdata[5]=0;
    0436 92200123  STS	0x123,R2
(0408)   dipdata[5]|=0x80;  //电源LED
    0438 2D82      MOV	R24,R2
    0439 6880      ORI	R24,0x80
    043A 93800123  STS	0x123,R24
(0409)   D1FC=0;
    043C 92200130  STS	D1FC,R2
(0410)   D3FC=0;
    043E 9220012E  STS	D3FC,R2
(0411)   D4FC=0;
    0440 9220012D  STS	D4FC,R2
(0412)   D5FC=0;
    0442 9220012C  STS	D5FC,R2
(0413)   datas[0]=datas[1]=0;
    0444 92200114  STS	datas+1,R2
    0446 92200113  STS	datas,R2
    0448 D628      RCALL	pop_gset4
    0449 9508      RET
(0414) }
(0415) 
(0416) void main(void)
(0417) {//m
(0418) unit tr,ar;	 
(0419) //EEPROM_read(0xff);       //校正振荡频率
(0420) //OSCCAL=EEDR; 
(0421) delay(60);	
_main:
  ar                   --> R22
  tr                   --> R10
    044A E30C      LDI	R16,0x3C
    044B E010      LDI	R17,0
    044C D2C0      RCALL	_delay
(0422) init_devices();
    044D D317      RCALL	_init_devices
(0423) init_tm1620();
    044E DC21      RCALL	_init_tm1620
(0424) dipdata[5]|=0x80;	//电源LED
    044F 91800123  LDS	R24,0x123
    0451 6880      ORI	R24,0x80
    0452 93800123  STS	0x123,R24
(0425) delay(600);
    0454 E508      LDI	R16,0x58
    0455 E012      LDI	R17,2
    0456 D2B6      RCALL	_delay
(0426) 	    RF_OFF;		 //开RF使能
    0457 9842      CBI	0x08,2
(0427) 	   data[0]=0; 
    0458 2422      CLR	R2
    0459 9220011B  STS	data,R2
(0428) 	   data[1]=0;
    045B 9220011C  STS	data+1,R2
(0429) 	   data[2]=0;
    045D 9220011D  STS	data+2,R2
(0430) 		BITCOUNTER=CODELANGTH;
    045F E3E5      LDI	R30,0x35
    0460 E0F0      LDI	R31,0
    0461 91E4      LPM	R30,0(Z)
    0462 93E0010F  STS	BITCOUNTER,R30
(0431) 		DECODER_FLAG_L;
    0464 91800102  LDS	R24,flag
    0466 7F8B      ANDI	R24,0xFB
    0467 93800102  STS	flag,R24
(0432) 		LO_COUNT_SAVE=0;
    0469 92200126  STS	LO_COUNT_SAVE,R2
(0433) 		HI_COUNT_SAVE=0;
    046B 92200124  STS	HI_COUNT_SAVE,R2
(0434)         DECODER_EN_H;//开RF接收数据		
    046D 6082      ORI	R24,2
    046E 93800102  STS	flag,R24
(0435) sec=60;
    0470 E38C      LDI	R24,0x3C
    0471 93800104  STS	sec,R24
(0436) flagh &=~0x01;	  
    0473 91800103  LDS	R24,flagh
    0475 7F8E      ANDI	R24,0xFE
    0476 93800103  STS	flagh,R24
    0478 C280      RJMP	0x06F9
(0437) while(1)	 //
(0438) {//1		  
(0439)   WDR();
    0479 95A8      WDR
(0440)    if((flag&0x04)!=0)
    047A 90200102  LDS	R2,flag
    047C FE22      SBRS	R2,2
    047D C11E      RJMP	0x059C
(0441)      {	 
(0442)      ar=code_comp(); //对照地址
    047E DC88      RCALL	_code_comp
    047F 2F60      MOV	R22,R16
    0480 2777      CLR	R23
(0443) 	 if(ar<100)
    0481 3664      CPI	R22,0x64
    0482 E0E0      LDI	R30,0
    0483 077E      CPC	R23,R30
    0484 F008      BCS	0x0486
    0485 C10E      RJMP	0x0594
(0444) 	    {
(0445) 		if(!(data[2]&0x40))
    0486 9020011D  LDS	R2,data+2
    0488 FC26      SBRC	R2,6
    0489 C095      RJMP	0x051F
(0446) 		  {
(0447) 		   if((datas[0]!=data[0])||(datas[1]!=data[1]))
    048A 9020011B  LDS	R2,data
    048C 90300113  LDS	R3,datas
    048E 1432      CP	R3,R2
    048F F439      BNE	0x0497
    0490 9020011C  LDS	R2,data+1
    0492 90300114  LDS	R3,datas+1
    0494 1432      CP	R3,R2
    0495 F409      BNE	0x0497
    0496 C0F8      RJMP	0x058F
(0448)   		       {
(0449) 			   j=(ar*4)+2;
    0497 E004      LDI	R16,4
    0498 E010      LDI	R17,0
    0499 019B      MOVW	R18,R22
    049A D5C2      RCALL	empy16s
    049B 01C8      MOVW	R24,R16
    049C 9602      ADIW	R24,2
    049D 93800135  STS	j,R24
(0450)    			   ar=EEPROM_read(j);
    049F 2F08      MOV	R16,R24
    04A0 D285      RCALL	_EEPROM_read
    04A1 2F60      MOV	R22,R16
    04A2 2777      CLR	R23
(0451)    			   j++;
    04A3 91800135  LDS	R24,j
    04A5 5F8F      SUBI	R24,0xFF
    04A6 93800135  STS	j,R24
(0452)    			   tr=EEPROM_read(j);
    04A8 2F08      MOV	R16,R24
    04A9 D27C      RCALL	_EEPROM_read
    04AA 2EA0      MOV	R10,R16
    04AB 24BB      CLR	R11
(0453) 			   datas[6]=datas[4];	//移动存贮号码
    04AC 90200117  LDS	R2,0x117
    04AE 92200119  STS	0x119,R2
(0454)    			   datas[7]=datas[5]; 
    04B0 90200118  LDS	R2,0x118
    04B2 9220011A  STS	0x11A,R2
(0455) 			   
(0456)    			   datas[4]=datas[2];	
    04B4 90200115  LDS	R2,datas+2
    04B6 92200117  STS	0x117,R2
(0457) 			   datas[5]=datas[3];
    04B8 90200116  LDS	R2,datas+3
    04BA 92200118  STS	0x118,R2
(0458) 			   
(0459)    			   datas[2]=datas[0]; 
    04BC 90200113  LDS	R2,datas
    04BE 92200115  STS	datas+2,R2
(0460)    			   datas[3]=datas[1];
    04C0 90200114  LDS	R2,datas+1
    04C2 92200116  STS	datas+3,R2
(0461) 			   
(0462) 			   datas[0]=data[0];
    04C4 9020011B  LDS	R2,data
    04C6 92200113  STS	datas,R2
(0463)    			   datas[1]=data[1]; 
    04C8 9020011C  LDS	R2,data+1
    04CA 92200114  STS	datas+1,R2
(0464) 			   
(0465)    			   dipdata[0]=dipdata[3];
    04CC 90200121  LDS	R2,dipdata+3
    04CE 9220011E  STS	dipdata,R2
(0466)    			   dipdata[1]=dipdata[4]; 
    04D0 90200122  LDS	R2,0x122
    04D2 9220011F  STS	dipdata+1,R2
(0467)    			   dipdata[2]=dipdata[5];
    04D4 90200123  LDS	R2,0x123
    04D6 92200120  STS	dipdata+2,R2
(0468) 			   dipdata[2]&=~0x80;
    04D8 2D82      MOV	R24,R2
    04D9 778F      ANDI	R24,0x7F
    04DA 93800120  STS	dipdata+2,R24
(0469) 			   
(0470)    			   dipdata[3]=diptable[ar];
    04DC E386      LDI	R24,0x36
    04DD E090      LDI	R25,0
    04DE 01FB      MOVW	R30,R22
    04DF 0FE8      ADD	R30,R24
    04E0 1FF9      ADC	R31,R25
    04E1 91E4      LPM	R30,0(Z)
    04E2 93E00121  STS	dipdata+3,R30
(0471)    			   ar=(tr&0xf0)>>4;
    04E4 01B5      MOVW	R22,R10
    04E5 7F60      ANDI	R22,0xF0
    04E6 7070      ANDI	R23,0
    04E7 9576      LSR	R23
    04E8 9567      ROR	R22
    04E9 9576      LSR	R23
    04EA 9567      ROR	R22
    04EB 9576      LSR	R23
    04EC 9567      ROR	R22
    04ED 9576      LSR	R23
    04EE 9567      ROR	R22
(0472)    			   dipdata[4]=diptable[ar];
    04EF 01FB      MOVW	R30,R22
    04F0 0FE8      ADD	R30,R24
    04F1 1FF9      ADC	R31,R25
    04F2 91E4      LPM	R30,0(Z)
    04F3 93E00122  STS	0x122,R30
(0473)    			   ar=(tr&0x0f);
    04F5 01B5      MOVW	R22,R10
    04F6 706F      ANDI	R22,0xF
    04F7 7070      ANDI	R23,0
(0474)    			   dipdata[5]=diptable[ar];
    04F8 01FB      MOVW	R30,R22
    04F9 0FE8      ADD	R30,R24
    04FA 1FF9      ADC	R31,R25
    04FB 91E4      LPM	R30,0(Z)
    04FC 93E00123  STS	0x123,R30
(0475) 			   dipdata[5]|=0x80;  //电源LED	
    04FE 2F8E      MOV	R24,R30
    04FF 6880      ORI	R24,0x80
    0500 93800123  STS	0x123,R24
(0476) 			   if((data[2]&0x80))
    0502 9020011D  LDS	R2,data+2
    0504 FE27      SBRS	R2,7
    0505 C005      RJMP	0x050B
(0477) 			      {
(0478) 				  dipdata[3]|=0x80;  //发射电源低LED	
    0506 91800121  LDS	R24,dipdata+3
    0508 6880      ORI	R24,0x80
    0509 93800121  STS	dipdata+3,R24
(0479) 				  }
(0480) 			   sec=6;			 //显示6秒后刷新
    050B E086      LDI	R24,6
    050C 93800104  STS	sec,R24
(0481) 	 		   flagh &=~0x01;
    050E 91800103  LDS	R24,flagh
    0510 7F8E      ANDI	R24,0xFE
    0511 93800103  STS	flagh,R24
(0482) 			   dipcount=3;
    0513 E083      LDI	R24,3
    0514 9380010C  STS	dipcount,R24
(0483) 			   SPFC=5; 
    0516 E085      LDI	R24,5
    0517 93800108  STS	SPFC,R24
(0484) 			   	minu30=0;	
    0519 2422      CLR	R2
    051A 9220010E  STS	minu30,R2
(0485) 				minu15=0;  //有按过按钮倒计时重新计时
    051C 9220010D  STS	minu15,R2
(0486)     		   }
(0487) 			}
    051E C070      RJMP	0x058F
(0488) 			else 	  //按了清除键
(0489) 			{
(0490) 			 if((datas[0]==data[0])&&(datas[1]==data[1])) 
    051F 9020011B  LDS	R2,data
    0521 90300113  LDS	R3,datas
    0523 1432      CP	R3,R2
    0524 F489      BNE	0x0536
    0525 9020011C  LDS	R2,data+1
    0527 90300114  LDS	R3,datas+1
    0529 1432      CP	R3,R2
    052A F459      BNE	0x0536
(0491) 			     {
(0492) 				 datas[0]=datas[1]=0;
    052B 2422      CLR	R2
    052C 92200114  STS	datas+1,R2
    052E 92200113  STS	datas,R2
(0493) 				 dipdata[3]=dipdata[4]=dipdata[5]=0;
    0530 92200123  STS	0x123,R2
    0532 92200122  STS	0x122,R2
    0534 92200121  STS	dipdata+3,R2
(0494) 				 }	
(0495) 			 if((datas[2]==data[0])&&(datas[3]==data[1])) 
    0536 9020011B  LDS	R2,data
    0538 90300115  LDS	R3,datas+2
    053A 1432      CP	R3,R2
    053B F459      BNE	0x0547
    053C 9020011C  LDS	R2,data+1
    053E 90300116  LDS	R3,datas+3
    0540 1432      CP	R3,R2
    0541 F429      BNE	0x0547
(0496) 			     {
(0497) 				 datas[2]=datas[3]=0;
    0542 2422      CLR	R2
    0543 92200116  STS	datas+3,R2
    0545 92200115  STS	datas+2,R2
(0498) 				 }
(0499) 			 if((datas[4]==data[0])&&(datas[5]==data[1])) 
    0547 9020011B  LDS	R2,data
    0549 90300117  LDS	R3,0x117
    054B 1432      CP	R3,R2
    054C F459      BNE	0x0558
    054D 9020011C  LDS	R2,data+1
    054F 90300118  LDS	R3,0x118
    0551 1432      CP	R3,R2
    0552 F429      BNE	0x0558
(0500) 			     {
(0501) 				 datas[4]=datas[5]=0;
    0553 2422      CLR	R2
    0554 92200118  STS	0x118,R2
    0556 92200117  STS	0x117,R2
(0502) 				 }
(0503) 			 if((datas[6]==data[0])&&(datas[7]==data[1])) 
    0558 9020011B  LDS	R2,data
    055A 90300119  LDS	R3,0x119
    055C 1432      CP	R3,R2
    055D F459      BNE	0x0569
    055E 9020011C  LDS	R2,data+1
    0560 9030011A  LDS	R3,0x11A
    0562 1432      CP	R3,R2
    0563 F429      BNE	0x0569
(0504) 			     {
(0505) 				 datas[6]=datas[7]=0;
    0564 2422      CLR	R2
    0565 9220011A  STS	0x11A,R2
    0567 92200119  STS	0x119,R2
(0506) 				 }
(0507) 			 if((datas[6]==0)&&(datas[5]==0)&&(datas[4]==0)&&(datas[3]==0)&&(datas[2]==0)&&(datas[1]==0)&&(datas[0]==0))
    0569 90200119  LDS	R2,0x119
    056B 2022      TST	R2
    056C F4F9      BNE	0x058C
    056D 90200118  LDS	R2,0x118
    056F 2022      TST	R2
    0570 F4D9      BNE	0x058C
    0571 90200117  LDS	R2,0x117
    0573 2022      TST	R2
    0574 F4B9      BNE	0x058C
    0575 90200116  LDS	R2,datas+3
    0577 2022      TST	R2
    0578 F499      BNE	0x058C
    0579 90200115  LDS	R2,datas+2
    057B 2022      TST	R2
    057C F479      BNE	0x058C
    057D 90200114  LDS	R2,datas+1
    057F 2022      TST	R2
    0580 F459      BNE	0x058C
    0581 90200113  LDS	R2,datas
    0583 2022      TST	R2
    0584 F439      BNE	0x058C
(0508) 			     {
(0509) 				 dipdata[0]=dipdata[1]=dipdata[2]=0;
    0585 2422      CLR	R2
    0586 92200120  STS	dipdata+2,R2
    0588 9220011F  STS	dipdata+1,R2
    058A 9220011E  STS	dipdata,R2
(0510) 				 }
(0511) 				 SPFC=1;
    058C E081      LDI	R24,1
    058D 93800108  STS	SPFC,R24
(0512) 			}
(0513) 		dipdata[5]|=0x80;	  //电源LED
    058F 91800123  LDS	R24,0x123
    0591 6880      ORI	R24,0x80
    0592 93800123  STS	0x123,R24
(0514) 	 	}
(0515) 		DECODER_FLAG_L; 
    0594 91800102  LDS	R24,flag
    0596 7F8B      ANDI	R24,0xFB
    0597 93800102  STS	flag,R24
(0516) 		DECODER_EN_H;//开RF接收数据	
    0599 6082      ORI	R24,2
    059A 93800102  STS	flag,R24
(0517) 	 }
(0518)    tr=key_1();
    059C D42F      RCALL	_key_1
    059D 2EA0      MOV	R10,R16
    059E 24BB      CLR	R11
(0519)    if(tr==2)
    059F 01C5      MOVW	R24,R10
    05A0 3082      CPI	R24,2
    05A1 E0E0      LDI	R30,0
    05A2 079E      CPC	R25,R30
    05A3 F409      BNE	0x05A5
(0520)      {
(0521) 	 set_led();
    05A4 DBE7      RCALL	_set_led
(0522) 	 }
(0523)  	 //被挤出的三个号码在上一层数码管显示 三秒一次更新
(0524)    if(flagh&0x02)
    05A5 90200103  LDS	R2,flagh
    05A7 FE21      SBRS	R2,1
    05A8 C150      RJMP	0x06F9
(0525)      {
(0526) 	 sec0=3;
    05A9 E083      LDI	R24,3
    05AA 93800105  STS	sec0,R24
(0527) 	 flagh &=~0x02;
    05AC 2D82      MOV	R24,R2
    05AD 7F8D      ANDI	R24,0xFD
    05AE 93800103  STS	flagh,R24
(0528) 	 switch(dipcount)  //显示计数器
    05B0 9140010C  LDS	R20,dipcount
    05B2 2755      CLR	R21
    05B3 3041      CPI	R20,1
    05B4 E0E0      LDI	R30,0
    05B5 075E      CPC	R21,R30
    05B6 F059      BEQ	0x05C2
    05B7 3042      CPI	R20,2
    05B8 E0E0      LDI	R30,0
    05B9 075E      CPC	R21,R30
    05BA F409      BNE	0x05BC
    05BB C06E      RJMP	0x062A
    05BC 3043      CPI	R20,3
    05BD E0E0      LDI	R30,0
    05BE 075E      CPC	R21,R30
    05BF F409      BNE	0x05C1
    05C0 C0D1      RJMP	0x0692
    05C1 C137      RJMP	0x06F9
(0529) 	      {
(0530) 		   case 1:	if((datas[6]!=0)||(datas[7]!=0)) //没有数据不替换显示
    05C2 90200119  LDS	R2,0x119
    05C4 2022      TST	R2
    05C5 F429      BNE	0x05CB
    05C6 9020011A  LDS	R2,0x11A
    05C8 2022      TST	R2
    05C9 F409      BNE	0x05CB
    05CA C056      RJMP	0x0621
(0531) 		   				{
(0532) 						data[0]=datas[6];

⌨️ 快捷键说明

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