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

📄 uart.lst

📁 cc1020 串口通讯
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0247 E586      LDI	R24,0x56
    0248 B98C      OUT	0x0C,R24
    0249 9020008C  LDS	R2,xx0
    024B 2628      EOR	R2,R24
(0367) 	UDR=0x56;
    024C 9220008C  STS	xx0,R2
(0368) 	xx0=xx0^0x56;
(0369) 	xx1+=0x56;
(0370)  	while (!(UCSRA&(1<<UDRE)));
    024E 9180008B  LDS	R24,xx1
(0371) 	UDR=0;
(0372) 	xx0=xx0^0x00;
    0250 5A8A      SUBI	R24,0xAA
(0373) 	xx1+=0x00;
(0374) 	while (!(UCSRA&(1<<UDRE)));
    0251 9380008B  STS	xx1,R24
    0253 9B5D      SBIS	0x0B,5
    0254 CFFE      RJMP	0x0253
(0375) 	UDR=0x16;
(0376) 	xx0=xx0^0x16;
    0255 2422      CLR	R2
    0256 B82C      OUT	0x0C,R2
    0257 9020008C  LDS	R2,xx0
(0377) 	xx1+=0x16;
    0259 9220008C  STS	xx0,R2
(0378) 	while (!(UCSRA&(1<<UDRE)));
    025B 9020008B  LDS	R2,xx1
    025D 9220008B  STS	xx1,R2
    025F 9B5D      SBIS	0x0B,5
(0379) 	UDR=xx0;
    0260 CFFE      RJMP	0x025F
(0380) 	while (!(UCSRA&(1<<UDRE)));
(0381) }
(0382) 
    0261 E186      LDI	R24,0x16
    0262 B98C      OUT	0x0C,R24
    0263 9020008C  LDS	R2,xx0
(0383) /* 发送交流电压值 */
(0384) void voltagerepol(void)
    0265 2628      EOR	R2,R24
    0266 9220008C  STS	xx0,R2
    0268 9180008B  LDS	R24,xx1
    026A 5E8A      SUBI	R24,0xEA
    026B 9380008B  STS	xx1,R24
    026D 9B5D      SBIS	0x0B,5
    026E CFFE      RJMP	0x026D
    026F 9020008C  LDS	R2,xx0
    0271 B82C      OUT	0x0C,R2
    0272 9B5D      SBIS	0x0B,5
    0273 CFFE      RJMP	0x0272
(0385) {
(0386)   xx0=0;xx1=0;
(0387) 	UDR=0x55;
(0388) 	xx0=xx0^0x55;
(0389) 	xx1+=0x55;
(0390) 	while (!(UCSRA&(1<<UDRE)));
(0391) 	UDR=0xaa;  
(0392) 	xx0=xx0^0xaa;
(0393) 	xx1+=0xaa;
(0394) 	while (!(UCSRA&(1<<UDRE)));
(0395) 	UDR=addressper;
(0396) 	xx0=xx0^addressper;
(0397) 	xx1+=addressper;
(0398) 	while (!(UCSRA&(1<<UDRE)));
(0399) 	UDR=0x01;
(0400) 	xx0=xx0^0x01;
(0401) 	xx1+=0x01;
(0402)  	while (!(UCSRA&(1<<UDRE)));
(0403) 	UDR=0x03;
    0274 9508      RET
(0404) 	xx0=xx0^0x03;
(0405) 	xx1+=0x03;
(0406) 	while (!(UCSRA&(1<<UDRE)));
_voltagerepol:
    0275 2422      CLR	R2
    0276 9220008C  STS	xx0,R2
(0407) 	for(w1=0;w1<3;w1++)
    0278 9220008B  STS	xx1,R2
    027A E585      LDI	R24,0x55
    027B B98C      OUT	0x0C,R24
    027C 2628      EOR	R2,R24
    027D 9220008C  STS	xx0,R2
(0408) 	{
(0409) 	 	UDR=databak[w1];
    027F 9180008B  LDS	R24,xx1
(0410) 		xx0=xx0^databak[w1];
    0281 5A8B      SUBI	R24,0xAB
    0282 9380008B  STS	xx1,R24
    0284 9B5D      SBIS	0x0B,5
(0411) 		xx1+=databak[w1];
(0412) 		while (!(UCSRA&(1<<UDRE)));
(0413) 	}
(0414) 	UDR=0x16;
(0415) 	xx0=xx0^0x16;
(0416) 	xx1+=0x16;
(0417) 	while (!(UCSRA&(1<<UDRE)));
(0418) 	UDR=xx0;
    0285 CFFE      RJMP	0x0284
    0286 EA8A      LDI	R24,0xAA
    0287 B98C      OUT	0x0C,R24
(0419) 	while (!(UCSRA&(1<<UDRE)));
    0288 2799      CLR	R25
    0289 9020008C  LDS	R2,xx0
(0420) }
    028B 2433      CLR	R3
(0421) 
    028C 2628      EOR	R2,R24
    028D 2639      EOR	R3,R25
(0422) /* 发送交流电流值  */
    028E 9220008C  STS	xx0,R2
(0423) void currentrepol(void)
    0290 9180008B  LDS	R24,xx1
(0424) {
    0292 5586      SUBI	R24,0x56
    0293 9380008B  STS	xx1,R24
(0425)   xx0=0;xx1=0;
    0295 9B5D      SBIS	0x0B,5
(0426) 	UDR=0x55;
    0296 CFFE      RJMP	0x0295
    0297 E180      LDI	R24,0x10
(0427) 	xx0=xx0^0x55;
    0298 B98C      OUT	0x0C,R24
    0299 9020008C  LDS	R2,xx0
(0428) 	xx1+=0x55;
    029B 2628      EOR	R2,R24
    029C 9220008C  STS	xx0,R2
(0429) 	while (!(UCSRA&(1<<UDRE)));
(0430) 	UDR=0xaa;  
    029E 9180008B  LDS	R24,xx1
(0431) 	xx0=xx0^0xaa;
    02A0 5F80      SUBI	R24,0xF0
    02A1 9380008B  STS	xx1,R24
(0432) 	xx1+=0xaa;
(0433) 	while (!(UCSRA&(1<<UDRE)));
    02A3 9B5D      SBIS	0x0B,5
    02A4 CFFE      RJMP	0x02A3
(0434) 	UDR=addressper;
(0435) 	xx0=xx0^addressper;
    02A5 E081      LDI	R24,1
    02A6 B98C      OUT	0x0C,R24
    02A7 9020008C  LDS	R2,xx0
(0436) 	xx1+=addressper;
(0437) 	while (!(UCSRA&(1<<UDRE)));
(0438) 	UDR=0x02;
(0439) 	xx0=xx0^0x02;
(0440) 	xx1+=0x02;
    02A9 2628      EOR	R2,R24
(0441)  	while (!(UCSRA&(1<<UDRE)));
    02AA 9220008C  STS	xx0,R2
(0442) 	UDR=0x03;
    02AC 9180008B  LDS	R24,xx1
(0443) 	xx0=xx0^0x03;
    02AE 5F8F      SUBI	R24,0xFF
    02AF 9380008B  STS	xx1,R24
(0444) 	xx1+=0x03;
    02B1 9B5D      SBIS	0x0B,5
(0445) 	while (!(UCSRA&(1<<UDRE)));
    02B2 CFFE      RJMP	0x02B1
    02B3 E083      LDI	R24,3
    02B4 B98C      OUT	0x0C,R24
(0446) 	for(w1=0;w1<3;w1++)
(0447) 	{
(0448) 	 	UDR=databak[w1];
(0449) 		xx0=xx0^databak[w1];
(0450) 		xx1+=databak[w1];
(0451) 		while (!(UCSRA&(1<<UDRE)));
    02B5 9020008C  LDS	R2,xx0
    02B7 2628      EOR	R2,R24
    02B8 9220008C  STS	xx0,R2
(0452) 	}
    02BA 9180008B  LDS	R24,xx1
(0453) 	UDR=0x16;
(0454) 	xx0=xx0^0x16;
(0455) 	xx1+=0x16;
    02BC 5F8D      SUBI	R24,0xFD
    02BD 9380008B  STS	xx1,R24
(0456) 	while (!(UCSRA&(1<<UDRE)));
    02BF 9B5D      SBIS	0x0B,5
(0457) 	UDR=xx0;
(0458) 	while (!(UCSRA&(1<<UDRE)));
(0459) }
    02C0 CFFE      RJMP	0x02BF
    02C1 2422      CLR	R2
(0460) 
    02C2 92200085  STS	w1,R2
(0461) 
(0462) 
(0463) unsigned char ReadFromCC1020Register(unsigned char addr)
    02C4 C026      RJMP	0x02EB
    02C5 E882      LDI	R24,0x82
(0464) {
    02C6 E090      LDI	R25,0
    02C7 91E00085  LDS	R30,w1
(0465) 
(0466) 	unsigned char itmp;
(0467) 	unsigned char tmp;
    02C9 27FF      CLR	R31
(0468) //	P2MDOUT = 0xE0;
    02CA 0FE8      ADD	R30,R24
    02CB 1FF9      ADC	R31,R25
(0469) 		DDRD  = 0x30;
    02CC 8020      LDD	R2,Z+0
    02CD B82C      OUT	0x0C,R2
    02CE 91E00085  LDS	R30,w1
(0470) 		DDRB  = 0X03;
    02D0 27FF      CLR	R31
    02D1 0FE8      ADD	R30,R24
    02D2 1FF9      ADC	R31,R25
    02D3 8020      LDD	R2,Z+0
(0471) 	delay(10);
    02D4 9030008C  LDS	R3,xx0
(0472) 	PSEL_0;
    02D6 2432      EOR	R3,R2
    02D7 9230008C  STS	xx0,R3
(0473) 	itmp = (addr&0x7f) <<1 ;
    02D9 91E00085  LDS	R30,w1
    02DB 27FF      CLR	R31
    02DC 0FE8      ADD	R30,R24
(0474) 	for(tmp=8;tmp>0;tmp--){
    02DD 1FF9      ADC	R31,R25
    02DE 8020      LDD	R2,Z+0
    02DF 9030008B  LDS	R3,xx1
    02E1 0C32      ADD	R3,R2
(0475) 		Pclk_0;
    02E2 9230008B  STS	xx1,R3
(0476) 		if((itmp&0x80) == 0x80) PData_1;
    02E4 9B5D      SBIS	0x0B,5
    02E5 CFFE      RJMP	0x02E4
    02E6 91800085  LDS	R24,w1
(0477) 		else         			PData_0;
    02E8 5F8F      SUBI	R24,0xFF
    02E9 93800085  STS	w1,R24
(0478) 		delay(10);
(0479) 		Pclk_1;
(0480) 		delay(10);
(0481) 		itmp = itmp<<1;
(0482) 	}
(0483) 	itmp = 0;
    02EB 91800085  LDS	R24,w1
    02ED 3083      CPI	R24,3
    02EE F2B0      BCS	0x02C5
(0484) //	P2MDOUT = 0xA0;
    02EF E186      LDI	R24,0x16
    02F0 B98C      OUT	0x0C,R24
(0485) 	
(0486) 	PData_1;
(0487) 	DDRB  = 0X02;
    02F1 9020008C  LDS	R2,xx0
(0488) 	for(tmp=8;tmp>0;tmp--){
    02F3 2628      EOR	R2,R24
    02F4 9220008C  STS	xx0,R2
(0489) 		itmp =itmp <<1;
(0490) 		Pclk_0;
(0491) 		delay(10);
    02F6 9180008B  LDS	R24,xx1
(0492) 		if(PData == 1) itmp= itmp+1;
    02F8 5E8A      SUBI	R24,0xEA
(0493) 		Pclk_1;
(0494) 		delay(10);
(0495) 	}
    02F9 9380008B  STS	xx1,R24
(0496) 	Pclk_0;
    02FB 9B5D      SBIS	0x0B,5
    02FC CFFE      RJMP	0x02FB
(0497) 	PSEL_1;
(0498) //	P2MDOUT = 0xA0;
(0499) 	DDRD  = 0x30;
    02FD 9020008C  LDS	R2,xx0
(0500) 	DDRB  = 0X03;
    02FF B82C      OUT	0x0C,R2
    0300 9B5D      SBIS	0x0B,5
(0501) 	return(itmp);
(0502) }		
(0503) 
    0301 CFFE      RJMP	0x0300
    0302 9508      RET
(0504) 
_currentrepol:
    0303 2422      CLR	R2
    0304 9220008C  STS	xx0,R2
    0306 9220008B  STS	xx1,R2
(0505) /****************************************************************************/
(0506) /*  This routine writes to a single CC1020 register                         */
    0308 E585      LDI	R24,0x55
    0309 B98C      OUT	0x0C,R24
    030A 2628      EOR	R2,R24
    030B 9220008C  STS	xx0,R2
    030D 9180008B  LDS	R24,xx1
    030F 5A8B      SUBI	R24,0xAB
(0507) /****************************************************************************/
    0310 9380008B  STS	xx1,R24
    0312 9B5D      SBIS	0x0B,5
    0313 CFFE      RJMP	0x0312
    0314 EA8A      LDI	R24,0xAA
    0315 B98C      OUT	0x0C,R24
    0316 2799      CLR	R25
    0317 9020008C  LDS	R2,xx0
    0319 2433      CLR	R3
    031A 2628      EOR	R2,R24
(0508) void WriteToCC1020Register(unsigned char addr, unsigned char value)
    031B 2639      EOR	R3,R25
    031C 9220008C  STS	xx0,R2
    031E 9180008B  LDS	R24,xx1
    0320 5586      SUBI	R24,0x56
    0321 9380008B  STS	xx1,R24
    0323 9B5D      SBIS	0x0B,5
    0324 CFFE      RJMP	0x0323
    0325 E180      LDI	R24,0x10
(0509) {
    0326 B98C      OUT	0x0C,R24
    0327 9020008C  LDS	R2,xx0
    0329 2628      EOR	R2,R24
    032A 9220008C  STS	xx0,R2
    032C 9180008B  LDS	R24,xx1
    032E 5F80      SUBI	R24,0xF0
    032F 9380008B  STS	xx1,R24
(0510) 	unsigned char itmp = 0;
(0511) 	unsigned char tmp=0;;
    0331 9B5D      SBIS	0x0B,5
    0332 CFFE      RJMP	0x0331
(0512) //	P2MDOUT = 0xE0;
    0333 E082      LDI	R24,2
    0334 B98C      OUT	0x0C,R24
    0335 9020008C  LDS	R2,xx0
    0337 2628      EOR	R2,R24
(0513) 		DDRD  = 0x30;
    0338 9220008C  STS	xx0,R2
    033A 9180008B  LDS	R24,xx1
    033C 5F8E      SUBI	R24,0xFE
(0514) 		DDRB  = 0X03;
    033D 9380008B  STS	xx1,R24
(0515) 	delay(10);
    033F 9B5D      SBIS	0x0B,5
    0340 CFFE      RJMP	0x033F
    0341 E083      LDI	R24,3
(0516) 	PSEL_0;
    0342 B98C      OUT	0x0C,R24
    0343 9020008C  LDS	R2,xx0
(0517) 	itmp = (addr&0x7f) <<1;
(0518) 	itmp = itmp+1;
(0519) 	for(tmp=8;tmp>0;tmp--){
(0520) 		Pclk_0;
(0521) 		if((itmp&0x80) == 0x80) PData_1;
(0522) 		else         			PData_0;
(0523) 		delay(10);
    0345 2628      EOR	R2,R24
    0346 9220008C  STS	xx0,R2
    0348 9180008B  LDS	R24,xx1
(0524) 		Pclk_1;
    034A 5F8D      SUBI	R24,0xFD
    034B 9380008B  STS	xx1,R24
(0525) 		delay(10);
(0526) 		itmp = itmp<<1;
(0527) 	}
    034D 9B5D      SBIS	0x0B,5
(0528) 
    034E CFFE      RJMP	0x034D
    034F 2422      CLR	R2
(0529) 	itmp = value;
(0530) 	for(tmp=8;tmp>0;tmp--){
(0531) 		Pclk_0;
    0350 92200085  STS	w1,R2
(0532) 		if((itmp&0x80) == 0x80) PData_1;
    0352 C026      RJMP	0x0379
    0353 E882      LDI	R24,0x82
(0533) 		else         			PData_0;
(0534) 		delay(10);
(0535) 		Pclk_1;
    0354 E090      LDI	R25,0
    0355 91E00085  LDS	R30,w1
(0536) 		delay(10);
    0357 27FF      CLR	R31
(0537) 		itmp = itmp<<1;
(0538) 	}
(0539) 	Pclk_0;
    0358 0FE8      ADD	R30,R24
    0359 1FF9      ADC	R31,R25
(0540) 	PSEL_1;
    035A 8020      LDD	R2,Z+0
    035B B82C      OUT	0x0C,R2
(0541) //	P2MDOUT = 0xA0;
(0542) 		DDRD  = 0x30;
(0543) 		DDRB  = 0X03;
    035C 91E00085  LDS	R30,w1
(0544) } 
    035E 27FF      CLR	R31
    035F 0FE8      ADD	R30,R24
    0360 1FF9      ADC	R31,R25
    0361 8020      LDD	R2,Z+0
(0545)  
(0546)  void SetupAGC(void)
    0362 9030008C  LDS	R3,xx0
    0364 2432      EOR	R3,R2
    0365 9230008C  STS	xx0,R3
    0367 91E00085  LDS	R30,w1
    0369 27FF      CLR	R31
    036A 0FE8      ADD	R30,R24
(0547) {                                        
    036B 1FF9      ADC	R31,R25
    036C 8020      LDD	R2,Z+0
    036D 9030008B  LDS	R3,xx1
    036F 0C32      ADD	R3,R2
    0370 9230008B  STS	xx1,R3
    0372 9B5D      SBIS	0x0B,5
    0373 CFFE      RJMP	0x0372
    0374 91800085  LDS	R24,w1
(0548)   // int RSSI1,RSSI2;
    0376 5F8F      SUBI	R24,0xFF
    0377 93800085  STS	w1,R24
    0379 91800085  LDS	R24,w1
    037B 3083      CPI	R24,3
    037C F2B0      BCS	0x0353
    037D E186      LDI	R24,0x16
    037E B98C      OUT	0x0C,R24
    037F 9020008C  LDS	R2,xx0
(0549)   // unsigned char vga;
    0381 2628      EOR	R2,R24
    0382 9220008C  STS	xx0,R2
    0384 9180008B  LDS	R24,xx1
    0386 5E8A      SUBI	R24,0xEA

⌨️ 快捷键说明

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