|
這是我當(dāng)初畢業(yè)設(shè)計(jì)的程序可以直接用的包含兩個(gè)文件:
AD7705.H文件:
#include <reg51.h>
#ifndef _AD7705_
#define _AD7705_
sbit AD7705_CLK = P3^6; //AD7705時(shí)鐘
sbit AD7705_DIN = P3^4; //AD7705數(shù)據(jù)輸入端
sbit AD7705_DOUT = P3^3; //AD7705數(shù)據(jù)輸出端
sbit AD7705_DRDY = P3^2; //AD770準(zhǔn)備好信號
sbit AD7705_REST = P3^5; //AD7705復(fù)位信號,低電平復(fù)位
#endif
extern unsigned int AD_data;
extern void Write_7705(unsigned char Byte);
extern void Read_7705();
extern void Init_7705();
AD7705.C文件:
#include<includes.h>
#define nop _nop_()
unsigned int AD_data;
void Write_7705(unsigned char Byte)
{
unsigned char i;
AD7705_CLK = 1;
for(i=8;i>0;i--)
{
if(Byte&0x80) AD7705_DIN = 1;
else AD7705_DIN = 0;
AD7705_CLK = 1;
nop;
AD7705_CLK = 0;
nop;
AD7705_CLK = 1;
Byte <<= 1;
}
AD7705_CLK = 1;
nop;
AD7705_DIN = 0;
}
/********************************************************************
**函數(shù)原形:uint Read_7705()
**功能:讀AD7705轉(zhuǎn)換后數(shù)據(jù)
**參數(shù):無
**返回值:轉(zhuǎn)換結(jié)果
********************************************************************/
void Read_7705(void)
{
unsigned char i,j,k=400;
long int sum_data=0;
for(j=0;j<4;j++) //采集8次
{
Write_7705(0x39);
AD7705_CLK=1;
while(AD7705_DRDY&&(k--)) ;
// Display();
for(i=16;i>0;i--) //讀16位數(shù)據(jù)
{
AD_data=AD_data<<1;
AD7705_CLK=0;
nop;
AD7705_DOUT=1;
if(AD7705_DOUT) AD_data|=0x0001;
else AD_data|=0x0000;
AD7705_CLK=1;
}
AD7705_CLK=1;
nop;
AD7705_DIN=1;
sum_data+=AD_data;
AD_data=0x0000;
}
AD_data=(sum_data>>2);
}
/*********************************************************
**函數(shù)原形: void Init_7705(void)
**功能:初始化AD7705,設(shè)置為20HZ更新率、雙極性、自校準(zhǔn)、增益128
**參數(shù):無
**返回值:無
***********************************************************/
void Init_7705(void) //初始化7705
{
unsigned char i;
AD7705_CLK=1;
nop;
AD7705_DIN=1;
for (i=0;i<40;i++) // AD7705復(fù)位
{
AD7705_CLK=0;
nop;
AD7705_CLK=1;
}
Write_7705(0x21); //寫通信寄存器設(shè)置通道2擇下一個(gè)操作是寫時(shí)鐘寄存器
Write_7705(0x0C); //寫時(shí)鐘寄存器設(shè)置更新速率為20Hz
Write_7705(0x11); //通道2,下一個(gè)寫設(shè)置寄存器
//Write_7705(0x7a); //寫設(shè)置寄存器,設(shè)置成雙極性、增益為128、自校
Write_7705(0x44);
} |
|