[51单片机] TLC2543采集值不对,帮忙看看.

[复制链接]
1187|3
 楼主| xu0801hua 发表于 2015-1-26 14:09 | 显示全部楼层 |阅读模式
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;



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();

}
dirtwillfly 发表于 2015-1-26 21:53 | 显示全部楼层
建议楼主上传一个电路图,更清楚和容易看明白。
电路图是电工间的语言~~
wujh 发表于 2015-1-27 01:38 | 显示全部楼层
显示的AD数就是调不到1000字,那到底显示出多少呢,和你的应该显示984—1033字显示之间差距多大呢?
kymcu51 发表于 2015-2-3 22:35 来自手机 | 显示全部楼层
信号和2543电源以及基准电源都加上滤波试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

81

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部