打印
[51单片机]

TLC2543采集值不对,帮忙看看.

[复制链接]
958|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

粉丝