本帖最后由 yytpy2008 于 2012-10-15 16:09 编辑
adc的采集,程序代码如下图所示。采集了50次数据。但是发现波动比较大。是不是本来这个芯片的精度就是这么高?还是有的地方做的不合适,还有改进的地方?请高手指点。此数据是在仿真器供电的情况下测的。
#include<SH79F083.h>
#define uint unsigned int
#define uchar unsigned char
uint adc[50];
void main()
{
uint i,adc_data;
uchar abc;
adc_data=0;
abc=0;
ADCON = 0x80;
ADT = 0xeF;
ADCH = 0x01;
for(i=0;i<250;i++);
while(1)
{
ADCON |= 0x01;
while(ADCON&0x01);
adc=(ADDH<<2)+ADDL;
i++;
if(i>50)i=0;
}
}
|