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

📄 ad7715.c

📁 实现了51的普通IO口读取AD7715数值的功能
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -