基于SC92F725X的ADC

本文介绍了基于SC92F7251微控制器进行ADC开发的经验,详细阐述了如何根据烧录软件的Vref设置(如2.4V或VDD)调整代码中的VCC参数,以确保被比较电压不超过限制。对于Vref设为2.4V的情况,代码中的电压上限为2.39V;若设为VDD(5.00V),则电压限制不同。

 基于SC92F7251开发的ADC代码,因为,所以公式中的4096就是这么来的(2的12次方)

float VCC = 2.40;//这里要看烧录软件的选择而变动

enum Pin {AIN0=0,AIN1,AIN4=4,AIN5,AIN6,AIN7,AIN8,AIN9,VDD4=15};//枚举
void ADC_Init(uint Pin)
{
	ADCCON = 0x80|Pin;
	if(Pin<8)
	{
		ADCCFG0 = 1<<Pin;   //设置Channel作为采样口
	}
	else
	{
		ADCCFG1 = 1<<(Pin-8);   //设置Channel作为采样口
	}
}

float ADC_Test(void)
{
	float	ADC_Sum = 0, ADC_Value = 0, Max = 0, Min = 5000;
	uchar t=0;
	
	for(t=0;t<10;t++)           //转换10次
	{
		ADCCON |= 0x40;              //开始转换
		while(!(ADCCON&0x10));        //等待 ADC 转换完成
		ADCCON &= ~(0x10);           //清除标志位
//		ADC_Value = ADCVH*16 + ADCVL/16; //与移位是一样的效果
		ADC_Value = (ADCVH<<4) + (ADCVL>>4); 
		if(ADC_Value >= Max)Max = ADC_Value;  //获取最大值
		if(ADC_Value <= Min)Min = ADC_Value;  //获取最小值
		ADC_Sum = ADC_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值