1 / 5
文档名称:

AD7705程序-毕业设计用过.doc

格式:doc   大小:22KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AD7705程序-毕业设计用过.doc

上传人:bdjigr52 2018/8/24 文件大小:22 KB

下载得到文件列表

AD7705程序-毕业设计用过.doc

文档介绍

文档介绍:
****************************************************************************/
#include""
void Reset7705(void) // AD7705通信端口复位
{
unsigned char i;
sclk=1;
for(i=0;i<40;i++) //*多于连续32个 din=1 使串口复位
{
sclk=0;
din =1;
sclk=1;
}
}
void Write(unsigned char dat) //写入寄存器8位数据
{
unsigned char i;
for(i=0;i<8;i++);
{
din=(bit)(dat&0x80);
sclk=1;
sclk=0;
sclk=1;
dat<<=1;
}
din=1; //此语句非常重要,否则试验表明很不稳定
}
//从数据寄存器中读出16位数据
unsigned int Read(void) //低电平拉下t5后出数据
{
unsigned int rtval=0;
unsigned i;

for(i=0;i<16;i++)
{
sclk=0;
rtval<<=1; //i=0时,此操作不妨碍
rtval+=(0x0001&(unsigned int)dout);
sclk=1; //程序执行完后sclk仍为高电平
}
din=1; //为保证不乱写程序,此语句非常重要,否则试验表明很不稳定
return rtval;
}
void Adc7705Init(unsigned char range)
{
range<<=3;
Reset7705(); //复位
//写时钟寄存器
Write(0x20); //0x20:00100000 下一个时钟寄存器;写;正常工作模式;通道AN1
Write(0x07); //0x07:00000111 主时钟打开;晶振2M;不分频;500Hz;
//写设置寄存器
Write(0x10); //0x10:00010000 下一个设置寄存器;写;正常工作模式;通道AN1
Write(0x7e|range); //0x46:01000110 自校准;单极性;接缓冲,允许处理高阻电
//源;非复位;128倍放大
}
//返回一次采样值
unsigned int Adc7705(void)
{
while(drdy==1);
Write(0x38); /*0x38:00111000 下一个16位数据寄存器;读;正常工作模式;通道AIN1*/
return Read();
}

unsigned int AverAdc7705(void)
{
unsigned long rtval=0;
unsigned int i;
for(i=0;i<100;i++)
{
rtval+=(unsigned long)Adc7705();