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

📄 7022b.lss

📁 7022b 操作代码
💻 LSS
📖 第 1 页 / 共 3 页
字号:
			else
				Data1=Data1&0x7fffff;
 1ce:	8f 77       	andi	r24, 0x7F	; 127
 1d0:	90 70       	andi	r25, 0x00	; 0
			Data1=Data1>>1;
 1d2:	95 95       	asr	r25
 1d4:	87 95       	ror	r24
 1d6:	77 95       	ror	r23
 1d8:	67 95       	ror	r22
			SCLK_0;		
 1da:	c1 98       	cbi	0x18, 1	; 24
 1dc:	21 50       	subi	r18, 0x01	; 1
 1de:	91 f7       	brne	.-28     	; 0x1c4
		}
		CS_1;
 1e0:	c0 9a       	sbi	0x18, 0	; 24
 1e2:	08 95       	ret

000001e4 <WriteSpi>:
		return(Data1);
	}
	
void	WriteSpi(char Com2,long Data2)  //SPI写操作
	{	char Y_N1,n2,m2;
 1e4:	98 2f       	mov	r25, r24
		long Y_N2;
		CS_1;
 1e6:	c0 9a       	sbi	0x18, 0	; 24
		SCLK_0;
 1e8:	c1 98       	cbi	0x18, 1	; 24
		CS_0;
 1ea:	c0 98       	cbi	0x18, 0	; 24
		for(n2=8;n2>0;n2--)
 1ec:	28 e0       	ldi	r18, 0x08	; 8
		{
			SCLK_1;
 1ee:	c1 9a       	sbi	0x18, 1	; 24
			Y_N1=Com2&0x01;
 1f0:	89 2f       	mov	r24, r25
 1f2:	81 70       	andi	r24, 0x01	; 1
			Com2=Com2>>1;
 1f4:	96 95       	lsr	r25
			if(Y_N1)	
 1f6:	88 23       	and	r24, r24
 1f8:	11 f0       	breq	.+4      	; 0x1fe
				DIN_1;
 1fa:	c2 9a       	sbi	0x18, 2	; 24
 1fc:	01 c0       	rjmp	.+2      	; 0x200
			else   			    
				DIN_0;
 1fe:	c2 98       	cbi	0x18, 2	; 24
			SCLK_0;
 200:	c1 98       	cbi	0x18, 1	; 24
 202:	21 50       	subi	r18, 0x01	; 1
 204:	a1 f7       	brne	.-24     	; 0x1ee
		}
		for(m2=24;m2>0;m2--)
 206:	28 e1       	ldi	r18, 0x18	; 24
		{
			SCLK_1;
 208:	c1 9a       	sbi	0x18, 1	; 24
			Y_N2=Data2&0x000001;
 20a:	db 01       	movw	r26, r22
 20c:	ca 01       	movw	r24, r20
 20e:	81 70       	andi	r24, 0x01	; 1
 210:	90 70       	andi	r25, 0x00	; 0
 212:	a0 70       	andi	r26, 0x00	; 0
 214:	b0 70       	andi	r27, 0x00	; 0
			Data2=Data2>>1;
 216:	75 95       	asr	r23
 218:	67 95       	ror	r22
 21a:	57 95       	ror	r21
 21c:	47 95       	ror	r20
			if(Y_N2)	
 21e:	00 97       	sbiw	r24, 0x00	; 0
 220:	a1 05       	cpc	r26, r1
 222:	b1 05       	cpc	r27, r1
 224:	11 f0       	breq	.+4      	; 0x22a
				DIN_1;
 226:	c2 9a       	sbi	0x18, 2	; 24
 228:	01 c0       	rjmp	.+2      	; 0x22c
			else   			    
				DIN_0;			
 22a:	c2 98       	cbi	0x18, 2	; 24
			SCLK_0;
 22c:	c1 98       	cbi	0x18, 1	; 24
 22e:	21 50       	subi	r18, 0x01	; 1
 230:	59 f7       	brne	.-42     	; 0x208
		}
		CS_1;	
 232:	c0 9a       	sbi	0x18, 0	; 24
 234:	08 95       	ret

00000236 <jisuan>:
	}

	void  main(void)
	{   
		char i;
		DDRB=0xFB;                //11111011
		for(i=0;i<=2;i++)
		{
		switch(i)
			{
			case 0:
					WriteSpi(0x2F,0x000000); 
					jisuan(0);
					break;
			case 1:
					WriteSpi(0x2F,0x001228);
					WriteSpi(0x2D,0x007812);  //基波选择
					WriteSpi(0x3C,0x0055AA);
					jisuan(1);
					break;
			case 2:	
					WriteSpi(0x2F,0x001228);
					WriteSpi(0x2D,0x007812);  //谐波选择
					WriteSpi(0x3C,0x000000);
					jisuan(2);
					break;
			default:	;
			}
		}	
	}
	
	void jisuan(char num)
	{	int a1,a2,a3,a4,a5,b1,b2,b3,b4,b5,c1,c2,c3,c4,c5,d;
 236:	ff 92       	push	r15
 238:	0f 93       	push	r16
 23a:	1f 93       	push	r17
 23c:	18 2f       	mov	r17, r24
		long t1,t2,t3;
		char v1,i1;
		a1=Power_signal(ReadSpi(r_Pa));    //把A相有功功率值放入buffer中,第八位在前,高八位在后
 23e:	81 e0       	ldi	r24, 0x01	; 1
 240:	0e 94 c9 00 	call	0x192
 244:	dc 01       	movw	r26, r24
 246:	cb 01       	movw	r24, r22
 248:	bc 01       	movw	r22, r24
 24a:	cd 01       	movw	r24, r26
 24c:	0e 94 65 00 	call	0xca
 250:	ac 01       	movw	r20, r24
		buffer[0+num*50]=(char)(a1&0x00ff);
 252:	21 2f       	mov	r18, r17
 254:	33 27       	eor	r19, r19
 256:	82 e3       	ldi	r24, 0x32	; 50
 258:	90 e0       	ldi	r25, 0x00	; 0
 25a:	28 9f       	mul	r18, r24
 25c:	80 01       	movw	r16, r0
 25e:	29 9f       	mul	r18, r25
 260:	10 0d       	add	r17, r0
 262:	38 9f       	mul	r19, r24
 264:	10 0d       	add	r17, r0
 266:	11 24       	eor	r1, r1
 268:	0a 56       	subi	r16, 0x6A	; 106
 26a:	1e 4f       	sbci	r17, 0xFE	; 254
 26c:	f8 01       	movw	r30, r16
 26e:	40 83       	st	Z, r20
		buffer[1+num*50]=(char)((a1&0xff00)>>8);
 270:	85 2f       	mov	r24, r21
 272:	99 27       	eor	r25, r25
 274:	81 83       	std	Z+1, r24	; 0x01
		
		b1=Power_signal(ReadSpi(r_Pb));
 276:	82 e0       	ldi	r24, 0x02	; 2
 278:	0e 94 c9 00 	call	0x192
 27c:	dc 01       	movw	r26, r24
 27e:	cb 01       	movw	r24, r22
 280:	bc 01       	movw	r22, r24
 282:	cd 01       	movw	r24, r26
 284:	0e 94 65 00 	call	0xca
		buffer[2+num*50]=(char)(b1&0x00ff);
 288:	f8 01       	movw	r30, r16
 28a:	82 83       	std	Z+2, r24	; 0x02
		buffer[3+num*50]=(char)((b1&0xff00)>>8);
 28c:	89 2f       	mov	r24, r25
 28e:	99 27       	eor	r25, r25
 290:	83 83       	std	Z+3, r24	; 0x03
		
		c1=Power_signal(ReadSpi(r_Pc));
 292:	83 e0       	ldi	r24, 0x03	; 3
 294:	0e 94 c9 00 	call	0x192
 298:	dc 01       	movw	r26, r24
 29a:	cb 01       	movw	r24, r22
 29c:	bc 01       	movw	r22, r24
 29e:	cd 01       	movw	r24, r26
 2a0:	0e 94 65 00 	call	0xca
		buffer[4+num*50]=(char)(c1&0x00ff);
 2a4:	f8 01       	movw	r30, r16
 2a6:	84 83       	std	Z+4, r24	; 0x04
		buffer[5+num*50]=(char)((c1&0xff00)>>8);
 2a8:	89 2f       	mov	r24, r25
 2aa:	99 27       	eor	r25, r25
 2ac:	85 83       	std	Z+5, r24	; 0x05
		
		t1=Power_more(ReadSpi(r_Pt));
 2ae:	84 e0       	ldi	r24, 0x04	; 4
 2b0:	0e 94 c9 00 	call	0x192
 2b4:	dc 01       	movw	r26, r24
 2b6:	cb 01       	movw	r24, r22
 2b8:	bc 01       	movw	r22, r24
 2ba:	cd 01       	movw	r24, r26
 2bc:	0e 94 6e 00 	call	0xdc
 2c0:	dc 01       	movw	r26, r24
 2c2:	cb 01       	movw	r24, r22
		buffer[6+num*50]=(char)(t1&0x0000ff);
 2c4:	f8 01       	movw	r30, r16
 2c6:	86 83       	std	Z+6, r24	; 0x06
		buffer[7+num*50]=(char)((t1&0x00ff00)>>8);
 2c8:	97 83       	std	Z+7, r25	; 0x07
		buffer[8+num*50]=(char)(((t1&0xff0000)>>8)>>8);
 2ca:	a0 87       	std	Z+8, r26	; 0x08
		
		
		a2=Power_signal(ReadSpi(r_Qa));    //把A相无功功率值放入buffer中,第八位在前,高八位在后
 2cc:	85 e0       	ldi	r24, 0x05	; 5
 2ce:	0e 94 c9 00 	call	0x192
 2d2:	dc 01       	movw	r26, r24
 2d4:	cb 01       	movw	r24, r22
 2d6:	bc 01       	movw	r22, r24
 2d8:	cd 01       	movw	r24, r26
 2da:	0e 94 65 00 	call	0xca
		buffer[9+num*50]=(char)(a2&0x00ff);
 2de:	f8 01       	movw	r30, r16
 2e0:	81 87       	std	Z+9, r24	; 0x09
		buffer[10+num*50]=(char)((a2&0xff00)>>8);
 2e2:	89 2f       	mov	r24, r25
 2e4:	99 27       	eor	r25, r25
 2e6:	82 87       	std	Z+10, r24	; 0x0a
		
		b2=Power_signal(ReadSpi(r_Qb));
 2e8:	86 e0       	ldi	r24, 0x06	; 6
 2ea:	0e 94 c9 00 	call	0x192
 2ee:	dc 01       	movw	r26, r24
 2f0:	cb 01       	movw	r24, r22
 2f2:	bc 01       	movw	r22, r24
 2f4:	cd 01       	movw	r24, r26
 2f6:	0e 94 65 00 	call	0xca
		buffer[11+num*50]=(char)(b2&0x00ff);
 2fa:	f8 01       	movw	r30, r16
 2fc:	83 87       	std	Z+11, r24	; 0x0b
		buffer[12+num*50]=(char)((b2&0xff00)>>8);
 2fe:	89 2f       	mov	r24, r25
 300:	99 27       	eor	r25, r25
 302:	84 87       	std	Z+12, r24	; 0x0c
		
		c2=Power_signal(ReadSpi(r_Qc));
 304:	87 e0       	ldi	r24, 0x07	; 7
 306:	0e 94 c9 00 	call	0x192
 30a:	dc 01       	movw	r26, r24
 30c:	cb 01       	movw	r24, r22
 30e:	bc 01       	movw	r22, r24
 310:	cd 01       	movw	r24, r26
 312:	0e 94 65 00 	call	0xca
		buffer[13+num*50]=(char)(c2&0x00ff);
 316:	f8 01       	movw	r30, r16
 318:	85 87       	std	Z+13, r24	; 0x0d
		buffer[14+num*50]=(char)((c2&0xff00)>>8);
 31a:	89 2f       	mov	r24, r25
 31c:	99 27       	eor	r25, r25
 31e:	86 87       	std	Z+14, r24	; 0x0e
		
		t2=Power_more(ReadSpi(r_Qt));
 320:	88 e0       	ldi	r24, 0x08	; 8
 322:	0e 94 c9 00 	call	0x192
 326:	dc 01       	movw	r26, r24
 328:	cb 01       	movw	r24, r22
 32a:	bc 01       	movw	r22, r24
 32c:	cd 01       	movw	r24, r26
 32e:	0e 94 6e 00 	call	0xdc
 332:	dc 01       	movw	r26, r24
 334:	cb 01       	movw	r24, r22
		buffer[15+num*50]=(char)(t2&0x0000ff);
 336:	f8 01       	movw	r30, r16
 338:	87 87       	std	Z+15, r24	; 0x0f
		buffer[16+num*50]=(char)((t2&0x00ff00)>>8);
 33a:	90 8b       	std	Z+16, r25	; 0x10
		buffer[17+num*50]=(char)(((t2&0xff0000)>>8)>>8);
 33c:	a1 8b       	std	Z+17, r26	; 0x11
				
		
		a3=Power_signal(ReadSpi(r_Sa));    //把A相视在功率值放入buffer中,第八位在前,高八位在后
 33e:	89 e0       	ldi	r24, 0x09	; 9
 340:	0e 94 c9 00 	call	0x192
 344:	dc 01       	movw	r26, r24
 346:	cb 01       	movw	r24, r22
 348:	bc 01       	movw	r22, r24
 34a:	cd 01       	movw	r24, r26
 34c:	0e 94 65 00 	call	0xca
		buffer[18+num*50]=(char)(a3&0x00ff);
 350:	f8 01       	movw	r30, r16
 352:	82 8b       	std	Z+18, r24	; 0x12
		buffer[19+num*50]=(char)((a3&0xff00)>>8);
 354:	89 2f       	mov	r24, r25
 356:	99 27       	eor	r25, r25
 358:	83 8b       	std	Z+19, r24	; 0x13
		
		b3=Power_signal(ReadSpi(r_Sb));
 35a:	8a e0       	ldi	r24, 0x0A	; 10
 35c:	0e 94 c9 00 	call	0x192
 360:	dc 01       	movw	r26, r24
 362:	cb 01       	movw	r24, r22
 364:	bc 01       	movw	r22, r24
 366:	cd 01       	movw	r24, r26
 368:	0e 94 65 00 	call	0xca
		buffer[20+num*50]=(char)(b3&0x00ff);
 36c:	f8 01       	movw	r30, r16
 36e:	84 8b       	std	Z+20, r24	; 0x14
		buffer[21+num*50]=(char)((b3&0xff00)>>8);
 370:	89 2f       	mov	r24, r25
 372:	99 27       	eor	r25, r25
 374:	85 8b       	std	Z+21, r24	; 0x15
		
		c3=Power_signal(ReadSpi(r_Sc));
 376:	8b e0       	ldi	r24, 0x0B	; 11
 378:	0e 94 c9 00 	call	0x192

⌨️ 快捷键说明

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