溫度檢測系統有著共同的特點:測量點多、環境復雜、布線分散、現場離監控室遠等。若采用一般溫度傳感器采集溫度信號,則需要設計信號調理電路、A/D 轉換及相應的接口電路,才能把傳感器輸出的模擬信號轉換成數字信號送到計算機去處理。這樣,由于各種因素會造成檢測系統較大的偏差;又因為檢測環境復雜、測量點多、信號傳輸距離遠及各種干擾的影響,會使檢測系統的穩定性和可靠性下降。所以溫度檢測系統的設計的關鍵在于兩部分:溫度傳感器的選擇和主控單元的設計。溫度傳感器應用范圍廣泛、使用數量龐大,也高居各類傳感器之首。
2.1、傳感器部分方案一:采用熱敏電阻,利用其感溫效應,可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻精度、重復性、可靠性較差,對于檢測1攝氏度的信號是不適用的。而且在溫度測量系統中,采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經過A/D轉換后才能送給計算機,這樣就使得測溫裝置的結構較復雜,一定程度上也增加了軟件實現的難度。
方案二:在溫度控制系統中,傳統的測溫方法是將模擬信號遠距離采樣進行A/D轉換,而為了獲得較高的測溫精度,就必須采用措施解決由長線傳輸、放大電路零點漂移等造成的誤差補償問題。采用數字溫度芯片DS18B20測量溫度,輸出信號全數字化,便于單片機處理及控制,省去傳統的測溫方法的很多外圍電路。且該芯片的物理化學性很穩定,它能用做工業測溫元件,此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數據傳輸,由數字溫度計DS1820和微控制器STC89C52RC構成的溫度測第一章總體設計方案4量裝置,它直接輸出溫度的數字信號,可直接與計算機連接。這樣,測溫系統的結構就比較簡單,體積也不大,且由于STC89C52RC可以帶多個DSB1820,可實現多點測量,輕松的組建傳感器網絡,本次設計用于大棚溫度檢測比較適合方便。
2.2、主控制部分方案一:此方案采用PC機實現,它可在線編程,可在線仿真的功能,這讓調試變得方便,且人機交互友好。但是PC機輸出信號不能直接與DS18B20通信,需要通過RS232電平轉換兼容,硬件的合成在線調試,較為繁瑣,很不簡便。而且在一些環境比較惡劣的場合,PC機的體積大,攜帶安裝不方便,性能不穩定,給工程帶來很多麻煩。
方案二:此方案采用STC89C52RC八位單片機實現。單片機軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制。而且體積小,硬件實現簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC機通信,運用主從分布式思想,由一臺上位機(PC微型計算機),下位機(單片機)實現溫度數據采集,組成兩級分布式溫度測量的巡回檢測系統,實現遠程控制。另外STC89S51在農業控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。
總體設計綜上所述,溫度傳感器以及主控部分都采用第二方案。首先由溫度傳感器DS18B20采集溫度數據,經單片機I/O模擬單總線讀取后送入STC89C52RC單片機中進行運算處理,并LCD1602液晶顯示當前溫度,同時與鍵盤輸入的設定溫度值(上限)進行比較,由單片機控制是否發出報警信號。在整個過程中,溫度始終都能得以顯示。設定溫度過程中顯示設定溫度值,以便于操作。
本系統的總體設計方框圖如圖2-1所示,它主要由五部分組成:
①主控制部分主芯片采用單片機STC89C52RC(包括時鐘和復位電路);
②顯示部分采用3位LED數碼管以動態掃描方式實現溫度顯示;
③溫度采集部分采用DS18B20溫度傳感器;
④按鍵輸入部分主要功能是實現設定溫度值的輸入;
⑤人體紅外傳感器用來檢測人體信息
DS18B20檢測溫度,將溫度信息傳送到單片機內,單片機檢測到溫度信號,對其進行處理,將處理得到的數據在LCD1602液晶上顯示出來。可以通過按鍵來設置溫度的上下限值,當溫度超過范圍時,單片機控制蜂鳴器報警,同時當人體紅外傳感器檢測到人體時,也會觸發蜂鳴器報警。

硬件電路部分包括51單片機主控模塊的設計,單片機最小系統的設計,DS18B20溫度檢測模塊,按鍵設置模塊,蜂鳴器報警模塊,LCD1602液晶顯示模塊。各模塊電路的詳細介紹將在后續給出。
主程序流程圖設計如下圖4-2所示是系統主程序流程圖。

圖4-2 主程序流程圖
如圖4.2所示,程序開始后,進行初始化,初始化包括LCD1602液晶初始化,DS18B20初始化;然后在LCD1602液晶上顯示固定信息,再給DS18B20溫度傳感器發送讀取數據命令,則模塊開始測溫。然后進入主循環,顯示當前溫度,再進入按鍵設置子程序設置當前溫度上限值,最后比較當前溫度是否超過范圍,若是則蜂鳴器報警,否則不報警。
4.3各子程序設計子程序設計包括按鍵設置子程序、DS18B20溫度檢測子程序、LCD1602液晶顯示子程序、。各子程序的具體介紹將在如下部分詳細給出。
4.3.1按鍵設置子程序
圖4-3 按鍵設置子程序流程圖
如圖4-3所示為按鍵設置子程序流程圖,程序當分別按下按鍵K1、K2時,則上限值Tmpup加1和減1,然后結束,Tmpup表示溫度上限,程序當分別按下按鍵K3、K4時,則上限值Tmpdowm加1和減1,然后結束,Tmpdowm表示溫度下限。
如上為DS18B20讀取溫度子函數,read_18b20()是用來讀取DS18B20溫度傳感器中的一字節數據,通過DQ數據總線時序來實現。read_temp()是用來處理從DS18B20讀取的數據并轉換成溫度值的函數,通過調用read_temp()函數得到兩字節溫度數據,分為高8位和低8位,將其整合在一起得到溫度完整的數據。
如上LCD_Init()函數為1602液晶初始化程序,write_com(0x38)用來設置初始化顯示模式為0x38,write_com(0x0c)用來顯示開和光標設置,write_com(0x06)用來顯示光標移動設置。Wite_com()用來寫命令,write_data()用來寫數據,write_string()則用來給1602寫入顯示的字符串數據。
如上為按鍵設置子程序,當按鍵KEY0或KEY1、KEY2或KEY3按下時LCD顯示的設置上限值也會隨之加減,改變報警溫度上限,從而實時判斷當前溫度,當溫度超出范圍則蜂鳴器報警。
附錄一 系統原理圖
全部資料51hei下載地址:
設計方案.7z
(666.59 KB, 下載次數: 65)
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |