📄 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 + -