|
菜鸟求助,为什么我用TLC2543A/D转换测电压值跳动的很厉害?
[复制链接]
值跳动的很厉害,而且幅度比较大,都快有0.1V了,是程序问题么?
unsigned int read2543(unsigned char port)
{
unsigned int ad=0;
unsigned int i=0;
unsigned char abc;
CLOCK=0; //拉低时钟
AD_CS=0; //片选
port=port<<4; //通道标记位选择在前
abc=port; //暂存输入的控制字
for(i=0;i<4;i++)
{
if(D_OUT) //读取AD转换结果
ad=ad<<1|0x01;
else
ad=ad<<1;
D_IN=(bit)(port&0x80); //输入AD控制位
CLOCK=1; //产生一个脉冲
delay1(3);
CLOCK=0;
delay1(3);
port=port<<1;
}
for(i=0;i<8;i++)
{
if(D_OUT) //读取AD转换结果
ad=ad<<1|0x01;
else
ad=ad<<1;
D_IN=(bit)(port&0x80); //输入AD控制位
CLOCK=1; //产生一个脉冲
delay1(3);
CLOCK=0;
delay1(3);
port=port<<1;
}
AD_CS=1;
delay(100);
return(ad);
}
|
|