[STC单片机] 请教STC15L2K16S2 的AD的线性问题。

[复制链接]
2896|15
 楼主| jqfsjt 发表于 2014-3-26 13:26 | 显示全部楼层 |阅读模式
我现在用10位方式的采集数据,单片机电源是3.3伏,给IO是3.0伏,数据应该是1024*3/3.3=391,但是实际数据是398,中间差了7,。短路输入,零点不是0,输出是2。
和STC的技术请教,说是我的电源的纹波原因,用示波器测试,纹波20毫伏,是否是这个的原因?
我用电位器提供电压,输出的数据也是和实际测量的对不起来。差在8个以内。
感觉和12C5A系列的片子差距很大。
大家有用过的吗?请教下原因。
 楼主| jqfsjt 发表于 2014-3-26 13:27 | 显示全部楼层
数据输出还是很稳定的,单次采集和8次采集平均都是一样的。
ayb_ice 发表于 2014-3-26 13:29 | 显示全部楼层
没有绝对的那么准的
ayb_ice 发表于 2014-3-26 13:30 | 显示全部楼层
"数据应该是1024*3/3.3=391,"

?????
 楼主| jqfsjt 发表于 2014-3-26 13:40 | 显示全部楼层
ayb_ice 发表于 2014-3-26 13:30
"数据应该是1024*3/3.3=391,"

?????

计算值
 楼主| jqfsjt 发表于 2014-3-26 13:40 | 显示全部楼层
ayb_ice 发表于 2014-3-26 13:29
没有绝对的那么准的

但是感觉有点大
 楼主| jqfsjt 发表于 2014-3-26 13:43 | 显示全部楼层
//----------------------------
//读取ADC结果
unsigned int GetADCResult(unsigned char ch)
{
        unsigned char x;
        unsigned int Result;
        unsigned int ADResult;                                  
        unsigned long
          P1ASF = P1ASF|ch  ;                     //设置P1口为AD口
    ADC_RES = 0;                            //清除结果寄存器
        ADC_RESL=0;                 
        ADResult=0;
    ADC_CONTR = ADC_POWER | ADC_SPEEDHH;    //ADC上电并延时
        delayms(1);                  
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
        for(x=0;x<8;x++)
        {
            while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
                   Result =(ADC_RES<<2)|ADC_RESL;
                   ADResult +=Result;
        }                               
        Result=ADResult >> 3;       
        ADC_CONTR &= ~ADC_FLAG;         //Close ADC
    return Result;                 //返回ADC结果
}

晓妖不成精a 发表于 2014-3-26 13:50 | 显示全部楼层
http://www.stcisp.com/stc_repl8051.html,15系列替代传统8051的注意事项
 楼主| jqfsjt 发表于 2014-3-26 14:42 | 显示全部楼层
晓妖不成精a 发表于 2014-3-26 13:50
http://www.stcisp.com/stc_repl8051.html,15系列替代传统8051的注意事项

谢谢,这个是ADC精度的问题
ayb_ice 发表于 2014-3-26 16:58 | 显示全部楼层
jqfsjt 发表于 2014-3-26 13:40
计算值

值对吗
 楼主| jqfsjt 发表于 2014-3-26 19:17 | 显示全部楼层
ayb_ice 发表于 2014-3-26 16:58
值对吗

930.909
ayb_ice 发表于 2014-3-27 08:02 | 显示全部楼层
输入是否准确,参考是否精确3.3V?
 楼主| jqfsjt 发表于 2014-3-27 11:38 | 显示全部楼层

请看下,这是测试结果和原理图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| jqfsjt 发表于 2014-3-27 11:39 | 显示全部楼层
3.3伏是由HT7533的。
qq986433936 发表于 2014-3-28 19:14 来自手机 | 显示全部楼层
本帖最后由 qq986433936 于 2014-3-28 19:15 编辑

1024*3/3.3=930.9; 1024*0.02/3.3=6.20; 1024*0.01/3.3=3.10; 1024*0.005/3.3=1.55;
3.3/1024=0.0032。
autopccopy 发表于 2014-3-31 20:36 | 显示全部楼层
该系列使用VCC做基准,所以准确的电源很重要,或者使用软件调整。
新的STC15F系列有第九通道的内部基准,参考程序见:https://bbs.21ic.com/icview-184660-22-1.html 429楼。 :)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

1

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