历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2018年01月08日 | STC12C4052AD STC单片机ADC采样C程序

2018-01-08 来源:eefocus

#include "STC12C4052AD.h"  
typedef struct  
{  
BOOL Run; //BOOL量作为定时采样标志,比如每隔3秒,置位一 
次该标志  
BYTE Curch; //当前通道  
BYTE tempCvData[6]; //转换结果临时缓冲  

BYTE CvTimes; //采样次数 采样4次,去最大最小,保留4个取平均值  
BYTE ADData[MAX_ADCH]; //MAX_ADCH保存各通道最终采样数据  
}STADC;  
STADC ADC;  
void InitADC()  
{  
Uint16 i;  
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转换器  
}  
void ADCISR() interrupt ADC_VECTOR  
{  
ADC_CONTR &= ADC_STOP; //stop AD  
ADC.Run = FALSE;  
ADC.tempCvData[ADC.CvTimes] = ADC_DATA;//取转换值  
ADC_DATA = 0;  
ADC.CvTimes++;  
ADC.CvTimes %= 6;  
if(ADC.CvTimes!=0)  
{  
ADC_CONTR |= ADC_START; //启动AD转换器  
ADC.Run = TRUE;  

}  
ADC_CONTR &= ADC_FLAG; //清除ADC_FLAG 中断标志  
}  
void Proc_ADC()  
{  
Uint16 CvSum = 0,i;  
BYTE MaxCv=0,MinCv=0;  
if(ADC.Run||ADC.CvTimes!=0) //AD还在进行,等待  
return;  
for(i=0;i<6;i++)  
{  
if(ADC.tempCvData[i]>MaxCv)  
MaxCv = ADC.tempCvData[i];  
if(ADC.tempCvData[i]MinCv = ADC.tempCvData[i];  
}  
for(i=0;i<4;i++)  
CvSum += ADC.tempCvData[i];  
CvSum = CvSum-MaxCv-MinCv;  
ADC.ADData[ADC.Curch] = (CvSum>>2);  
ADC.Curch++;  
ADC.Curch %= MAX_ADCH  
ADC_CONTR &= 0xF8; //先清除当前通道值  
ADC_CONTR |= ADC.Curch; //设置下一通道  
ADC.Run = TRUE; //标志ADC正在转换  
for(i=0;i<500;i++); //通道切换延时 100us左右  
ADC_CONTR |= ADC_START; //启动AD转换器  


推荐阅读

史海拾趣

登丰微(GSTEK)公司的发展小趣事

随着电子行业的快速发展和市场需求的不断变化,歌普电子也在积极调整战略布局,以应对未来的挑战和机遇。公司不仅在现有产品领域持续深耕细作,还积极探索新的业务领域和增长点。通过多元化布局和不断创新,歌普电子致力于成为电子行业的领军企业之一。未来,歌普将继续秉承“创新、高效、尊重、负责”的文化理念,为客户提供更加优质的产品和服务,共同推动电子行业的繁荣发展。

EPIGAP公司的发展小趣事

随着公司业务的不断拓展,EPIGAP公司意识到单靠自身力量难以应对日益复杂的市场环境。于是,公司开始积极寻求与产业链上下游企业的战略合作。通过与原材料供应商、代工厂商以及终端客户的紧密合作,EPIGAP公司实现了产业链的整合优化,提高了整体运营效率。这一战略不仅降低了公司的运营成本,还增强了公司的市场竞争力。

迪一电子公司的发展小趣事

随着数字化和智能化技术的不断发展,迪一电子公司意识到必须跟上时代的步伐。于是,公司开始推进数字化转型和智能化生产。通过引入先进的生产设备和信息系统,优化生产流程,提高生产效率。同时,公司还注重人才培养和引进,建立了一支高素质的技术和管理团队。这些努力使迪一电子在数字化和智能化方面取得了显著成果,提高了公司的竞争力和市场地位。

DIPTRONICS MANUFACTURING INC公司的发展小趣事

在稳定国内市场的基础上,圜达实业积极拓展海外市场。凭借优良的品质和快速的交期,公司的产品逐渐打入国际市场,并赢得了众多客户的信赖。如今,圜达实业的产品已营销至全球100余个国家,遍及五大洲。

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

博众电气始终坚信,品质是企业生存和发展的根本。因此,公司始终将品质管理放在首位,并严格执行ISO9001等国际质量管理体系标准。

为了进一步提升产品品质和管理水平,博众电气还积极申请并通过了多项国际认证。这些认证不仅证明了博众电气的产品品质和管理水平达到了国际先进水平,还为公司的国际化发展提供了有力保障。

Data Translation Inc公司的发展小趣事

Data Translation Inc公司成立于1973年,初期专注于数据采集和处理技术的研发。在成立初期,公司就凭借对技术的深刻理解和敏锐的市场洞察力,成功开发了一系列具有创新性的数据采集和处理产品。这些产品不仅满足了当时工业界对高精度、高速度数据采集的需求,还引领了整个行业的发展方向。随着技术的不断进步和市场需求的不断变化,Data Translation不断推出新产品,逐渐确立了其在数据采集和处理领域的领先地位。

问答坊 | AI 解惑

车载移动电视接收的系统方案

在柏林推出的DVB T(地面数字广播)数字电视也已经影响到汽车娱乐系统中的电视接收。现在,汽车电视接收机不仅能够接收模拟电视信号(它仍将在城市以外的地区继续存在数年),而且也能够接收和处理DVB T信号。Hirschmann Electronic ...…

查看全部问答>

S3C2410完全开发流程

这是一篇关于s3c2410的开发文档的资料,以及linux的一些实验…

查看全部问答>

无线收发模块汇总

本帖最后由 paulhyde 于 2014-9-15 09:12 编辑 :P :P :P :P :P :P :P :P :P :P :P 好东西与各位分享!  …

查看全部问答>

电子书---高频电路设计与制作

发一本高频电路设计与制作,日本人写的。感觉还不错。不过有点大,40M,分享啦…

查看全部问答>

单片机双电源切换

请问老师:+5V单片机双电源自动及手动切换用哪种芯片?谢谢!…

查看全部问答>

医用自动洗片机控制器的研制

  1 引 言   洗片机是各医院影像科的必需设备。医院影像科每天要冲洗大量的x-射线透射胶片,工作量大,且洗片操作有一定难度,对操作人员专业技术要求高,另外,洗片时化学药液对人体有伤害。因此,目前医院大多采用医用自动洗片机。进口的 ...…

查看全部问答>

WINCE 5.0 输入法如何实现,

我使用 ARM 2440开发板, 使用WINCE 5.0 (中文)OS, 现在想实验软键盘 汉字输入 和手写 输入。 请前辈们 描述一下实现 思路。 …

查看全部问答>

串口接收不定长字符串

void InitSio(void) {         u16 RELOAD_COUNT = 0;                 //使用独立波特率发生器作为波特率发生器     S2CON    =   0x50;  ...…

查看全部问答>

PB的编译问题

新装的WIN XP SP2, 番茄花园, 然后装PB5.0, 先装.net framework 1.1, 然后装PB5.0(CPU选择了ARMV4I, X86, Emulator). PB5.0 装好之后,就新建工程编译了,这时EVC, VS2005等都还没有装. 用自带的2410BSP新建工程编译的时候出现错误: \"Invalid  ...…

查看全部问答>

电脑拆卸后无法开机

我的电脑拆卸了一次再重新装上后就无法启动了,按电源后只显示品牌标志.…

查看全部问答>