注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
xu0801hua的个人空间 https://home.eeworld.com.cn/space-uid-562937.html [收藏] [复制] [分享] [RSS]
日志

TLC2543采集值不对

已有 478 次阅读2015-1-26 14:17 |个人分类:tlc2543问题

TLC2543采集值不对,在基准位2.447V(电压表测出来的),7脚是信号输入,外部信号通过AD623数据放大再输入,在输入为零时,AD623的5脚电压作为输入信号;

在做实验时输入为零,AD623的5脚加一个0.5878—0.6172V,那么数码管上应该显示984—1033字显示,可是在调节AD623的5脚电压时,显示的AD数就是调不到1000字?这是为什么?

TLC2543驱动函数:

sbit _CS=P3^5;

sbit CLOCK=P3^6;

sbit EOC=P3^7;

sbit DA_IPUT=P2^4;

sbit DA_OUT=P2^3;

/********延时*********/
void wait(unsigned int T_ms)
{
   unsigned int i,j ;
   for(j=0;j<T_ms;j++)
     for(i=0;i<110;i++) ;
}
unsigned int AD_out()

{  

unsigned char i;  

unsigned int AD_value=0;

_CS=0;

CLOCK=0;

for(i=0;i<12;i++)

{   DA_OUT=1;  

_nop_();_nop_();_nop_();  

CLOCK=1;  

_nop_();_nop_();  

AD_value*=2;  

if(DA_OUT) AD_value++;  

CLOCK=0;  }  

_CS=1;

CLOCK=0;  

wait(5);  

if(AD_value>=2)AD_value-=2;

return(AD_value);

}

void INIT_2543(unsigned char com)

{  unsigned char n;

  _CS=0;

CLOCK=0;

for(n=0;n<12;n++)

{   CLOCK=0;  

if(n<8)

   {  

  DA_IPUT=(bit)(com&0x80);  

  com=com<<1;

  }

  CLOCK=1;

  }

_nop_();_nop_();

CLOCK=0;

_CS=1;  

DA_IPUT=0;

}

unsigned int TLC2543(unsigned char com)

{  EOC=1;

_nop_();_nop_();

INIT_2543(com);

wait(5);  

while(!EOC);

return AD_out();

}

本文来自论坛,点击查看完整帖子内容。

全部作者的其他最新日志
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章