例程:N76E003_BSP_Keil_C51_V1.0.3\Sample_Code\ADC_Bandgap_VDD
clr_ADCF; //AD转换完成,该位置1,需要软件清零
set_ADCS; // Each time ADC start trig signal
ADCsumH = 0;
ADCsumL = 0;
while(ADCF == 0);
for(i=0;i<N;i++)
{
Timer0_Delay1ms(20); //必要的延时,T BGEN 带隙电压使能时间
clr_ADCF;
set_ADCS; // ADC start trig signal
while(ADCF == 0);
ADCdataH[i] = ADCRH;
ADCdataL[i] = ADCRL;
}
Timer0_Delay1ms(20); 这个延时不知道从何而来,手册里没看见,20ms时电压获取是比较正确的,加多减少都会影响正确电压。
另外,如果切换了频率CKDIV = 0x01; 将频率降低到8M,那么20ms延时也不能获取正常(在降频后已经相应改写Timer0_Delay1ms函数,20ms是正确的) |