嵌入式ADC采样程序C语言,STC12C4052AD STC单片机ADC采样C程序

本文介绍了如何使用C语言在STC12C4052AD单片机上实现嵌入式ADC采样程序。通过初始化ADC模块,设置P口为AD模式,配置中断,以及在中断服务程序中进行数据处理,实现了对多个通道的采样,取平均值以降低噪声。采样过程包括启动AD转换、存储转换结果以及切换通道。
摘要由CSDN通过智能技术生成

#include"STC12C4052AD.h"

typedefstruct

{

BOOLRun;//BOOL量作为定时采样标志,比如每隔3秒,置位一

次该标志

BYTECurch;//当前通道

BYTEtempCvData[6];//转换结果临时缓冲

BYTECvTimes;//采样次数采样4次,去最大最小,保留4个取平均值

BYTEADData[MAX_ADCH];//MAX_ADCH保存各通道最终采样数据

}STADC;

STADCADC;

voidInitADC()

{

Uint16i;

ADC_CONTR=0xC0;//ADC模块加电,420周期转换一次

for(i=0;i<20000;i++);//ADC电源开启后,延时

//设置P口外AD模式

P1M0=0x03;//ADC0/1高阻输入

P1M1=0x00;

EADC_SPI=1;//开放ADCSPI总中断

ADC_DATA=0;

AUXR=EADCI;//开放ADC中断

MEMSet(&ADC,0,sizeof(STADC));

//启动0号通道

ADC.Curch=0;

ADC_CONTR|=ADC.Curch;//设置下一通道

ADC.Run=TRUE;//标志ADC正在转换

ADC_CONTR|=ADC_START;//启动AD转换器

}

voidADCISR()interrupt

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值