ad7715.c

来自「实现了51的普通IO口读取AD7715数值的功能」· C语言 代码 · 共 75 行

C
75
字号
#include "at89x52.h"
#include "mytype.h"
#include "ad7715.h"


void WriteADData(uchar write_data)
{
	uchar i;
	for(i=0;i<8;i++)
	{
		 
		if ( (write_data & 0x80)!= 0 ) AD_DIN = 1;   
        else AD_DIN = 0;   
        write_data = write_data << 1;

		AD_SCLK = 1;
		AD_SCLK = 0;
		AD_SCLK = 1;
		
		
	}

}

uint ReadADData(uchar zijie)
{
	uchar i;
	uint ad_data = 0;
	  
	for(i=0;i<zijie*8;i++)
	{
		AD_SCLK = 1;
		AD_SCLK = 0;
		AD_SCLK = 0;
		

		ad_data = ad_data << 1;
		
		if(AD_DOUT) 
			ad_data += 1;

		AD_SCLK = 1;
		
	}
	return ad_data;
}

void InitAD7715(void)
{
	
	WriteADData(0x10);		//设置增益为1;同时设定下次为设置Setregister;
	WriteADData(0x66);		//设置校准为自标定(很重要!),主频率为大于2M,更新频率为20Hz,单极;
	             
				 			//关于很多网站上说的频率必须为2.4576M或1M,本人不能认同,
							//官方网站上提到,大于2M时,CLK应设为1,以便提供足够的电流给芯片工作

}

uint GetADNum(void)
{
	while(AD_DRDY == 1) ;		//等待转换完成;
	
	WriteADData(0x38);	       //,写通讯寄存器,读取更新的数值;
	

	return ReadADData(2);
}


	
		



⌨️ 快捷键说明

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