Hi! 欢迎来到传感器视角请登录注册rss订阅

传感器视角,传感器门户网,传感器商城


当前位置:传感器门户网 > 传感器资讯 > 温湿度传感器 > 基于MSP430内嵌温度传感器的温度告警系统(3)
201111/03

基于MSP430内嵌温度传感器的温度告警系统(3)


P2DIR|=BIT0+BIT1; //P2.0和P2.1为告警输出;
}
void ADC12(void)
{
ADC12CTL0 &=~ ENC; //在进行设置时首先复位ADC的转换使能
ADC12CTL0 = ADC12ON+REF2_5V+SHT0_8; //采用内部2.5V参考,打开通道10REFON自动打开
ADC12CTL1 = SHP+ADC12SSEL_2; //上升沿采样,主时钟,MEM0
ADC12MCTL0 = EOS + INCH_10+SREF_1; //选择通道10,Vref+为参考电压,进行温度测量
ADC12CTL0 |= ENC;
ADC12CTL0 |= ADC12SC; // 开始转换
if ((ADC12IFG & BIT0)==1) //如果转换完毕,读走数据
ADC_Result[i]=ADC12MEM0;
}
void Alarm(float t)
{
if(t>=Th)
P2OUT|=BIT1; //高温告警
else if(t<=Tl)
P2OUT|=BIT0; //低温告警
else
P2OUT&=~(BIT0+BIT1); //无告警
}
interrupt[TIMERA0_VECTOR] void Timer_A (void) //中断处理子程序//
{
int ADC_Sum=0;
float Vst;
for (i=0;i++;i<16) //连续进行16次转换,提高精度
{
ADC12();
ADC_Sum +=ADC_Result[i]; //求和
i++;
}
ADC_Sum>>=4; //将ADC_Sum右移4位,相当于除以16.得到平均的结果;
Vst=( ADC_Sum /4095.0)*2500; //完成转换,得到电压值
k++;
#ifndef Trt
T=(Vst-986)/3.35; //测出用0度作基准的温度
#else
if (k==1) Vrt=Vst; //如果定义Trt,则将第一次的转换结果作为室温下的Vrt
T=(Vst-Vrt)/3.35+Trt; //测出用室温作基准时的温度
#endif
Alarm(T); //告警处理
}
void main (void)
{
init(); //初始化
LPM1; //进入低功耗模式1;
}

5. 结束语
本文只是对告警部分进行了描述,若是再加上液晶就可以实时显示温度,加上键盘就可以对室温、告警温度进行预设,再对上述程序进行一些改进就是一个实用的系统了。因这两部分相对比较简单和成熟,文中没有进行进一步讨论。


文章作者:传感器编辑
本文地址:
版权所有 © 未注明“转载”的博文一律为原创,转载时必须以链接形式注明作者和原始出处!
如果你觉得文章不错,您可以推荐给你的朋友哦!

◇◇上一篇:CC2430与DS18B20的粮库温度传感器网络设计 下一篇:TMP05/06型温度传感器及其应用 ◇◇

相关文章

发表评论:                              


验证码:点击我更换图片

来看看其他人说了些什么?-----------------------------------------------------------------> 进入详细评论页