基于單片機(jī)和DS18B20的溫度采集和分析系統(tǒng)
傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性較差、測量溫度準(zhǔn)確率低,且還必須經(jīng)專門的接口電路轉(zhuǎn)換為數(shù)字信號后才能由單片機(jī)進(jìn)行處理。不僅如此,大部分溫度系統(tǒng)都缺少對溫度的采樣存儲,無法對溫度進(jìn)一步分析。本文介紹了一套以個人電腦及80C51單片機(jī)為核心,使用DS18B20溫度傳感器進(jìn)行溫度采樣,數(shù)據(jù)庫進(jìn)行溫度存儲,Matlab進(jìn)行溫度分析的系統(tǒng)。該系統(tǒng)可對其所處環(huán)境的溫度進(jìn)行實時監(jiān)控,同時進(jìn)行溫度的采樣、存儲和分析,實現(xiàn)對特定環(huán)境下溫度的了解。
本文引用地址:http://cafeforensic.com/article/201610/308682.htm1 系統(tǒng)總體組成
系統(tǒng)硬件部分主要用于溫度的測量和存儲。PC端則用于測溫事件的建立與存儲、測量參數(shù)的設(shè)置、溫度數(shù)據(jù)的存儲及溫度數(shù)據(jù)的分析。整體而言,系統(tǒng)核心部分分為溫度監(jiān)測模塊、溫度存儲模塊和溫度分析模塊3部分。
溫度監(jiān)測模塊用于溫度的監(jiān)測及采樣,首先利用PC端程序進(jìn)行測溫事件的建立及采樣開始時間(時分秒)、采樣結(jié)束時間(時分秒)、采樣間隔(秒)和傳輸方式8個采樣相關(guān)參數(shù)的設(shè)置,傳輸方式包括直接傳輸和間接傳輸,對應(yīng)溫度的永久存儲和臨時存儲,相關(guān)參數(shù)通過串口傳給單片機(jī)。然后利用80C51單片機(jī)和DS18B20溫度傳感器來獲取當(dāng)前溫度,并按要求對溫度進(jìn)行采樣,同時利用其他器件將溫度及當(dāng)前時間顯示到LED屏上。
溫度存儲模塊分為臨時存儲模塊和永久存儲模塊,臨時存儲模塊用于將所測量的溫度數(shù)據(jù)通過I2C總線臨時存儲于AT24C02芯片中,永久存儲模塊則將AT24C02芯片中的數(shù)據(jù)或當(dāng)前測量的溫度數(shù)據(jù)通過串行口傳給PC端,然后PC端程序?qū)⑵浯鎯τ赟QL Server數(shù)據(jù)庫中。
溫度分析模塊利用Matlab對所獲數(shù)據(jù)進(jìn)行處理。通過將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入Excel表,然后調(diào)用Matlab的m文件讀取Excel表中的數(shù)據(jù),并對其分析,完成數(shù)據(jù)處理。
系統(tǒng)的總體設(shè)計如圖1所示。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件原理如圖2所示,硬件電路圖如圖3所示。整個系統(tǒng)通過STC89C52RC單片機(jī)進(jìn)行控制,8051系列單片機(jī)為1980年Intel公司推出的MCS-51系列8為高檔單片機(jī)微機(jī),而該型號單片機(jī)為8051內(nèi)核芯片,內(nèi)含F(xiàn)lash E2PROM存儲器,內(nèi)部程序存儲空間的大小為4 kB,內(nèi)部RAM為512 Byte,價格較低,能較好地滿足系統(tǒng)要求。DS18B20溫度傳感器通過單總線與單片機(jī)P1.7連接,單總線數(shù)字溫度傳感器將地址線、數(shù)據(jù)線、控制線合為1根信號線,硬件開銷小,為保證系統(tǒng)穩(wěn)定性,將DS18B20的VCC端與外部電源相連。1602液晶為5 V電壓驅(qū)動,可顯示兩行,每行16個字符,內(nèi)置含128個字符的ASCII字符集字庫,可滿足系統(tǒng)信息輸出的要求,1602占用單片機(jī)的P0及P2.3、P2.4、P2.5。AT24C02為E2PROM存儲器,使用了快速、高效、精準(zhǔn)的I2C接口設(shè)計技術(shù)與單片機(jī)進(jìn)行通信,時鐘線與單片機(jī)P2.0相連,信號線與P2.1相連。DS1302為時間芯片,能自動產(chǎn)生年、月、日、時、分、秒等時間信息,可實現(xiàn)系統(tǒng)溫度與測量時間的對應(yīng)傳輸,并方便系統(tǒng)控制。MAX232為RS232/TTL電平轉(zhuǎn)換芯片,實現(xiàn)下位機(jī)與PC端上位機(jī)的串口通信,其與單片機(jī)的RXD(P3.0)和TxD(P3.1)相連。
3 系統(tǒng)軟件設(shè)計
3.1 單片機(jī)程序設(shè)計
圖3為程序的程序總體設(shè)計圖,application為整個單片機(jī)程序的全局變量,用以區(qū)分系統(tǒng)核心部分和應(yīng)用部分,當(dāng)按下與P3.2相連的按鍵時,觸發(fā)外部中斷0,application自加1。
系統(tǒng)核心部分又分為空閑模式和工作模式。系統(tǒng)處于空閑模式時,讀取DS1302的時間信息和DS18B20的溫度信息,在液晶顯示屏上顯示當(dāng)前的日期、時間和溫度,同時利用按鍵可校準(zhǔn)日期和時間;處于工作模式時,硬件電路與PC端配合工作,完成溫度的采樣、存儲和傳輸。
應(yīng)用部分,單片機(jī)通過串口獲得溫度閾值和函數(shù)式,利用下文將敘述的公式完成相應(yīng)功能。另外,單片機(jī)進(jìn)行溫度采樣的時間由定時器0進(jìn)行精確控制。定時器1用于波特率的產(chǎn)生。當(dāng)PC端傳遞數(shù)據(jù)給單片機(jī)時,將導(dǎo)致串口中斷,參數(shù)數(shù)據(jù)傳送至單片機(jī)的SBUF寄存器,然后再將數(shù)據(jù)存儲于char型二維數(shù)組Parameter中,因為所需傳輸?shù)膮?shù)數(shù)據(jù)共有8個,且每個參數(shù)的位數(shù)均為2位,故包括‘