ADC转换电压转化成温度

ADC转换电压转化成温度

ID:40529911

大小:15.39 KB

页数:4页

时间:2019-08-04

ADC转换电压转化成温度_第1页
ADC转换电压转化成温度_第2页
ADC转换电压转化成温度_第3页
ADC转换电压转化成温度_第4页
资源描述:

《ADC转换电压转化成温度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include"msp430x14x.h"#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong//共阳数码管编码表ucharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段选ucharseg[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//ucharBit[4]={0x01,0x02,

2、0x04,0x08};//位选ucharBitCode=0x80;//数码管位码初值uintADCBuf[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//保存采集到的数据ulongSum=0;//20个数据的和doubleTBuf=0;ucharCount=0;inta=0,b=0,c=0,d=0;//时钟初始化函数voidInitClock(void){BCSCTL1=RSEL2+RSEL1+RSEL0;//XT2开启LFXT1工作在低频模式ACLK不分频最高的标称频率

3、DCOCTL=DCO2+DCO1+DCO0;//DCO为最高频率do{IFG1&=~OFIFG;//清除振荡器失效标志for(uinti=255;i>0;i--);}while(IFG1&OFIFG);//判断XT2是否起振BCSCTL2=SELM1+SELS;//MCLKSMCLK时钟源为TX2CLK不分频}//ms级延时子程序voidDelayMs(uintms){while(ms--){for(uinti=0;i<800;i++);}}//数码管扫描显示程序voidDisplay(void){P4OUT=Code

4、[a];P5OUT=Bit[0];for(uinti=0;i<100;i++);P4OUT=seg[b];P5OUT=Bit[1];for(uinti=0;i<100;i++);P4OUT=Code[c];P5OUT=Bit[2];for(uinti=0;i<100;i++);P4OUT=Code[d];P5OUT=Bit[3];for(uinti=0;i<100;i++);}//ADC12初始化voidInitADC12(void){/*P6SEL

5、=0x01;ADC12CTL0&=~ENC;//ENC设置为0从而修

6、改ADC12寄存器ADC12MCTL0=INCH_0+SREF_0;//参考电压为VREF+和AVss输入温度传感器ADC12CTL1=CSTARTADD_0+SHP+CONSEQ_2+ADC12SSEL_1+ADC12DIV_0;//起始地址ADCMEM0,采样脉冲由采样定时器产生,单通道多次转换,内部时钟源不分频ADC12CTL0=MSC+ADC12ON+REFON;//采样信号由SHI仅首次触发,打开ADC12模块VREF打开1.5V//ADC12CTL0=ENC;*/ADC12CTL0=SHT0_2+ADC12

7、ON;//Setsamplingtime,turnonADC12ADC12CTL1=SHP;//Usesamplingtimer//ADC12IE=0x01;//EnableinterruptADC12CTL0

8、=ENC;//ConversionenabledP6SEL

9、=0x01;//P6.0ADCoptionselect}//计算电压值voidGetT(void){for(uchari=0;i<20;i++)Sum+=ADCBuf[i];TBuf=(Sum*3.3)/(20*4095)*18.64;//计算电压1.

10、5为外部参考电压Sum=0;//计算数码管各位要显示的数值a=(int)TBuf%100/10;b=(int)TBuf%10;TBuf=TBuf-(int)TBuf;TBuf=TBuf*100;c=(int)TBuf/10;d=(int)TBuf%10;}//定时器A初始化voidInitTimerA(void){TACTL=TASSEL1+ID1+ID0+MC0+TACLR;//选择1/8SMCLK增计数清除TARCCTL0=CCIE;//CCR0中断允许比较模式CCR0=20000;//时间间隔20ms}voidb

11、aojing(){if(a>=4){P2OUT

12、=0x01;P2OUT

13、=0x02;}}voidmain(){unsignedchari;WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P4DIR

14、=0xFF;P5DIR

15、=0xFF;P2DIR

16、=0xFF;InitClock();//时钟初始化函数InitTimerA()

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

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

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