MSP430内部温度传感器测试程序

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MSP430内部温度传感器测试程序

//MSP430基础实验开发组件 - ADC12内部模块演示程序之内部温度传感器

//时钟设置:

////ACLK = n/a, MCLK = SMCLK = default DCO ~ 800kHz, ADC12CLK = ADC12OSC //当前演示程序功能描述:

////利用MSP430F14X内部的温度传感器,通过ADC12的通道10进行AD转换

////计算取得摄氏温度和华氏温度,通过断点在View->Watch中观察温度值

////由于定标问题, 可能会存在温度的误差

#include

unsigned int long temp;

unsigned int long

TemperF;

//华氏温度

unsigned int long

TemperC;

//摄氏温度

void main(void) {

WDTCTL = WDTPW +

WDTHOLD; //关闭系统看门狗 ADC12CTL0 = SHT0_8 + REFON + ADC12ON; //内部1.5V参考电压,打开ADC12模块,设置采样保持定时器

ADC12CTL1 =

SHP;

//采使用采样定时器

ADC12MCTL0 = SREF_1 +

INCH_10; //参考电压和通道选择 ADC12IE =

BIT0;

//ADC12MEM0

ADC12CTL0 |=

ENC;

//允许转换

_BIS_SR(GIE);

//开启系统中断

while(1) {

ADC12CTL0 |=

ADC12SC; //开始采样并AD转换

//oF = ((x/4096)*1500mV)-923mV)*1/1.97mV = x*761/4096 - 468

//IntDegF = (ADC12MEM0 - 2519)* 761/4096

TemperF = (temp - 2519) * 761;

TemperF = TemperF /

4096; //简化的华氏温度转换公式

//oC = ((x/4096)*1500mV)-986mV)*1/3.55mV = x*423/4096 - 278

//IntDegC = (ADC12MEM0 - 2692)* 423/4096

TemperC = (temp - 2692) * 423;

TemperC = TemperC /

4096; //简化的摄氏温度转换公式

_NOP();

//加入断点可用来观察IntDegF和IntDegC结果

}

}

#pragma vector=ADC_VECTOR

__interrupt void ADC12ISR(void) {

temp =

ADC12MEM0;

//保存转换结果

}

相关文档
最新文档