打印

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

[复制链接]
3995|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
天籁|  楼主 | 2007-10-23 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是用金得通仿真机仿真的,ad7705的晶振是用的4.9152,2.5V基准电压供给.
AD7705接P1口调试的时候,AD7705转换结束标志引脚DRDY一直没有没有低电平, 我手动输入命令使DRDY=0时读到的为0xFFFF,AD7705好象一直都没有工作.
AD7705接串口写程序也不行.请大家帮我看看那里出的问题.
我写的程序是这样的:
#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
      
}

相关帖子

沙发
天籁|  楼主 | 2007-10-24 09:05 | 只看该作者

硬件方面会不会出问题!

路过的大虾指点下
硬件方面会不会出问题!
会不会是晶振或者芯片坏了?

使用特权

评论回复
板凳
jimoom| | 2007-10-25 14:34 | 只看该作者

tm7705 什么公司的?

tm7705 什么公司的?

使用特权

评论回复
地板
天籁|  楼主 | 2007-10-29 11:22 | 只看该作者

TM7705暂时还没有考虑

只想赶快找出AD7705的问题

使用特权

评论回复
5
天籁|  楼主 | 2007-10-29 11:25 | 只看该作者

我感觉程序问题应该不大

我感觉程序问题应该不大,控制字也没错,芯片也是好的
怎么弄它就是不动,真是憋死我了!

使用特权

评论回复
6
ymcprophet| | 2008-4-3 20:38 | 只看该作者

楼主,7705整好了吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

26

帖子

0

粉丝