找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6967|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

[求助]誰有AD7705的程序啊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:11238 發(fā)表于 2009-6-22 10:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
[求助]誰有AD7705的程序啊

網(wǎng)上找了很多,好像都不行啊
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:14687 發(fā)表于 2009-6-25 15:49 | 只看該作者

這是我當(dāng)初畢業(yè)設(shè)計的程序可以直接用的包含兩個文件:
AD7705.H文件:

 #include <reg51.h>

#ifndef _AD7705_
#define _AD7705_
   
sbit AD7705_CLK  = P3^6;   //AD7705時鐘
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擇下一個操作是寫時鐘寄存器
      Write_7705(0x0C);    //寫時鐘寄存器設(shè)置更新速率為20Hz
      Write_7705(0x11);    //通道2,下一個寫設(shè)置寄存器
      //Write_7705(0x7a);  //寫設(shè)置寄存器,設(shè)置成雙極性、增益為128、自校
   Write_7705(0x44);
}

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表