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

📄 cs5460.c

📁 C51编写的ADC芯片CS5460源程序
💻 C
字号:
//-------------存在的问题------------------------------------------

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//以下是cs5460的管脚定义:
sbit reset_5460=P1^0;
sbit sdo_5460=P1^1;
sbit sclk_5460=P1^2;
sbit sdi_5460=P1^3;
long buf_rd[3]={0,0,0};
//以下是cs5460的函数声明
void cmd_5460(uchar cmd);
long read_5460(void);
void delay_nms(uint n);
void main(void)
{
	char k;
	cmd_5460(0xff);
	cmd_5460(0xff);
	cmd_5460(0xff);
	cmd_5460(0xfe);//以上四条命令的功能:初始化5460的串口
	cmd_5460(0xe8);//启动5460的连续转换
	delay_nms(5000);
	//cmd_5460(0x0e);//读取瞬时电流寄存器
	k=0;
	while(k<3)
	{
		cmd_5460(0x0e);//读取瞬时电流寄存器
										//注意:每次读取AD前都要先写入上述命令
										//因为读操作完成之后,5460的串口恢复
										//到命令模式。
		buf_rd[k]=read_5460();
		delay_nms(1000);
		k++;
	}
	//read_5460();
	_nop_();
}



/*************************************************
原型:void cmd_5460(uchar cmd)
行参:uchar cmd
返回值:无
功能:向cs5460中写入8位的命令
*************************************************/
void cmd_5460(uchar cmd)
{
	char i=8;
	while(i>0)
	{
		sclk_5460=0;
	  if(cmd>=0x80)
		   sdi_5460=1;
	  else
		   sdi_5460=0;
	 	sclk_5460=1;
	 	i--;
	 	cmd<<=1;
	}
}
/******************************
原型:void delay_nms(uint n)
行参:uint n
返回值:无
功能:延时n ms
*****************************/
void delay_nms(uint n)
{
	uchar i;
	for(;n>0;n--)
	{
		for(i=125;i>0;i--)
		{
			;
		}
	}
}
/******************************
原型:long read_5460(void)
行参:无
返回值:返回一个long型数据
功能:从5460中读取24位的AD数据。仅仅是读数据,
			并没有包含串口的初始化和相关的命令
注意:读操作的时序,很古怪,应注意!
*****************************/
long read_5460(void)
{
	char i;
	char j=0;
	long temp;
	temp=0;
	while(j<3)
	{
		i=7;
		sdi_5460=1;
		while(i>0)
		{
			sclk_5460=0;
			temp<<=1;
			sclk_5460=1;
			_nop_();
			if(sdo_5460==1)
				temp|=0x00000001;
			i--;
		}
		sdi_5460=0;
		sclk_5460=0;
		temp<<=1;
		sclk_5460=1;
		_nop_();
		if(sdo_5460==1)
			temp|=0x00000001;
		j++;
	}
	return(temp);
}

⌨️ 快捷键说明

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