请教ADC0838不同接法的作用(优势)及相应程序代码作用

2020-01-23 14:38发布

本帖最后由 lmt50211 于 2014-6-4 18:04 编辑

一般情况我们都是使用八通道的方法。如图
ADC接法.JPG (58.56 KB, 下载次数: 0) 下载附件 2014-6-4 17:42 上传
有很多看不明白,现在上传程序,希望各位能解答一下温度转换部分。
/*********************temperature()******读温区温度*****************************/
uchar temperature(uchar x)
{
    uchar i;
    OU0838=1;
    CL0838=0;
    CS0838=0;
    for(i=0; i<5; i++)
    {
        if(x&0x01)
        {
            IN0838=1;
        }
        else
        {
            IN0838=0;
        }
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        CL0838=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        CL0838=0;
        x=x>>1;
    }
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    for(i=0; i<8; i++)
    {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        CL0838=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        CL0838=0;
        x=x<<1;
        if(OU0838)
        {
            x+=1;
        }
    }
    CS0838=1;
    CL0838=1;
    return(x);
}

void temp_process(void)//温度转换
{
        t=temperature(0xe3);
                if(t==255)
                {
                    t=temperature(0xe9);
                    if(t==255)
                    {
                        t=temperature(0xf1);
                        if(t==255)
                        {
                            TANK=t;
                        }
                        else
                        {
                            TANK=t/3+165;
                        }
                    }
                    else
                    {
                        TANK=t/3+80;
                    }
                }
                else
                {
                    TANK=t/3;
                }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。