用80c552做一個簡單的A/D轉(zhuǎn)換,碰到些問題,但感覺不是硬件問題,因為i2c的測試比較順利.其中,STADC腳接地,由軟件啟動轉(zhuǎn)換.
程序如下
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轉(zhuǎn)換沒有成功啊?究竟什么問題呢?
p.s.我A/D轉(zhuǎn)換的是一個用10k電位器對5V的分壓,會不會是電阻太大電流太小了?
問一個A/D轉(zhuǎn)換的問題
全部回復(fù)(6)
正序查看
倒序查看