打印

求助ad7730

[复制链接]
1567|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jovewaters|  楼主 | 2007-8-5 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   各位大侠好,我用ad7730,设计的时候把DIN和DOUT两个引脚连在一起了,结果发现一些问题:发现读数据应该为1的时候,电压输出只有2。67伏,于是我先在DIN引脚上用单片机置1,结果发现读书前7位都是对的,但是第八位不管怎么样都是1,请高手赐教,不胜感激!
  plus:ad是用中断方式。
   程序:#include <reg52.h>


sbit AD7730_SCLK=P0^0;
sbit AD7730_DIN=P0^1;
sbit AD7730_DOUT=P0^2;


 

void WriteByteToAd7730(unsigned char WriteData)
{
   unsigned char i;
   AD7730_CS=0;
   for(i=0;i<8;i++)
   {
      AD7730_SCLK=0;
      if(WriteData&0x80)AD7730_DIN=1;
      else AD7730_DIN=0;
      WriteData=WriteData<<1;
      AD7730_SCLK=1;
    }
    AD7730_DIN=0;
    AD7730_CS=1;
}
/*
AD7730读寄存器函数
*/
unsigned char ReadByteFromAd7730(void)
{
   unsigned char i;
   unsigned char ReadData;
   AD7730_CS=0;
   AD7730_DIN=0;
   ReadData=0;
   for(i=0;i<8;i++)
   {
      AD7730_DIN=1; //我先在DIN引脚上用单片机置1

      AD7730_SCLK=0;
     _nop_();_nop_();_nop_();
     AD7730_SCLK=1;
      ReadData=ReadData<<1;
      if(AD7730_DOUT)ReadData+=1;
      AD7730_DIN=0;  //完了再置0

   }
   AD7730_CS=1;
   return(ReadData);
}

相关帖子

沙发
sunya_ihoo| | 2008-7-31 12:51 | 只看该作者

时序不对吧

多给了个上升沿或是下降沿

使用特权

评论回复
板凳
sunya_ihoo| | 2008-7-31 12:53 | 只看该作者

再说说

还有,读寄存器前DIN 清零就行了   现在我也遇到问题了,大虾能否教我?

使用特权

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

本版积分规则

16

主题

21

帖子

0

粉丝