这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 工业控制与自动化 » 求助:AD7705转换结束标志引脚DRDY没有低电平?

共2条 1/1 1 跳转至

求助:AD7705转换结束标志引脚DRDY没有低电平?

助工
2007-10-24 23:06:59     打赏

我是用金得通仿真机仿真的,ad7705的晶振是用的4.9152,2.5V基准电压供给.
AD7705接P1口调试的时候,AD7705转换结束标志引脚DRDY一直没有没有低电平, 我手动输入命令使DRDY=0时读到的为0xFFFF,AD7705好象一直都没有工作.
AD7705接串口写程序调试DRDY也一直没有没有低电平.请大家帮我看看那里出的问题.
我写的程序是这样的:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit  dout=P1^5;
sbit  drdy=P1^4;
sbit  clk=P1^6;

 //延时
    void wait(uchar t)
        { for(;t>0;t--);  }
//延时
    void Delay(uchar ms)
        { uchar s;
        for(;ms>0;ms--)  {for(s=0;s<124;s++); }    
        }
 //写数据
    void Write(uchar com)
    {   uchar i;
        clk=1;
        for(i=0;i<8;i++)
            {
            clk=0;
            dout=(bit)(com&0x80);
            wait(1);
            clk=1;
            wait(1);
            com=com<<1;    
            }
            clk=1;dout=1; //结束
    }
          
    //读数据
    AdRd()
    {
        uchar i;
        uint Ad16;
        clk=1;
        Ad16=0x00;
        while(drdy!=0);//等待drdy=0
        for(i=0;i<16;i++)
            {
            Ad16=Ad16<<1;
            clk=0;
            wait(1);
            if(dout)
            Ad16++;
            clk=1;
            wait(1);
            }
            clk=1;dout=1; //结束    
            return(Ad16);
            
    }
    
        //对采样通道初始化,所有的控制数据都已经倒序                 
    void Init7705()
    {
        uchar t;         //防止接口迷失
        clk=1;
        dout=1;
        for(t=0;t<100;t++)
            {
              clk=0;
              clk=1;    
            }            //防止接口迷失   
            Delay(1);    //延时1ms
            Write(0x20); //写20通道1,下一个写时钟寄存器
            Write(0x0c); //写0c到时钟寄存器设置更新率为250HZ,未禁止OUT引脚,4。9152晶振               
            Write(0x10); //写10通道1,下一个写设置寄存器
            Write(0x46); //写46到设置寄存器,设置成自效准,增益1,单极性,有缓冲,滤波器工作                       
    
    }
    
void main()
{
    uint dataout;

     Init7705(); //初始化AD7705

      Write(0x38); //写AD7705指向数据寄存器

      dataout=AdRd(); //读AD7705     
}




关键词: 求助     AD7705     转换     结束     标志     引脚     没有         

助工
2007-10-25 22:22:32     打赏
2楼
我以前用过AD7705 ,我怀疑可能是你的控制字的问题,但首先是你的硬件正常。建议看AD7705的DATASHEET.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]