标题: ADS8320模数转换的单片机程序问题 [打印本页]

作者: 爱学习爱交流    时间: 2019-1-3 16:50
标题: ADS8320模数转换的单片机程序问题
问题如下:不知道是不是编写程序有错误,AD这一部分不起作用,ads8320连接的单片机,它是一个16位串行数据模数转换芯片,连接没什么错误,希望大家帮我看看程序哪里写错了,谢谢!
程序如下:
、、、、、
sbit AD_clk=P1^0;
sbit AD_Dout=P1^1;
sbit AD_cs=P1^2;
Uint ad16;
、、、、、
uint ADS8320( )
{
uchar i;
AD_cs=0;
_nop_();  //12M晶振 1us(高低电平的持续时间大于200ns)
_nop_();
AD_clk=0;
_nop_();
_nop_();
AD_clk=1;//上升沿开始采样
AD_start=1;
while(AD_Dout)
{
  _nop_();
  _nop_();
   AD_clk=0;
  _nop_();          //采样完成判定
  _nop_();
  AD_clk=1;
}
_nop_();
_nop_();
AD_clk=0;//开始转化
_nop_();
  _nop_();
  AD_clk=1;
  _nop_();  //等待转化
  _nop_();
  AD_clk=0;
for(i=0;i<16;i++)
{
  _nop_();
  _nop_();
  AD_clk=1;
  _nop_();
  _nop_();
   AD_clk=0;         //上升沿转化
   ad16<<=1;
  if(AD_Dout==1)
  {
    ad16=ad16|0x0001;
  }
  else
  {
    ad16=ad16&0xfffe;
  }
}
AD_cs=1;
AD_start=0;
return(ad16);
}
时序图如下:

1.png (40.54 KB, 下载次数: 38)

时序图

时序图

2.png (44.02 KB, 下载次数: 42)

连接图

连接图

作者: yzwzfyz    时间: 2019-1-4 08:32
再仔细观察一下波形图,看看你的程序有没有超越它的时间限制。
作者: 三国人生    时间: 2019-1-4 09:25
先降低一采样频次,试试。波形也看看先最好同步
作者: 爱学习爱交流    时间: 2019-1-4 10:43
yzwzfyz 发表于 2019-1-4 08:32
再仔细观察一下波形图,看看你的程序有没有超越它的时间限制。

没有,这个的高电平持续时间大于200ns就可以,我延时了2个_nop_应该足够给它时间去反应
作者: 爱学习爱交流    时间: 2019-1-4 10:46
三国人生 发表于 2019-1-4 09:25
先降低一采样频次,试试。波形也看看先最好同步

你是说吧_NOP_的延时换成与波形图中的一样,还是怎么操作






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1