在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關 閉

            新聞中心

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

            基于MSP430內嵌溫度傳感器的溫度告警系統(tǒng)

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

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

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

            4. 軟件描述
            另一個突出優(yōu)點就是用C語言編寫程序簡捷而且編譯效率很高。下面就以F449為例來簡要描述這個的軟件實現。圖3為程序流程。

            #include msp430x44x.h // 包含頭文件
            #include math.h> //包含數學運算頭文件
            #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; //定時器初始化,工作在up模式
            CCTL0|=CCIE; //使能CCR0中斷
            CCR0=0x0FF; //設定定時值
            _EINT(); //打開中斷
            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++;i16) //連續(xù)進行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. 結束語
            本文只是對告警部分進行了描述,若是再加上液晶就可以實時顯示溫度,加上鍵盤就可以對室溫、告警溫度進行預設,再對上述程序進行一些改進就是一個實用的了。因這兩部分相對比較簡單和成熟,文中沒有進行進一步討論。


            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉