打印

基于mega16的tlc1543驱动,为啥单片机接不到数据,大家帮看看

[复制链接]
1044|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcumail|  楼主 | 2013-12-10 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint AD_TLC1543(uchar chn)
{
uint ADdata;
uchar i, temp;

   ADdata=0;//初始化数据
   
   AD_EOC=1;
   AD_CS=1;
   Delay(1);
   AD_CS=0;//CS下降沿
   Delay(1);
   
       
   chn=chn<<4;
   for(i=0;i<4;i++) //输入需要转换的通道的编码
     {
      temp=chn;
          AD_CLK=0;
          Delay(1);
          if(temp&0x80)
       {AD_ADDR=1;}
          else
           {AD_ADDR=0;}
      AD_CLK=1;
          Delay(1);

      chn=chn<<1;
     }
   for(i=0;i<6;i++) //输入转换时钟
     {
      AD_CLK=0;
          Delay(1);
      AD_CLK=1;
          Delay(1);
     }
   AD_CS=1;//CS拉高
   
   while(!AD_EOC);//等待转换结束
       
   ADdata=0;//初始化数据
   AD_CS=0;
   Delay(1);
   for(i=0;i<10;i++) //读取10位bit值
     {
       AD_CLK=0;
           Delay(1);
           ADdata<<=1;   
       if(AD_SDO)
         {ADdata|=0x0001;}                         
       AD_CLK=1;
           Delay(1);
          
     }
    return ADdata; //返回转换结果
         
}

相关帖子

沙发
soso| | 2013-12-11 16:13 | 只看该作者
程序不一定有问题。可能是你的电路连接错了。具体的可以做一个仿真。如果还调试不出来可以找我

使用特权

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

本版积分规则

24

主题

371

帖子

2

粉丝