AD 采集程序(好)

AD 采集程序(好)

ID:40523907

大小:18.43 KB

页数:10页

时间:2019-08-04

AD 采集程序(好)_第1页
AD 采集程序(好)_第2页
AD 采集程序(好)_第3页
AD 采集程序(好)_第4页
AD 采集程序(好)_第5页
资源描述:

《AD 采集程序(好)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STC12C5A60S2单片机的10位AD转换程序2010-11-1023:59//****************************************STC12C5A60S2AD转换***********************************************//#include"stc12c5a.h"//头文件在STC公司主页上下载#include"stdio.h"#include"intrins.h"//-------------------------------------------

2、-----------------------------------voidAD_init();voidserial_init();voiddelay(unsignedinta);floatAD_work(unsignedcharchannel);unsignedintAD_get(unsignedcharchannel);//------------------------------------------------------------------------------voidmain(){AD_init()

3、;   //A/D转换初始化serial_init();  //串口初始化while(1){  unsignedchari;  for(i=0;i<8;i++)//循环发送P1.0-P1.7的转换数值  {   TI=1;   //使用printf函数前须先将发送标志位TI置1   printf("TheP1.%bdvoltageis%f",i,AD_work(i));   TI=0;   delay(1000);//延时约1s  }}}//---------------------------------------

4、---------------------------------------unsignedintAD_get(unsignedcharchannel){ADC_CONTR=0x88

5、channel;   //开启AD转换10001000即POWERSPEED1SPEED0ADC_FLAG  ADC_STARTCHS2CHS1CHS0_nop_();_nop_();_nop_();_nop_();//要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR寄存器while(!(ADC_CONTR&0x10))

6、;   //等待转换完成ADC_CONTR&=0xe7;     //关闭AD转换,ADC_FLAG位由软件清0return(ADC_RES*4+ADC_RESL);  //返回AD转换完成的10位数据(16进制)}//------------------------------------------------------------------------------floatAD_work(unsignedcharchannel){floatAD_val;    //定义处理后的数值AD_val为浮点数unsign

7、edchari;for(i=0;i<100;i++)AD_val+=AD_get(channel);//转换100次求平均值(提高精度)AD_val/=100;AD_val=(AD_val*5)/1024;//AD的参考电压是单片机上的5v,所以乘5即为实际电压值returnAD_val;}//------------------------------------------------------------------------------voiddelay(unsignedinta)//延时约1ms{unsign

8、edinti;while(--a!=0)for(i=600;i>0;i--);  //1T单片机i=600,若是12T单片机i=125}//------------------------------------------------------------------------------voidserial_init(){TMOD=0x20;TH1=0xfd;TL1=0xfd;//设置9600波特率SCON=0x50;//串口方式1,允许接收TR1=1;}//----------------------------

9、--------------------------------------------------voidAD_init(){P1ASF=0xff;//P1口全部作为模拟功能AD使用ADC_RES=0;  //清零转换结果寄存器高8位ADC_RESL=0;//清零转换结果寄存器低2位ADC_CONTR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。