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

📄 emd.lst

📁 433M收发,内有PCB(用99打开),源程序ICC打开,用了IC发送和三极管两种,接收用RX3310
💻 LST
📖 第 1 页 / 共 5 页
字号:
    05CB 90200119  LDS	R2,0x119
    05CD 9220011B  STS	data,R2
(0533)    			   			data[1]=datas[7];
    05CF 9020011A  LDS	R2,0x11A
    05D1 9220011C  STS	data+1,R2
(0534) 						ar=code_comp(); //对照地址
    05D3 DB33      RCALL	_code_comp
    05D4 2F60      MOV	R22,R16
    05D5 2777      CLR	R23
(0535) 						if(ar<100)
    05D6 3664      CPI	R22,0x64
    05D7 E0E0      LDI	R30,0
    05D8 077E      CPC	R23,R30
    05D9 F008      BCS	0x05DB
    05DA C04B      RJMP	0x0626
(0536) 						{
(0537) 			   			j=(ar*4)+2;
    05DB E004      LDI	R16,4
    05DC E010      LDI	R17,0
    05DD 019B      MOVW	R18,R22
    05DE D47E      RCALL	empy16s
    05DF 01C8      MOVW	R24,R16
    05E0 9602      ADIW	R24,2
    05E1 93800135  STS	j,R24
(0538)    			   			ar=EEPROM_read(j);
    05E3 2F08      MOV	R16,R24
    05E4 D141      RCALL	_EEPROM_read
    05E5 2F60      MOV	R22,R16
    05E6 2777      CLR	R23
(0539)    			   			j++;
    05E7 91800135  LDS	R24,j
    05E9 5F8F      SUBI	R24,0xFF
    05EA 93800135  STS	j,R24
(0540)    			   			tr=EEPROM_read(j);
    05EC 2F08      MOV	R16,R24
    05ED D138      RCALL	_EEPROM_read
    05EE 2EA0      MOV	R10,R16
    05EF 24BB      CLR	R11
(0541)    			   			dipdata[0]=diptable[ar];
    05F0 E386      LDI	R24,0x36
    05F1 E090      LDI	R25,0
    05F2 01FB      MOVW	R30,R22
    05F3 0FE8      ADD	R30,R24
    05F4 1FF9      ADC	R31,R25
    05F5 91E4      LPM	R30,0(Z)
    05F6 93E0011E  STS	dipdata,R30
(0542)    			   			ar=(tr&0xf0)>>4;
    05F8 01B5      MOVW	R22,R10
    05F9 7F60      ANDI	R22,0xF0
    05FA 7070      ANDI	R23,0
    05FB 9576      LSR	R23
    05FC 9567      ROR	R22
    05FD 9576      LSR	R23
    05FE 9567      ROR	R22
    05FF 9576      LSR	R23
    0600 9567      ROR	R22
    0601 9576      LSR	R23
    0602 9567      ROR	R22
(0543)    			   			dipdata[1]=diptable[ar];
    0603 01FB      MOVW	R30,R22
    0604 0FE8      ADD	R30,R24
    0605 1FF9      ADC	R31,R25
    0606 91E4      LPM	R30,0(Z)
    0607 93E0011F  STS	dipdata+1,R30
(0544)    			   			ar=(tr&0x0f);
    0609 01B5      MOVW	R22,R10
    060A 706F      ANDI	R22,0xF
    060B 7070      ANDI	R23,0
(0545)    			   			dipdata[2]=diptable[ar];
    060C 01FB      MOVW	R30,R22
    060D 0FE8      ADD	R30,R24
    060E 1FF9      ADC	R31,R25
    060F 91E4      LPM	R30,0(Z)
    0610 93E00120  STS	dipdata+2,R30
(0546) 						dipdata[0]|=0x80;
    0612 9180011E  LDS	R24,dipdata
    0614 6880      ORI	R24,0x80
    0615 9380011E  STS	dipdata,R24
(0547) 						dipdata[1]&=~0x80;
    0617 9180011F  LDS	R24,dipdata+1
    0619 778F      ANDI	R24,0x7F
    061A 9380011F  STS	dipdata+1,R24
(0548) 						dipdata[2]&=~0x80;
    061C 2F8E      MOV	R24,R30
    061D 778F      ANDI	R24,0x7F
    061E 93800120  STS	dipdata+2,R24
(0549) 						}
(0550) 						}
    0620 C005      RJMP	0x0626
(0551) 						else flagh |=BIT(1);
    0621 91800103  LDS	R24,flagh
    0623 6082      ORI	R24,2
    0624 93800103  STS	flagh,R24
(0552) 					dipcount=2;
    0626 E082      LDI	R24,2
    0627 9380010C  STS	dipcount,R24
(0553) 					break;
    0629 C0CF      RJMP	0x06F9
(0554) 		   case 2:	if((datas[4]!=0)||(datas[5]!=0)) //没有数据不替换显示
    062A 90200117  LDS	R2,0x117
    062C 2022      TST	R2
    062D F429      BNE	0x0633
    062E 90200118  LDS	R2,0x118
    0630 2022      TST	R2
    0631 F409      BNE	0x0633
    0632 C056      RJMP	0x0689
(0555) 		   				{
(0556) 						data[0]=datas[4];
    0633 90200117  LDS	R2,0x117
    0635 9220011B  STS	data,R2
(0557)    			   			data[1]=datas[5];
    0637 90200118  LDS	R2,0x118
    0639 9220011C  STS	data+1,R2
(0558) 						ar=code_comp(); //对照地址 
    063B DACB      RCALL	_code_comp
    063C 2F60      MOV	R22,R16
    063D 2777      CLR	R23
(0559) 						if(ar<100)
    063E 3664      CPI	R22,0x64
    063F E0E0      LDI	R30,0
    0640 077E      CPC	R23,R30
    0641 F008      BCS	0x0643
    0642 C04B      RJMP	0x068E
(0560) 						{
(0561) 			   			j=(ar*4)+2;
    0643 E004      LDI	R16,4
    0644 E010      LDI	R17,0
    0645 019B      MOVW	R18,R22
    0646 D416      RCALL	empy16s
    0647 01C8      MOVW	R24,R16
    0648 9602      ADIW	R24,2
    0649 93800135  STS	j,R24
(0562)    			   			ar=EEPROM_read(j);
    064B 2F08      MOV	R16,R24
    064C D0D9      RCALL	_EEPROM_read
    064D 2F60      MOV	R22,R16
    064E 2777      CLR	R23
(0563)    			   			j++;
    064F 91800135  LDS	R24,j
    0651 5F8F      SUBI	R24,0xFF
    0652 93800135  STS	j,R24
(0564)    			   			tr=EEPROM_read(j);
    0654 2F08      MOV	R16,R24
    0655 D0D0      RCALL	_EEPROM_read
    0656 2EA0      MOV	R10,R16
    0657 24BB      CLR	R11
(0565)    			   			dipdata[0]=diptable[ar];
    0658 E386      LDI	R24,0x36
    0659 E090      LDI	R25,0
    065A 01FB      MOVW	R30,R22
    065B 0FE8      ADD	R30,R24
    065C 1FF9      ADC	R31,R25
    065D 91E4      LPM	R30,0(Z)
    065E 93E0011E  STS	dipdata,R30
(0566)    			   			ar=(tr&0xf0)>>4;
    0660 01B5      MOVW	R22,R10
    0661 7F60      ANDI	R22,0xF0
    0662 7070      ANDI	R23,0
    0663 9576      LSR	R23
    0664 9567      ROR	R22
    0665 9576      LSR	R23
    0666 9567      ROR	R22
    0667 9576      LSR	R23
    0668 9567      ROR	R22
    0669 9576      LSR	R23
    066A 9567      ROR	R22
(0567)    			   			dipdata[1]=diptable[ar];
    066B 01FB      MOVW	R30,R22
    066C 0FE8      ADD	R30,R24
    066D 1FF9      ADC	R31,R25
    066E 91E4      LPM	R30,0(Z)
    066F 93E0011F  STS	dipdata+1,R30
(0568)    			   			ar=(tr&0x0f);
    0671 01B5      MOVW	R22,R10
    0672 706F      ANDI	R22,0xF
    0673 7070      ANDI	R23,0
(0569)    			   			dipdata[2]=diptable[ar];
    0674 01FB      MOVW	R30,R22
    0675 0FE8      ADD	R30,R24
    0676 1FF9      ADC	R31,R25
    0677 91E4      LPM	R30,0(Z)
    0678 93E00120  STS	dipdata+2,R30
(0570) 						dipdata[1]|=0x80;
    067A 9180011F  LDS	R24,dipdata+1
    067C 6880      ORI	R24,0x80
    067D 9380011F  STS	dipdata+1,R24
(0571) 						dipdata[2]&=~0x80;
    067F 2F8E      MOV	R24,R30
    0680 778F      ANDI	R24,0x7F
    0681 93800120  STS	dipdata+2,R24
(0572) 						dipdata[0]&=~0x80;
    0683 9180011E  LDS	R24,dipdata
    0685 778F      ANDI	R24,0x7F
    0686 9380011E  STS	dipdata,R24
(0573) 						}
(0574) 						}
    0688 C005      RJMP	0x068E
(0575) 						else flagh |=BIT(1);
    0689 91800103  LDS	R24,flagh
    068B 6082      ORI	R24,2
    068C 93800103  STS	flagh,R24
(0576) 					dipcount=3;
    068E E083      LDI	R24,3
    068F 9380010C  STS	dipcount,R24
(0577) 					break;
    0691 C067      RJMP	0x06F9
(0578) 		   case 3:	if((datas[2]!=0)||(datas[3]!=0)) //没有数据不替换显示
    0692 90200115  LDS	R2,datas+2
    0694 2022      TST	R2
    0695 F429      BNE	0x069B
    0696 90200116  LDS	R2,datas+3
    0698 2022      TST	R2
    0699 F409      BNE	0x069B
    069A C056      RJMP	0x06F1
(0579) 		   				{
(0580) 						data[0]=datas[2];
    069B 90200115  LDS	R2,datas+2
    069D 9220011B  STS	data,R2
(0581)    			   			data[1]=datas[3];
    069F 90200116  LDS	R2,datas+3
    06A1 9220011C  STS	data+1,R2
(0582) 						ar=code_comp(); //对照地址
    06A3 DA63      RCALL	_code_comp
    06A4 2F60      MOV	R22,R16
    06A5 2777      CLR	R23
(0583) 						if(ar<100)
    06A6 3664      CPI	R22,0x64
    06A7 E0E0      LDI	R30,0
    06A8 077E      CPC	R23,R30
    06A9 F008      BCS	0x06AB
    06AA C04B      RJMP	0x06F6
(0584) 						{
(0585) 			   			j=(ar*4)+2;
    06AB E004      LDI	R16,4
    06AC E010      LDI	R17,0
    06AD 019B      MOVW	R18,R22
    06AE D3AE      RCALL	empy16s
    06AF 01C8      MOVW	R24,R16
    06B0 9602      ADIW	R24,2
    06B1 93800135  STS	j,R24
(0586)    			   			ar=EEPROM_read(j);
    06B3 2F08      MOV	R16,R24
    06B4 D071      RCALL	_EEPROM_read
    06B5 2F60      MOV	R22,R16
    06B6 2777      CLR	R23
(0587)    			   			j++;
    06B7 91800135  LDS	R24,j
    06B9 5F8F      SUBI	R24,0xFF
    06BA 93800135  STS	j,R24
(0588)    			   			tr=EEPROM_read(j);
    06BC 2F08      MOV	R16,R24
    06BD D068      RCALL	_EEPROM_read
    06BE 2EA0      MOV	R10,R16
    06BF 24BB      CLR	R11
(0589)    			   			dipdata[0]=diptable[ar];
    06C0 E386      LDI	R24,0x36
    06C1 E090      LDI	R25,0
    06C2 01FB      MOVW	R30,R22
    06C3 0FE8      ADD	R30,R24
    06C4 1FF9      ADC	R31,R25
    06C5 91E4      LPM	R30,0(Z)
    06C6 93E0011E  STS	dipdata,R30
(0590)    			   			ar=(tr&0xf0)>>4;
    06C8 01B5      MOVW	R22,R10
    06C9 7F60      ANDI	R22,0xF0
    06CA 7070      ANDI	R23,0
    06CB 9576      LSR	R23
    06CC 9567      ROR	R22
    06CD 9576      LSR	R23
    06CE 9567      ROR	R22
    06CF 9576      LSR	R23
    06D0 9567      ROR	R22
    06D1 9576      LSR	R23
    06D2 9567      ROR	R22
(0591)    			   			dipdata[1]=diptable[ar];
    06D3 01FB      MOVW	R30,R22
    06D4 0FE8      ADD	R30,R24
    06D5 1FF9      ADC	R31,R25
    06D6 91E4      LPM	R30,0(Z)
    06D7 93E0011F  STS	dipdata+1,R30
(0592)    			   			ar=(tr&0x0f);
    06D9 01B5      MOVW	R22,R10
    06DA 706F      ANDI	R22,0xF
    06DB 7070      ANDI	R23,0
(0593)    			   			dipdata[2]=diptable[ar];
    06DC 01FB      MOVW	R30,R22
    06DD 0FE8      ADD	R30,R24
    06DE 1FF9      ADC	R31,R25
    06DF 91E4      LPM	R30,0(Z)
    06E0 93E00120  STS	dipdata+2,R30
(0594) 						dipdata[2]|=0x80;
    06E2 2F8E      MOV	R24,R30
    06E3 6880      ORI	R24,0x80
    06E4 93800120  STS	dipdata+2,R24
(0595) 						dipdata[1]&=~0x80;
    06E6 9180011F  LDS	R24,dipdata+1
    06E8 778F      ANDI	R24,0x7F
    06E9 9380011F  STS	dipdata+1,R24
(0596) 						dipdata[0]&=~0x80;
    06EB 9180011E  LDS	R24,dipdata
    06ED 778F      ANDI	R24,0x7F
    06EE 9380011E  STS	dipdata,R24
(0597) 						}
(0598) 						}
    06F0 C005      RJMP	0x06F6
(0599) 						else flagh |=BIT(1);
    06F1 91800103  LDS	R24,flagh
    06F3 6082      ORI	R24,2
    06F4 93800103  STS	flagh,R24
(0600) 					dipcount=1;
    06F6 E081      LDI	R24,1
    06F7 9380010C  STS	dipcount,R24
    06F9 CD7F      RJMP	0x0479
    06FA 9508      RET
FILE: E:\abol\file\EMD\programme\delay.c
(0001) 
(0002) /********************************************************/
(0003) /*         			ABOL      			  				*/
(0004) /*                868MHZ数码管显示接收器   				*/
(0005) /*     作者:于朝晖     2008-5-24 9:30:00  				*/
(0006) /*     目标MCU:MEGA16  晶振:INT RC 8MHZ  				*/
(0007) /* 文件名称:main.c  主函数								*/
(0008) /* 编译:ICC-AVR application builder					*/
(0009) /* 当前版本: 1.0										*/
(0010) /* 修改日期: 2008.5.24									*/
(0011) /********************************************************/
(0012) 
(0013) 
(0014) #include <iom88v.h>
(0015) #include <macros.h>
(0016) #include "delay.h"
(0017) #define xtal 8 
(0018) 
(0019) /*		微秒级延时程序	*/	
(0020) void del(int time)
(0021) 	 {     
(0022)   	  do
(0023) 	  	{
(0024) 		 time--;
_del:
  time                 --> R16
    06FB 5001      SUBI	R16,1
    06FC 4010      SBCI	R17,0
(0025) 		}	
(0026)   	  while (time>1);
    06FD E081      LDI	R24,1
    06FE E090      LDI	R25,0
    06FF 1780      CP	R24,R16
    0700 0791      CPC	R25,R17
    0701 F3CC      BLT	0x06FB
    0702 9508      RET
(0027) 	 }
(0028) 	 
(0029) /*	   毫秒级延时程序   	*/	 
(0030) void delay_1ms(void)
(0031) { unsigned int i1;
(0032)  for(i1=1;i1<(unsigned int)(xtal*143-2);i1++)
_delay_1ms:
  i1                   --> R16
    0703 E001      LDI	R16,1
    0704 E010      LDI	R17,0
    0705 C002      RJMP	0x0708
    0706 5F0F      SUBI	R16,0xFF
    0707 4F1F      SBCI	R17,0xFF
    0708 3706      CPI	R16,0x76
    0709 E0E4      LDI	R30,4
    070A 071E      CPC	R17,R30
    070B F3D0      BCS	0x0706
    070C 9508      RET
_delay:
  i2                   --> R20
  n                    --> R22
    070D D36B      RCALL	push_gset2
    070E 01B8      MOVW	R22,R16
(0033)     ;
(0034) }
(0035) 
(0036) void delay(unsigned int n)
(0037) {
(0038)  unsigned int i2=0;
    070F 2744      CLR	R20
    0710 2755      CLR	R21
    0711 C004      RJMP	0x0716
(0039)    while(i2<n)
(0040)    {delay_1ms();
    0712 DFF0      RCALL	_delay_1ms
(0041)     i2++; WDR();
    0713 5F4F      SUBI	R20,0xFF
    0714 4F5F      SBCI	R21,0xFF
    0715 95A8      WDR
    0716 1746      CP	R20,R22
    0717 0757      CPC	R21,R23
    0718 F3C8      BCS	0x0712
    0719 D353      RCALL	pop_gset2
    071A 9508      RET
FILE: E:\abol\file\EMD\programme\eeprom.c
(0001) 
(0002) /********************************************************/
(0003) /*         			ABOL      			  				*/
(0004) /*                868MHZ数码管显示接收器   				*/
(0005) /*     作者:于朝晖     2008-5-24 9:30:00  				*/
(0006) /*     目标MCU:MEGA16  晶振:INT RC 8MHZ  				*/
(0007) /* 文件名称:main.c  主函数								*/
(0008) /* 编译:ICC-AVR application builder					*/
(0009) /* 当前版本: 1.0										*/
(0010) /* 修改日期: 2008.5.24									*/
(0011) /********************************************************/
(0012) 
(0013) 
(0014) #include <iom88v.h>
(0015) #include <macros.h>
(0016) #include "eeprom.h"
(0017) 
(0018) 
(0019) 
(0020) /*		EEPROM 写入	*/	
(0021) void EEPROM_write(unsigned char uiaddress,unsigned char ucdata)
(0022) {
(0023)  WDR();
_EEPROM_write:
  ucdata               --> R18
  uiaddress            --> R16
    071B 95A8      WDR
(0024)  while(EECR&(1<<EEWE)); /*等待上一次写操作结束*/
    071C 99F9      SBIC	0x1F,1
    071D CFFE      RJMP	0x071C
(0025)  EEAR=uiaddress; /*设置地址寄存

⌨️ 快捷键说明

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