找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3168|回复: 4
打印 上一主题 下一主题
收起左侧

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, 下载次数: 41)

连接图

连接图
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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_应该足够给它时间去反应
回复

使用道具 举报

5#
ID:311281 发表于 2019-1-4 10:46 | 只看该作者
三国人生 发表于 2019-1-4 09:25
先降低一采样频次,试试。波形也看看先最好同步

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

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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