| #include <SH79F6488.H> #include"periphral.h"
 ulong data ADC_Data;
 
 unsigned long data ADCData;
 uchar data Temp;
 unsigned long data ADvalue;
 void ad_init(void)
 {
 REGCON=0x01;        //2.7V
 //ADCON=0x80;                //AN2-AIN0   基准电压vref1,和VDDR同源
 //ADCON=0xa0;                //AN2-AIN0   基准电压vref2=1.19        ,和VDDR不同源
 ADCON=0xC4;                //AN0单端输入,VREF=2.7
 //ADCON=0x85;                //AN1单端输入,VREF=2.7
 //ADCON=0x86;                //AN2单端输入,VREF=2.7
 //ADCON=0x87;                //AN3单端输入,VREF=2.7
 //ADCON=0x80;                //差分输入AIN0+和AIN0-
 //ADCON=0x87;                //差分输入AIN1+和AIN1-
 //ADCON=0x87;                //差分输入AIN2+和AIN2-
 
 
 
 //ADT=0xFC;                //ADC=XXXHz@12MHz
 //ADT=0xFD;                //ADC=500Hz@12MHz
 //ADT=0xFB;                //ADC=300Hz@12MHz
 //ADT=0xF9;                //ADC=214Hz@12MHz
 ADT=0xF1;                //ADC=100Hz@12MHz
 //ADT=0xE2;                //ADC=50Hz@12MHz
 //ADT=0xA0;                //ADC=10Hz@12MHz
 //ADCH=0x3F;          //VREF=0.15*VDDR,AIN0
 //ADCH=0x7F;          //VREF=0.22*VDDR,AIN0
 //ADCH=0xBF;          //VREF=0.3*VDDR,AIN0
 ADCH=0xFF;          //VREF=0.4*VDDR,AIN0
 //ADCDS=0x03;            //VINOS=1,ADCDF=1
 PGAM=0x04;            //PGA Gain=1,chop=1K
 //PGAM=0x14;            //PGA Gain=2,chop=1K
 //PGAM=0x24;            //PGA Gain=4,chop=1K
 //PGAM=0x64;            //PGA Gain=8,chop=1K
 //PGAM=0x84;            //PGA Gain=16,chop=1K
 //PGAM=0x94;        //PGA Gain=32,chop=1K
 //PGAM=0xA4;        //PGA Gain=64,chop=1K
 //PGAM=0xE4;        //PGA Gain=128,chop=1K
 
 
 
 }
 
 unsigned long ScanADCData(void)
 {
 
 
 while(1)
 {
 Temp=ADCON&0x40;
 if(Temp==0x40)break;
 }
 ADCON&=0xBF;
 
 ADCData=ADDH;
 ADCData=ADCData*256;
 ADCData=ADCData+ADDM;
 ADCData=ADCData*16;
 ADCData=ADCData+ADDL;
 
 return ADCData;
 }
 
 void main()
 {
 
 ad_init();
 {
 ADvalue=ScanADCData();
 }
 }
 
 
 |