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

📄 cs5460a.h

📁 基于CS5460A和AT89S52的单相电功率测量仪的设计
💻 H
字号:
#ifndef CS5460A_H
#define CS5460A_H
#include<reg52.h>
#include<delay.h>
//定义IO
/*P1*/
sbit CS5460_SDI  =  P1^3;
sbit CS5460_SDO  =  P1^1;  
sbit CS5460_SCLK =  P1^2;
sbit CS5460_CS   =  P1^0;
sbit CS5460_INT  =  P1^4;
sbit CS5460_RESET  = P1^5;
//CS5460A指令集
//初始化串口


//
void WriteCS5460A(unsigned char CData)	//write CS5460A;
{
	unsigned i;		
	CS5460_SCLK=0;
	for(i=0;i<8;i++)
	{
		CS5460_SDI=((CData&0x80)==0?0:1);
		CS5460_SCLK=0;
		CS5460_SCLK=1;
		CData+=CData;
	}
}
void CS5460A_cmd(unsigned char * p,unsigned char num)
{	
	bit sv;
	unsigned char i;
	sv=EA;
	EA=0;
	CS5460_CS=0;
	delay_us(5);
	for(i=0;i<num;i++)
	{
		WriteCS5460A(p[i]);
	}
	delay_us(5);
	CS5460_CS=1;
	EA=sv;
}

unsigned  int ReadCS5460A(unsigned char CData)//read from CS5460A;
{
	bit sv;
	unsigned char i,j;
	unsigned long int DData=0;
	sv=EA;
	EA=0;	
	CS5460_CS=0;
	WriteCS5460A(CData);
	for(j=0;j<2;j++)
	{
		DData+=DData;
		for(i=0;i<7;i++)
		{
			CS5460_SDI=1;
			CS5460_SCLK=0;
			CS5460_SCLK=1;
			if(CS5460_SDO==1)
			{
				DData=DData+1;
			}
			DData+=DData;
		}
		CS5460_SDI=0;
		CS5460_SCLK=0;
		CS5460_SCLK=1;
		if(CS5460_SDO==1)
		{
			DData=DData+1;
		}
	}
	CS5460_CS=1;
	EA=sv;
	return DData;
}

#endif

⌨️ 快捷键说明

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