用80c552做一个简单的A/D转换,碰到些问题,但感觉不是硬件问题,因为i2c的测试比较顺利.其中,STADC脚接地,由软件启动转换.
程序如下
unsigned char Read_ADC( unsigned char channel )
{
ADCON &= ~0x07;
ADCON |= 0x07 & channel;
ADCON |= 0x8;
while( (ADCON & 0x8) );
return( ( ( (unsigned) ADCH << 8) | ADCON ) >> 6 );
}
void main(void)
{
unsigned char channal1 = 0x00;
unsigned char reading;
reading = Read_ADC(channal1);
if(reading>0x200)
{
//一个i2c传输
}
else
{
//另一个i2c传输
}
while(1);
}
单片总是工作else,是不是说明A/D转换没有成功啊?究竟什么问题呢?
p.s.我A/D转换的是一个用10k电位器对5V的分压,会不会是电阻太大电流太小了?