搜索
bottom↓
回复: 33

AD7705双通道的应用程序奉献给大家

[复制链接]

出0入0汤圆

发表于 2009-8-25 15:33:24 | 显示全部楼层 |阅读模式
奉献给大家AD7705的双通道应用程序~~~~~
#include<reg52.h>

#define CH1 1 /*AD7705输入通道IN1*/
#define CH2 2 /*AD7705输入通道IN2*/
#define BIPOLAR 0 /*AD7705双极性输入*/
#define UNIPOLAR 1 /*AD7705单极性输入*/
#define AD_CLK_WIDTH 1 /*AD7705串口时钟脉冲宽度*/

sbit AdClk=P1^0; /*AD7705时钟脉冲*/
sbit AdDin=P1^1; /*AD7705数据输入脉冲*/
sbit AdDout=P1^2; /*AD7705数据输出的反相脉冲*/
sbit AdDrdy=P1^3; /*指定转换标志位*/
sbit AdReset=P1^4;  /*复位*/


void Wait7705(unsigned int t);/* AD7705软件延时 */
void WriteByte7705(unsigned char x);/* 向AD7705写入一个字节 */
unsigned int ReadWord7705(void);/* 从AD7705读一个字节 */

void Reset7705(void);/* AD7705通信端口复位 */

void Init7705_1();
void Init7705_2();

unsigned int GetData7705_ch1();/* 读AD7705转换数据 输入通道channel ----1=IN1,2=IN2;*/
unsigned int GetData7705_ch2();/* 读AD7705转换数据 输入通道channe2 ----1=IN1,2=IN2;*/   

void main()
{

   
              
    _nop_();  
    _nop_();  
    _nop_();       
   
    AdClk=1;  //AD7705时钟脉冲
    AdDin=1; //AD7705数据输入脉冲
    AdDout=1; //AD7705数据输出的反相脉冲

    AdReset=1;                       
    Wait7705(100);//软件延时
    AdReset=0;  //复位      
    Wait7705(100);
    AdReset=1;                       
    Wait7705(100);
                             
        while(1)
        {   
          get_ad();                           
        }
}


void Wait7705(unsigned int t)/* AD7705软件延时 */  
{
    for( ;t>0 ;t-- );
}

/* 向AD7705写入一个字节 */
void WriteByte7705(unsigned char x)
{
    unsigned char i;  
    for (i=0;i<8;i++)
    {
        AdClk=0;
        Wait7705(AD_CLK_WIDTH);
        AdDin=(bit)(x&0x80);
        Wait7705(AD_CLK_WIDTH);
        AdClk=1;
        Wait7705(AD_CLK_WIDTH);
        x<<=1;
    }
}

/* 从AD7705读一个字 */
unsigned int ReadWord7705(void)
{
    unsigned char i;
    unsigned int x ;
        AdClk=1;
    for(i=0,x=0;i<16;i++)
    {
        AdClk=0;
        Wait7705(AD_CLK_WIDTH);
        x<<=1;
        if(AdDout)
        x|=0x01;
        AdClk=1;
        Wait7705(AD_CLK_WIDTH);
    }
    return x;
}
/* AD7705通信端口复位 */
void Reset7705(void)
{
    unsigned char i;
    for(i=0;i<64;i++)
    { /* 多于连续32个 DIN=1 使串口复位 */
        AdClk=0;
        Wait7705(AD_CLK_WIDTH);
        AdDin =1;
        Wait7705(AD_CLK_WIDTH);
        AdClk=1;
        Wait7705(AD_CLK_WIDTH);
    }
}
void Init7705_1()
{
    unsigned char i;
           for(i=10;i>0;i--)
    {WriteByte7705(0xff);}  //持续DIN高电平写操作,恢复AD7705接口
  
    Reset7705();         /* 防止串口失步 */
    WriteByte7705(0x20); /* 写ch0 clock register */
    WriteByte7705(0x00); /* 2.4576MHz时钟,20Hz数据更新速率 */
    WriteByte7705(0x10); /*选择设置寄存器,使用chnanel 1*/
    WriteByte7705(0x44);
   
}
void Init7705_2()
{
    unsigned char i;
           for(i=10;i>0;i--)
    {WriteByte7705(0xff);}  //持续DIN高电平写操作,恢复AD7705接口
    Reset7705();         /* 防止串口失步 */
    WriteByte7705(0x21); /* 写ch1 clock register */
    WriteByte7705(0x00); /* 2.4576MHz时钟,20Hz数据更新速率 */
    WriteByte7705(0x11); /*选择设置寄存器,使用chnanel 2*/
    WriteByte7705(0x44);
         
}               

/* 读AD7705转换数据 输入通道channel ----1=IN1,2=IN2;*/
unsigned int GetData7705_ch1()
{
    unsigned int temp1=0;
    Init7705_1();
    Wait7705(10);   
    while(AdDrdy==1);     //数据准备好           
    WriteByte7705(0x38);     
        temp1=ReadWord7705();//读取                    
    return temp1;
}
/* 读AD7705转换数据 输入通道channe2 ----1=IN1,2=IN2;*/
unsigned int GetData7705_ch2()
{
    unsigned int temp2=0;
    Init7705_2();
    Wait7705(10);
   
    while(AdDrdy==1)     //数据准备好
    WriteByte7705(0x39);      
        temp2=ReadWord7705();//读取                     
    return temp2;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2009-8-25 15:43:24 | 显示全部楼层
记号

出0入22汤圆

发表于 2009-8-25 15:44:32 | 显示全部楼层
谢谢楼主。

出0入42汤圆

发表于 2009-8-25 15:51:14 | 显示全部楼层
好人呀!

出0入0汤圆

发表于 2009-8-25 21:58:13 | 显示全部楼层
正需要。

出0入0汤圆

发表于 2009-8-25 22:02:45 | 显示全部楼层
好样的

出0入0汤圆

发表于 2009-9-4 20:55:25 | 显示全部楼层
这东东不好买哦,一个就要50大洋,听说,在电子城找了几天

出0入0汤圆

发表于 2009-9-4 21:49:43 | 显示全部楼层
好样的

出0入0汤圆

发表于 2009-9-5 00:33:47 | 显示全部楼层
AD7705 这款芯片的转化精度比较高,可靠位可以达到15位。但是需要注意以下两点
1:转换过程中需要注意切换通道的时候需要在切换后延时一段时间然后启动AD转换,频繁的切换会导致精度下降,一般采用双通道同时输入的方案,都是低功耗低速考虑的。
2:数据传输过程中要考虑AD7705的“端口迷失”问题,需要加入硬件定时器定时检测AD7705的“就绪”状态,如果超时需要进行硬件复位从新初始化。在设计过程中遇到过因外部干扰导致的这种问题。

出0入0汤圆

发表于 2011-10-10 09:19:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-10 10:13:33 | 显示全部楼层
mark         好

出0入0汤圆

发表于 2011-11-24 15:13:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-24 16:32:44 | 显示全部楼层

出0入0汤圆

发表于 2012-4-24 17:27:15 | 显示全部楼层
正打算使用!收藏!!

出0入0汤圆

发表于 2012-6-18 17:33:11 | 显示全部楼层
怎么找回我的id号呢?楼主这个id就是我的啊!

出0入8汤圆

发表于 2012-6-18 21:49:41 | 显示全部楼层
马克正用到谢谢

出0入85汤圆

发表于 2012-6-18 21:53:03 | 显示全部楼层
不知道LZ是否测试通道切换后第一个数据是否可用?

出0入84汤圆

发表于 2012-6-26 09:16:45 | 显示全部楼层
mark hhahaha

出0入0汤圆

发表于 2012-7-4 08:20:59 | 显示全部楼层
portx 发表于 2009-9-5 00:33
AD7705 这款芯片的转化精度比较高,可靠位可以达到15位。但是需要注意以下两点
1:转换过程中需要注意切换通 ...

我也遇到过这种问题

出0入0汤圆

发表于 2012-7-5 15:07:24 | 显示全部楼层
marshallemon 发表于 2012-6-18 21:53
不知道LZ是否测试通道切换后第一个数据是否可用?

切换通道后第一个数据可以使用,要注意AD7705这个芯片只适合测量相对静态的信号“内部采样速度很低”,要把握好这个尺度否则每次输出的结果会相差很大。

出0入0汤圆

发表于 2012-7-6 13:17:59 | 显示全部楼层
学习了~ 谢谢分享~

出0入0汤圆

发表于 2012-8-6 14:52:38 | 显示全部楼层
LZ,请教一下,没读一次AD值都要复位一下,重写寄存器????

出0入0汤圆

发表于 2012-8-26 17:46:45 | 显示全部楼层
多谢楼主啊,解决大问题了!

出0入0汤圆

发表于 2013-12-27 13:20:26 | 显示全部楼层
参考一下,等调通了再回来赞一个。

出0入0汤圆

发表于 2013-12-27 14:15:16 | 显示全部楼层
调试成功,谢谢楼主了。

出0入0汤圆

发表于 2013-12-31 13:57:43 | 显示全部楼层
学习了,正用到这个芯片

出0入0汤圆

发表于 2013-12-31 14:36:21 | 显示全部楼层
学习了,正用到这个芯片

出0入0汤圆

发表于 2014-3-14 16:07:08 | 显示全部楼层
顶一个,楼主威武!

出0入0汤圆

发表于 2014-5-20 13:36:58 | 显示全部楼层
Mark一下,现在在用这个呢

出0入0汤圆

发表于 2014-5-24 09:19:59 | 显示全部楼层
正在学习   顶一个

出0入0汤圆

发表于 2014-7-21 17:21:37 | 显示全部楼层
好东西   学习了  正好用到  调试一下

出0入0汤圆

发表于 2014-8-6 20:25:17 | 显示全部楼层
正好要用到,做个记号

出0入0汤圆

发表于 2015-3-7 21:36:01 | 显示全部楼层
谢谢,正准备使用这个芯片。

出0入0汤圆

发表于 2019-1-7 13:08:07 | 显示全部楼层
谢谢分享!!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 08:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表