<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于MSP430內嵌溫度傳感器的溫度告警系統

基于MSP430內嵌溫度傳感器的溫度告警系統

作者: 時(shí)間:2009-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
A/D轉換引入的誤差
由芯片資料可見(jiàn),對于12位A/D,因漏電流引入的誤差1LSB,這個(gè)誤差可以忽略不記。但是由于布線(xiàn)技術(shù)和電源和地線(xiàn)等的不良而導致的電源線(xiàn)、地線(xiàn)上的紋波和噪聲脈沖對轉換結果的影響卻不能不考慮。如圖1所示,如果數字地DVss和模擬地AVss是分開(kāi)供電的,則可以在這兩點(diǎn)之間接入反相并接的二極管對,以消除700mV的電壓差。另外如果參考電壓(VR+ - VR-)較小,那么紋波的影響會(huì )變得更明顯,從而影響轉換精度。因此,電源的清潔無(wú)噪聲對A/D轉換的精度有很大的影響。當然在可能的情況下還是要盡量采用較大的(VR+ - VR- )。還有就是盡量不要采用內部參考,內部參考不太穩定,會(huì )影響轉換的精度。仔細安排各自接地點(diǎn)的旁路電容對于減小噪聲的影響也是很有用的。圖1給出了一種典型的退耦電容配置方式,在芯片的電源以及外接參考電壓(圖中沒(méi)有畫(huà)出)的引腳上并接一個(gè)10uF的鉭電容和一個(gè)0.1uF的瓷片電容能夠較好的起到抑制噪聲的作用。

本文引用地址:http://dyxdggzs.com/article/163459.htm

采用內嵌測量,要受到很多方面的影響。除了上面討論的方法,還有減小誤差的一般方法,比如多次測量取平均等。所以要綜合考慮各方面的因素,才能取得滿(mǎn)意的效果。

4. 軟件描述
另一個(gè)突出優(yōu)點(diǎn)就是用C語(yǔ)言編寫(xiě)程序簡(jiǎn)捷而且編譯效率很高。下面就以F449為例來(lái)簡(jiǎn)要描述這個(gè)的軟件實(shí)現。圖3為程序流程。

#include msp430x44x.h // 包含頭文件
#include math.h> //包含數學(xué)運算頭文件
#define Trt 25 //預先測量到的室溫
#define Th 50 //高溫告警
#define Tl 0 //低溫告警溫度
int i=0, k=0,Vrt; //定義全局變量
int ADC_Result[16];
float T; //測量到的溫度
void init(void); //初始化函數
void ADC12(void); //A/D轉換函數
void Alarm(float t); //告警處理函數
void init(void)
{
TACTL=TASSEL1+TACLR+MC_1; //定時(shí)器初始化,工作在up模式
CCTL0|=CCIE; //使能CCR0中斷
CCR0=0x0FF; //設定定時(shí)值
_EINT(); //打開(kāi)中斷
P2DIR|=BIT0+BIT1; //P2.0和P2.1為告警輸出;
}
void ADC12(void)
{
ADC12CTL0 =~ ENC; //在進(jìn)行設置時(shí)首先復位ADC的轉換使能
ADC12CTL0 = ADC12ON+REF2_5V+SHT0_8; //采用內部2.5V參考,打開(kāi)通道10REFON自動(dòng)打開(kāi)
ADC12CTL1 = SHP+ADC12SSEL_2; //上升沿采樣,主時(shí)鐘,MEM0
ADC12MCTL0 = EOS + INCH_10+SREF_1; //選擇通道10,Vref+為參考電壓,進(jìn)行溫度測量
ADC12CTL0 |= ENC;
ADC12CTL0 |= ADC12SC; // 開(kāi)始轉換
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); //無(wú)告警
}
interrupt[TIMERA0_VECTOR] void Timer_A (void) //中斷處理子程序//
{
int ADC_Sum=0;
float Vst;
for (i=0;i++;i16) //連續進(jìn)行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; //測出用室溫作基準時(shí)的溫度
#endif
Alarm(T); //告警處理
}
void main (void)
{
init(); //初始化
LPM1; //進(jìn)入低功耗模式1;
}

5. 結束語(yǔ)
本文只是對告警部分進(jìn)行了描述,若是再加上液晶就可以實(shí)時(shí)顯示溫度,加上鍵盤(pán)就可以對室溫、告警溫度進(jìn)行預設,再對上述程序進(jìn)行一些改進(jìn)就是一個(gè)實(shí)用的了。因這兩部分相對比較簡(jiǎn)單和成熟,文中沒(méi)有進(jìn)行進(jìn)一步討論。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 溫度 系統 傳感器 基于 MSP430

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>