亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機的高精度溫度測量系統(tǒng)設(shè)計

        2011-06-30 01:09:38何宗虎,張德祥,張玲君
        現(xiàn)代電子技術(shù) 2011年9期
        關(guān)鍵詞:單片機

        何宗虎, 張德祥, 張玲君

        摘 要:提出采用單總線數(shù)字式溫度傳感器DS18B20 和單片機組成的新型高精度溫度測量儀的設(shè)計。介紹了溫度傳感器DS18B20的結(jié)構(gòu)、特點和工作原理,設(shè)計了DS18B20和AT89S52單片機的溫度測量系統(tǒng)硬件電路和軟件編程,主要包括溫度采集、溫度顯示及報警控制等功能。整個系統(tǒng)具有結(jié)構(gòu)簡單,測量精度高,傳輸距離遠,抗干擾能力強,溫度讀取方便和造價低等一系列優(yōu)點,適用于生產(chǎn)生活及科學(xué)研究中對溫度的測量,應(yīng)用前景十分廣闊。

        關(guān)鍵詞:溫度測量; 單片機; DS18B20; 數(shù)碼管顯示

        中圖分類號:TN876-34

        文獻標識碼:A

        文章編號:1004-373X(2011)09-0130-03

        Design of High-accuracy Temperature Detecting System Based on Single Chip Microcomputer

        HE Zong-hu, ZHANG De-xiang, ZHANG Ling-jun

        (Institute of Electrical Engineering and Automation, Anhui University, Hefei 230039, China)

        Abstract: A new high-accuracy temperature detecting system based on single-bus digital temperature sensor DS18B20 and single chip microcomputer (SCM) is proposed. In this paper, the structure, characteristics and working principle of temperature sensor DS18B20 is introduced. Hardware circuit and software programming (including temperature acquisition, temperature display and alarm control functions) of the temperature measurement system are designed based on DS18B20 and AT89S52 SCM. The whole system has a series of advantages of simple structure, high detection accuracy, long transmission distance, strong anti-interference ability, easy to read temperature and low cost. It has a bright application future in daily life and scientific research for temperature measurement.

        Keywords: temperature measurement; SCM; DS18B20; nixie display

        0 引 言

        溫度是工業(yè)生產(chǎn)過程和實驗過程中比較重要的一個參數(shù),精確的溫度測量和及時的顯示溫度是很重要的。目前溫度測量系統(tǒng)種類繁多,功能參差不齊。單片機具有體積小,價格便宜,通用性和靈活性強的特點,利用單片機設(shè)計溫度測量系統(tǒng),既可以滿足功能要求,又經(jīng)濟實惠。數(shù)字溫度測量傳感器DS18B20是單一總線的高精度測量器件,它克服了以前模擬式傳感器與微機接口時需要的A/D轉(zhuǎn)換器及其他復(fù)雜外圍電路的缺點[1]。本文就是運用單片機及其接口和集成單總線溫度傳感器DS18B20構(gòu)建一個高精度的溫度測量和顯示系統(tǒng),并且通過開關(guān)進行溫度上限的設(shè)置,如果溫度超過設(shè)定值就會報警或進行相應(yīng)的控制命令。設(shè)計的電路簡單,易于實現(xiàn),而且還具有一定的擴展功能,可以擴展成多點采集和更復(fù)雜的功能。

        1 系統(tǒng)硬件設(shè)計

        整個系統(tǒng)主要由主控中心(單片機) 、溫度傳感器DS18B20、數(shù)碼管顯示及開關(guān)控制等功能模塊組成[2-3]??梢酝ㄟ^開關(guān)調(diào)節(jié)報警溫度的上限,既可以使上限增加,也可以使上限減小,這樣就可以用于不同場合了,系統(tǒng)的框圖如圖1所示。

        圖1 系統(tǒng)硬件結(jié)構(gòu)框圖

        1.1 溫度傳感器DS18B20

        DS18B20是美國Dallas半導(dǎo)體公司生產(chǎn)的數(shù)字式溫度傳感器,提供9位溫度讀數(shù),指示溫度[4-5]。溫度信息通過單線接口送入DS18B20或者從DS18B20送出,所以從處理器到DS18B20僅需連接一條線。讀、寫和完成溫度變換所需的電源可以由數(shù)據(jù)本身提供,而不需要外部電源。這使得DS18B20與單片機接口變得很簡單,克服了模擬式傳感器與微機接口時需要的A/D轉(zhuǎn)換及其他復(fù)雜外圍電路的缺點,而且它具有結(jié)構(gòu)簡單、成本低、體積小、抗干擾能力強、使用簡單等優(yōu)點。最重要的是DS18B20的ROM中存有其芯片的惟一標識碼,即任意兩個DS18B20的標識碼是不同的,特別適合與微處理芯片構(gòu)成多點溫度測量控制系統(tǒng)。DS18B20是DS1820的改進型,分辨率為9~12位可編程控制,由其寄存器R0,R1的兩位狀態(tài)決定。測量范圍從-55~+125 ℃,增量值為0.5 ℃。

        DS18B20在內(nèi)部以時鐘周期個數(shù)計數(shù)來測量溫度,并且提供0.5 ℃的分辨率。溫度讀數(shù)以16位、符號擴展的二進制補碼讀數(shù)形式提供。需要注意的是在DS18B20中溫度以1/2 ℃LSB(最低有效位) 形式表示時,產(chǎn)生以下9位格式:

        MSB LSB

        1

        11100110

        1.2 鍵盤控制設(shè)計

        系統(tǒng)工作前先由用戶自己設(shè)定一個兩位溫度值作為報警值,打開電源,單片機復(fù)位初始化,閉合開關(guān)中斷程序,按復(fù)位開關(guān),每按一次報警值就會在初始化的基礎(chǔ)上加1 ℃,數(shù)碼管顯示設(shè)定值[6-8]。用戶進行核對查看顯示的數(shù)字值是否與設(shè)置值一樣,然后打開開關(guān)進行周圍溫度測量值傳輸。由于報警值可以由用戶自己設(shè)定,故系統(tǒng)能適應(yīng)各種不同溫度的環(huán)境。

        1.3 其他的部分

        系統(tǒng)主要采用的是7段共陽極數(shù)碼管顯示測量的溫度值,由發(fā)光二極管和蜂鳴器進行報警。如果測的溫度值高于設(shè)定值1 ℃,報警系統(tǒng)就會報警(發(fā)光二極管點亮,蜂鳴器鳴響)。這樣可以從聲音和視覺上收到系統(tǒng)的警報。

        1.4 系統(tǒng)的電路原理圖

        系統(tǒng)的電路原理圖如圖2所示。

        圖2 系統(tǒng)電路原理圖

        2 軟件設(shè)計

        系統(tǒng)開始工作時,首先進行I/O口初始化、報警值初始化,然后判斷開關(guān)是否閉合,由用戶自己在原報警值的基礎(chǔ)上更改,確定后由單片機控制軟件發(fā)出溫度讀取指令,通過數(shù)字溫度傳感器DS18B20采集當前溫度值,轉(zhuǎn)換后經(jīng)過單總線傳輸給單片機,單片機經(jīng)過處理由數(shù)碼管顯示,如果超出設(shè)置的報警值1 ℃,系統(tǒng)就會報警(發(fā)光二極管點亮、蜂鳴器鳴響) [9-10]。系統(tǒng)的軟件部分主要是由中斷子程序、讀寫DB18B20程序、顯示程序和報警系統(tǒng)四部分組成,主程序流程圖如圖3所示。

        圖3 主程序流程圖

        設(shè)計的部分程序如下:

        #include

        #include

        #include

        sbit DQ = P3^2;//定義DS18B20的數(shù)據(jù)口

        sbit SET=P3^3;//定義報警值的控制開關(guān)

        unsigned char TAP[10]= //共陽極,不帶點

        {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};

        unsigned char TAP2[10]=//共陽極,帶點

        {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};

        //定義一個存放轉(zhuǎn)換后溫度值的數(shù)組,溫度值為字符型(ASCII碼),小數(shù)點后保留2位

        unsigned char str[10];

        //延時子程序,延時(10*D+3)us

        void delay_10us(unsigned char D)

        {unsigned char i;

        for (i=0;i

        {_nop_();//空操作,一個指令周期

        _nop_();

        }

        }

        //DS18B20初始化

        void INIT(void)

        {DQ = 0;

        delay_10us(50); //等待500 μs

        DQ = 1;//釋放18B20數(shù)據(jù)線。

        delay_10us(9); //等待90 μs

        while (!DQ);//等待18B20準備好

        }

        //讀DS18B20的程序

        unsigned char READ(void)

        {unsigned char i;

        unsigned char D = 0;

        for (i=0;i<8;i++) //讀8位數(shù)據(jù)

        {D=D>>1; //先讀數(shù)據(jù)低位

        DQ = 0;

        _nop_ ();

        DQ = 1; //釋放18B20數(shù)據(jù)線

        for (j=1;j<9;j++)

        {_nop_(); }

        if(DQ) D += 0x80; //如果數(shù)據(jù)線上是″1″,D最高位為″1″,否則為″0″

        delay_10us (6);

        }

        return D;//返回值為D,即讀出的一個字節(jié)數(shù)據(jù)。

        }

        //寫DS18B20的程序

        void WRITE(unsigned char D)

        {unsigned char i;

        for (i=0;i<8;i++)

        {DQ = 0;

        if (D & 0x01) DQ = 1;

        elseDQ = 0;

        delay_10us(8);

        DQ = 1;

        D = D >> 1;//右移一位,準備寫下一位

        }

        }

        //顯示程序(str數(shù)組內(nèi)元素是ASCII碼,所以要減去48)

        void display(void)

        {unsigned char i;

        unsigned char j=100;

        while(j--)

        {

        for (i=0;i<255;i++)

        { P0 = TAP [str[0]-48];

        P2 = 0x1;

        }

        for (i=0;i<255;i++)

        { P0 = TAP2[str[1]-48];

        P2 = 0x2;

        }

        for (i=0;i<255;i++)

        {P0 = TAP[str[3]-48];

        P2 = 0x4;

        }

        for(i=0;i<255;i++)

        {P0 = TAP[str[4]-48];

        P2 = 0x8;

        }

        }

        }

        //主程序

        void main()

        {unsigned char warning=30;

        unsigned char TMP_H = 0;

        unsigned char TMP_L = 0;

        shortTMP= 0; //短整型數(shù)據(jù)

        float TMP_F = 0; //浮點型數(shù)據(jù)

        P1_0=0; //開機時測試溫度超限警報LED燈

        while(1)

        {

        while(!SET) //報警值確定

        {

        delay_10us(5);

        while(!SET)

        {

        if(P1_0==0) warning+=1;//增加上限

        else if(P1_1==0) warning+=1;//減小上限

        elsewarning+=0;

        str[0]=warning/10+48;

        str[1]=warning%10+48;

        str[3]=48;

        str[4]=48;

        display();

        delay_10us(5);

        }

        }

        INIT(); //初始化DS18B20

        WRITE(0xCC);//跳過ROM配置

        WRITE(0x44);//開始轉(zhuǎn)換溫度

        display(); //默認至少等待750 ms,用于溫度轉(zhuǎn)換

        INIT();//初始化DS18B20

        WRITE(0xCC);//跳過ROM配置

        WRITE(0xBE);//準備讀取溫度值

        TMP_L=READ(); //讀取溫度值的低8位

        TMP_H=READ(); //讀取溫度值的高4位

        TMP=TMP_H;

        TMP=(TMP<<8) | TMP_L;//高位左移8位與低位相或(加) 賦值于TMP

        TMP_F=TMP * 0.0625;//計算溫度值

        sprintf(str,″%.2f″,TMP_F);//將浮點數(shù)轉(zhuǎn)換成字符型,存入str數(shù)組

        if(TMP_F>=warning)P1_0=0; //如果溫度值大于等于報警值,報警

        else P1_0=1;

        }

        }

        3 結(jié) 語

        基于C51系列單片機和DS18B20數(shù)字溫度傳感器的溫度測量系統(tǒng)結(jié)構(gòu)簡單、成本低、操作方便,比較好推廣,而且也可以根據(jù)情況進行擴展,比如進行多點采集等。

        參考文獻

        [1]劉衛(wèi)民.集成溫度傳感器DS1820原理及應(yīng)用[J].黑龍江科技信息,2008(21):52.

        [2]楊偉偉.淺談基于單片機的溫度測控系統(tǒng)設(shè)計[J].信息與電腦:理論版,2010(2):50-51.

        [3]何錫才.傳感器及其應(yīng)用電路[M].北京:電子工業(yè)出版社,2002.

        [4]李虹,溫秀梅,高振天.基于MSP430單片機和DS18B20的小型測溫系統(tǒng)[J].微計算機信息,2006,22(2):137-138.

        [5]檀永,陳小平.基于DS1620的溫度變送器設(shè)計[J].江蘇電器,2006(4):4-6,10.

        [6]張立科.單片機典型外圍器件及應(yīng)用實例[M].北京:人民郵電出版社,2006.

        [7]鄔楊波.一種基于VHDL的7段LED數(shù)碼管顯示控制器[J].機電工程,2008,25(7):51-54.

        [8]馬臣崗, 孟立凡.基于單總線式無線溫度采集系統(tǒng)設(shè)計[J].電子設(shè)計工程,2010(3):31-33.

        [9]劉瑞新.單片機原理及應(yīng)用教程[M].北京:機械工業(yè)出版社,2003.

        [10]張義和,王敏男,許宏昌.例說51單片機[M].北京:人民郵電出版社,2008.

        2011年5月1日第34卷第9期現(xiàn)代電子技術(shù)Modern Electronics TechniqueMay 2011Vol.34 No.9

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

        猜你喜歡
        單片機
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應(yīng)用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機的三維LED點陣設(shè)計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機系列
        基于Proteus的單片機控制系統(tǒng)的仿真設(shè)計
        天堂av一区一区一区| 精品香蕉久久久爽爽| 欧美在线日韩| 精品中文字幕日本久久久 | 国产一级二级三级在线观看av| 久久天堂综合亚洲伊人hd妓女| 成人天堂资源www在线| 亚洲第一免费播放区| 日韩精品国产精品亚洲毛片| 特级做a爰片毛片免费看| 国产av无码专区亚洲av琪琪| 日本视频一区二区三区免费观看 | 日韩亚洲无吗av一区二区| 色综合久久88色综合天天| 精品2021露脸国产偷人在视频| 精品粉嫩国产一区二区三区| 亚洲中文字幕在线综合| 亚洲成在人网站av天堂| 一区二区三区日韩亚洲中文视频| 青青自拍视频成人免费观看| 亚洲最大中文字幕在线| 国产莉萝无码av在线播放| 久久青草免费视频| av网站免费在线不卡| 又硬又粗进去好爽免费| 在线亚洲午夜理论av大片| 男性一插就想射是因为啥| 国产诱惑人的视频在线观看| 国内少妇毛片视频| 艳妇乳肉豪妇荡乳av无码福利| 亚洲亚洲亚洲亚洲亚洲天堂| 不卡一本av天堂专区| 久久精品国产色蜜蜜麻豆| 亚洲AV无码成人品爱| 中文字幕精品久久一区二区三区| 人妻少妇看a偷人无码| 日本大尺度吃奶呻吟视频| 国产精品亚洲综合天堂夜夜| 全亚洲高清视频在线观看 | 亚洲一区二区三区四区精品在线 | 国产成人综合久久三区北岛玲|