| 
 
| 本帖最后由 KobeLai 于 2019-1-22 17:02 编辑 
 #include "REG_MA82G5Dxx.H"
 
 Unsigned int AdcTemp;
 
 //ADC的初始化
 //ADC相应的转换端口(P1.0~P1.7)设置成仅模拟输入
 P1M0=0X0;
 SFRPI=0x0;
 P1M1=0Xff;
 //ADC转换速度
 ADCFG0=0x10;                //ADC转换数据向右对齐
 SFRPI=0x2;
 ADCFG2=0x0;
 SFRPI=0x3;
 ADCFG3=0x0;
 SFRPI=0x0;
 
 ADCON0 = ADCEN;                //开启ADC模块,之后需要等待5uS
 delay_5us();
 
 While(1)
 {
 //ADC数据采集
 ADCON0|=0x7;                //采集通道7的电压
 ADCON0|=0x8;                //启动一次ADC转换
 //等待ADC的转换完成
 while((ADCON0&0x10)!=0x10)
 AdcTemp=(ADCDH<<8)+ADCDL;                // AdcTemp为ADC采样的数据
 ADCON0|=0x1;                //采集通道1的电压
 ADCON0|=0x8;                //启动一次ADC转换
 //等待ADC的转换完成
 while((ADCON0&0x10)!=0x10)
 AdcTemp=(ADCDH<<8)+ADCDL;                // AdcTemp为ADC采样的数据
 }
 
 
 MA82G5D16的ADC(模数转换)相关设置步骤如下:
 
 一:设置ADC输入的相应端口为仅模拟输入。
 二:设置ADC转换速度(最大1M SPS),一次ADC转换完成至少需要24个转换时钟。例如:ADCFG0=0x0,ADCFG2=0x0,ADCFG3=0x0;系统时钟为24MHz则ADC转换速度为1M SPS。
 三:开启ADC模块。例如:ADCON0=0x80。
 四:启动ADC转换。例如:ADCON0|=0x8。
 五:等待ADC完成或使用中断来读取ADC的转换结果,转换结果保存在ADCDH、ADCDL。例如:while((ADCON0&0x10)!=0x10)。
 
 
 MA82G5D16支持笙泉的OCD ICE,可以在Keil 3,Keil 4,Keil 5环境下自由仿真。
 下面网址可以下载仿真安装包:
 http://www.megawin.com.tw/zh-cn/support/index/70/113
 
 
 | 
 评论 |