[其它应用] adc的采集

[复制链接]
 楼主| zhuhuis 发表于 2020-10-11 22:33 | 显示全部楼层 |阅读模式
adc的采集,程序代码如下图所示。采集了50次数据。但是发现波动比较大。
tian111 发表于 2020-10-11 22:38 | 显示全部楼层
是不是本来这个芯片的精度就是这样
 楼主| zhuhuis 发表于 2020-10-11 22:43 | 显示全部楼层
不是吧,是不是有的地方做的不合适,还有改进的地方?
songqian17 发表于 2020-10-11 22:46 | 显示全部楼层
程序和数据看看
 楼主| zhuhuis 发表于 2020-10-11 22:52 | 显示全部楼层
#include<SH79F083.h>
#define   uint  unsigned int
#define uchar unsigned char
uint adc[50];
void main()
{
          uint  i,adc_data;
    uchar abc;
      
   adc_data=0;
       abc=0;
          ADCON        =        0x80;      
          ADT          =        0xeF;        
            ADCH         =  0x01;               
      
        for(i=0;i<250;i++);
      while(1)
      {
   
            ADCON       |=  0x01;        
            while(ADCON&0x01);
      adc=(ADDH<<2)+ADDL;
            i++;
      if(i>50)i=0;

chenho 发表于 2020-10-11 22:55 | 显示全部楼层
采集了50次数据。但是发现波动比较大。很有可能是信号里的噪声的问题.
chenho 发表于 2020-10-11 23:00 | 显示全部楼层
嗯,从楼主的数据中看, 也是局部的振铃信号
gongche 发表于 2020-10-11 23:06 | 显示全部楼层
是的,非常可能是属于噪声的因素
 楼主| zhuhuis 发表于 2020-10-11 23:12 | 显示全部楼层
谢谢大师指点,如果是噪声的因素,我又何处入手能进行改进呢???
 楼主| zhuhuis 发表于 2020-10-11 23:18 | 显示全部楼层
用去最大最小平均值滤波试一下
wenfen 发表于 2020-10-11 23:22 | 显示全部楼层
这个应该不是你的精度的问题了,可以减少采样时间,多次采集取平均值,找可能的干扰源了
songqian17 发表于 2020-10-11 23:27 | 显示全部楼层
是增大采样时间间隔
huwr 发表于 2020-10-11 23:30 | 显示全部楼层
电源基准还是内部基准?
songqian17 发表于 2020-10-11 23:36 | 显示全部楼层
SH的内部基准就是电源直接分压出来的,想提高精度要用外部基准,要求不高时可以改善电源纹波+软件滤波处理
 楼主| zhuhuis 发表于 2020-10-11 23:42 | 显示全部楼层
嗯,知道了,多谢
明天真的好 发表于 2020-10-13 08:42 | 显示全部楼层
是不是本来这个芯片的精度就是这样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

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