找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3484|回复: 4
收起左侧

ADS8320模数转换的单片机程序问题

[复制链接]
ID:311281 发表于 2019-1-3 16:50 | 显示全部楼层 |阅读模式
问题如下:不知道是不是编写程序有错误,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);
}
时序图如下:

时序图

时序图

连接图

连接图
回复

使用道具 举报

ID:123289 发表于 2019-1-4 08:32 | 显示全部楼层
再仔细观察一下波形图,看看你的程序有没有超越它的时间限制。
回复

使用道具 举报

ID:461528 发表于 2019-1-4 09:25 | 显示全部楼层
先降低一采样频次,试试。波形也看看先最好同步
回复

使用道具 举报

ID:311281 发表于 2019-1-4 10:43 | 显示全部楼层
yzwzfyz 发表于 2019-1-4 08:32
再仔细观察一下波形图,看看你的程序有没有超越它的时间限制。

没有,这个的高电平持续时间大于200ns就可以,我延时了2个_nop_应该足够给它时间去反应
回复

使用道具 举报

ID:311281 发表于 2019-1-4 10:46 | 显示全部楼层
三国人生 发表于 2019-1-4 09:25
先降低一采样频次,试试。波形也看看先最好同步

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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