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

📄 cs5460a.c

📁 在STC51上开发的一个电子称程序 KEILUV3环境开发
💻 C
字号:
#include <intrins.h>
#include "hardware.h"
#include "uart.h"
#include "lcd1621.h"
#include "at24c02.h"

#define nop() _nop_()    

uchar xdata xxxz[3];
extern LcdWriteData(uchar add_, uchar da_);

void delay10ms(void) //延时程序,用于复位或者去抖
  {
   unsigned char i,j; 
   for(i=20;i>0;i--) 
   for(j=248;j>0;j--); 
  } 
union weight
	{
	unsigned long ADlong;
	unsigned char ADchar[3];//0低位字节为char[0]往高字节排
	}AD;

void WriteCs5460 (unsigned char ByteNum)
{
	unsigned char i;
	Sclk=0;
	ByteNum=ByteNum*8;
	for (i=0;i<ByteNum;i++)
	{
	AD.ADlong=AD.ADlong<<1;
	Sdi=CY;
	nop();nop();nop();nop();
	Sclk=1;
	nop();nop();nop();nop();
	Sclk=0;
	}
}

ulong ReadCs5460 (unsigned char command_)//读入AD.ADlong
{
	unsigned char i;
	unsigned char j;
	AD.ADlong=0;
	Sclk=0;
	for (i=0;i<8;i++)//写命令,8bit
	{
	command_=command_<<1;
	Sdi=CY;
	nop();nop();nop();nop();
	Sclk=1;
	nop();nop();nop();nop();
	Sclk=0;
	}
	Sdi=1;
	for (j=0;j<24;j++)//读24bit数据
	{
	nop();nop();nop();nop();	
	Sclk=1;
	nop();nop();nop();nop();
	AD.ADlong=AD.ADlong<<1;
	AD.ADlong=AD.ADlong|Sdo;
	Sclk=0;
	}
	AD.ADlong>>=3;
return (AD.ADlong);
}


/*******************CS5460A初始化******************/
 void InitCs5460()
{
	AD_Rst=0;
	delay10ms();//复位不少于10MS
	AD_Rst=1;

	AD.ADchar[0]=0xff;
	AD.ADchar[1]=0xff;
	AD.ADchar[2]=0xff;
	AD.ADchar[3]=0xfe;
	WriteCs5460(4);//三个同步信号,规范串行口
	
	AD.ADchar[0]=0x40;
	AD.ADchar[1]=0x01;//GI=1 电流通道增益=50
	AD.ADchar[2]=0x00;
	AD.ADchar[3]=0x01;//DCLK=MCLK/1,默认分频16,01=一分频
	WriteCs5460(4);

/***************启动*******************/
	AD.ADchar[0]=0xe8;                                                                        
	WriteCs5460(1);
}



⌨️ 快捷键说明

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