你好,它的输出值有在一个10K的电阻上进行测量,然后置于的环境也是正常的室内环境。将模拟亮度转换为数字值的是用ADC0832转换的,代码如下,能帮忙看一下吗?
uchar Adc0832() //AD转换,返回结果
{
uchar u=0;
uchar dat=0;
ADCLK=0;
delayms(1);
ADCS=0;//拉低CS端
delayms(1);
ADDI=1;
delayms(1);
ADCLK=1;//拉高CLK端
delayms(1);
ADCLK=0;//形成下降沿1
delayms(1);
ADCLK=1;//拉高CLK端
ADDI=1;
delayms(1);
ADCLK=0;//形成下降沿2
delayms(1);
ADCLK=1;//拉高CLK端
ADDI=1;
delayms(1);
ADCLK=0;//形成下降沿3
delayms(1);
ADDI=1;//控制命令结束
delayms(1);
dat=0;
for(u=0;u<8;u++)
{
ADCLK=1;
delayms(1);
ADCLK=0;//形成一次时钟脉冲
delayms(1);
dat|=ADDO;//收数据
if(u<7)
dat<<=1;
}
for(u=0;u<8;u++)
{
ADCLK=1;
delayms(1);
ADCLK=0;//形成一次时钟脉冲
delayms(1);
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDO=1;//拉高数据端,回到初始状态
return dat; //return 数据
} |