标题: TLC2543为什么数值一直不会稳定下来 [打印本页]

作者: 看透不说透    时间: 2017-8-10 01:35
标题: TLC2543为什么数值一直不会稳定下来
我程序如下
#include<reg52.h>
#include<intrins.h>
#ifndef __tlc2543__h_
#define __tlc2543_h__
#define uint unsigned int
#define uchar unsigned char
sbit ADout=P1^0;
sbit ADin=P1^1;
sbit ADCS=P1^2;
sbit CLK=P1^3;
sbit EOC=P1^4;
uchar duan[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x7c};
uchar D=0,wei[]={0xfe,0xfd,0xfb,0xf7,0xdf,0xef};
float k=0;
float n=0;
uint readAD(uchar port)      
{
  uchar ch,i,j;
uint ad;
ch=port;
for(j=0;j<3;j++)  
{
     ad=0;
  ch=port;
  EOC=1;
  CS=1;
  CS=0;
  CLK=0;
  for(i=0;i<12;i++)
  {
   if(ADout) ad|=0x01;
   ADin=(bit)(ch&0x80);
   CLK=1;
   CLK=0;
   ch<<=1;
   ad<<=1;
  }
}
CS=1;           /////////转换和读取数值
while(!EOC);
ad>>=1;
return(ad);
}
#endif

作者: yzwzfyz    时间: 2017-8-10 01:35
稳定度是多少呢?(能稳到前面多少位)
绝大多数,与布线有关,模拟地与数字地的连接不合理。体现在,模拟地的电位,易被数字电流干扰。
其次,采样线布线不合理:体现在,采样输入易感应到感应电压。
再次,程序问题。体现的采样的时机安排上。
作者: 浮云骑士    时间: 2017-8-10 08:35
分辨率高,需要加上数字滤波函数
作者: 浮云骑士    时间: 2017-8-10 08:42
把你的全部程序发上来看看
作者: 看透不说透    时间: 2017-8-10 09:36
浮云骑士 发表于 2017-8-10 08:35
分辨率高,需要加上数字滤波函数

只是12位ADC,应该是频率太快吧!
作者: 看透不说透    时间: 2017-8-10 10:52
yzwzfyz 发表于 2017-8-10 09:55
稳定度是多少呢?(能稳到前面多少位)
绝大多数,与布线有关,模拟地与数字地的连接不合理。体现在,模拟 ...

一共三位小数,第一位稳定,后2位就不稳定,参考电压是5V。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1