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

📄 measure.c

📁 基于CS5460A和AT89S52的单相电功率测量仪的设计
💻 C
字号:
#include<CS5460A.h>
#include<ZLG7289.h>

unsigned char buf[5];


void print(unsigned long int CData,bit sign)
{
	unsigned char output[8];
	unsigned char i;
	unsigned long int x;
	x=CData;
	for(i=0;i<7;i++)
	{
		output[i]=x%10;
		x=x/10;
	}
	for(i=0;i<3;i++)
	{
		IC7289_down(0,i,0,output[i+4]);
	}
	if(sign)
	{
		IC7289_down(2,3,0,0x01);	
	}
	else
	{
		IC7289_down(0,3,0,0);
	}
	for(i=0;i<4;i++)
	{
		IC7289_down(0,i+4,0,output[i]);
	}
	IC7289_down(0,7,1,output[3]);
	
}




void main()
{
	bit sign;
	unsigned int x,Energy;
	float P;
	unsigned long int display;

	IC7289_CS=1;
	IC7289_CLK=0;
	IC7289_cmd(0xa4);
	for(x=0;x<8;x++)
	{
		IC7289_down(0,x,0,0);		
	}	
	CS5460_RESET=0;
	delay();
	CS5460_RESET=1;

	buf[0]=0xe8;
	CS5460A_cmd(buf,1);//开始转换
	while(1)
	{
		x=ReadCS5460A(0x1e);//read the status register
		if(x&0x8000)
		{
			
			Energy=ReadCS5460A(0x14);
			
			if(Energy&0x8000)
			{
				Energy=0xffff-Energy;
				sign=1;
			}
			Energy=Energy-10;
		//	print(Energy,1);
		//	delay();
			sign=0;		
			P=Energy/10;//功率计算
			display=P*625;
			print(display,sign);	

			buf[0]=0x5e;
			buf[1]=0x80;
			buf[2]=0x00;
			buf[3]=0x00;
			CS5460A_cmd(buf,4);//clear DRAY;
			
		}
	
	}
}

⌨️ 快捷键说明

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