#define N 70
XDATA WORD Value_buf[N];
XDATA DWORD ADCValue;
static BYTE v_gu8cnt=0;
static BYTE i=0;
static XDATA DWORD AdcReturn=0;
Value_buf[i++]=Key_ScanValue(ADCKEY1); if(i==N) i=0; for(v_gu8cnt=0;v_gu8cnt<N;v_gu8cnt++) //Smoothing filter { v_gu16AD_Data+=Value_buf[v_gu8cnt]; if(v_gu8cnt==N-1) { AdcReturn=v_gu16AD_Data; v_gu16AD_Data=Value_buf[v_gu8cnt]; } } ADCValue=AdcReturn/N;