
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch ;//开始转换
这是用STC单片机内部A/D转换电路进行A/D转换时,要给A/D控制寄存器ADC_CONTR写启动转换命令,ADC_CONTR是ADC控制寄存器,其中的每一位的作用见下图,而这行语句前面肯定要有定义每一位状态的语句,或用#define宏定义了各位的值。
简单点,建立32位变量A,每采样一次就加到A,采样完8次再除以8就好了,
u16 ADC_ZKB(u8 Channel)
{
u32 value1=0;
u16 value;
u8 i;
for(i=0;i<8;i++)
{
ADC_CSR = Channel & 0x0F; // 选择AD转换通道
ADC_CR1 |= 0x01; // 启动AD转换
while(!(ADC_CSR & 0x80)); // 等待AD转换完成
value = ADC_DRL;
value |=((ADC_DRH<<8)&0X0300);
value1+=value;
ADC_CSR = 0x00;
}
return (value1/8);
}
大概这意思,怎么定义32位数,这个自己去查,因为AD采样时间比较久,估计这样FOR可能不合适,自己可以改改。
以上就是关于单片机AD转换用的这段程序意思是什么全部的内容,包括:单片机AD转换用的这段程序意思是什么、求修改单片机AD口多次采样求平均值的程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)