新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

作者: 時間:2016-10-18 來源:網(wǎng)絡 收藏

溫室大棚要求溫度保持在某范圍內,這個范圍溫度是動植物生長的最佳環(huán)境溫度,因此必須對動植物生長的環(huán)境溫度進行監(jiān)測和控制,使其適合動植物的生長,以提高產量和質量。本設計就是對溫室的溫度控制要求進行全面分析,綜合考慮系統(tǒng)精度和經(jīng)濟性多方面因素后,設計一種基于單片機的溫度自動控制系統(tǒng)。本系統(tǒng)能夠實現(xiàn)對溫室大棚溫度的自動監(jiān)控,可以通過按鍵輸入設定溫度等控制指令,并且使溫室溫度保持在設定值的范圍內,完成的工作。

本文引用地址:http://2s4d.com/article/201610/308805.htm

1 系統(tǒng)總體方案

本系統(tǒng)以為主控制器,加外圍的溫度采集模塊、鍵盤模塊、顯示電路模塊、加熱模塊和降溫模塊構成,系統(tǒng)結構框圖如圖1所示。溫度采集模塊首先采集溫度值,A/D轉換后送入處理,處理后的溫度值在顯示器上顯示。另外由鍵盤設定動植物生長所需的理想溫度值,并送到單片機中,單片機采用PID算法比較設定的溫度值和采集的溫度值后發(fā)出控制信號到繼電器,繼電器驅動風扇降溫或加熱片加熱,直到與設定的溫度值一致就停止工作。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

2 系統(tǒng)硬件設計

2.1 溫度采集模塊

目前,溫度采集裝置常采用熱電偶,因熱電偶輸出為模擬量電壓,且輸出電壓很小,只有幾毫伏,必須經(jīng)過信號放大,到5伏左右進行A/D轉換,轉化后送給單片機處理。此方案的優(yōu)點在于測量溫度范圍大,從-100℃到上千攝氏度,且精度高,但系統(tǒng)硬件復雜,抗干擾能性較低。數(shù)字式溫度傳感器彌補了熱電偶的缺點,DS18B20就是一款單總線數(shù)字式溫度傳感器,無需外接其他電路,直接輸出就是數(shù)字量,寫入DS18B20的信息或從DS18B20讀出的信息僅需要一根線,DS18B20與單片機的連接電路如圖2,因而使用DS18B20可使系統(tǒng)結構更趨簡單,抗干擾能力增強。DS18B20的測溫范圍從-55~+125℃,增量值為0.5℃,可在1 s內將溫度變換成數(shù)字。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

DS18B20接收到單片機發(fā)出的溫度開始轉換命令后,DS18B20啟動轉換。轉換后的溫度值以16位帶符號的二進制補碼形式存儲在暫存存儲器的0和1字節(jié)中。單片機通過單總線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。溫度值格式如表1,其中“S”為符號位,當高字節(jié)的前5位S=0時,代表正數(shù),直接將高字節(jié)的低3位和低字節(jié)的二進制位轉換成十進制就是對應的溫度值;當高字節(jié)的前5位S=1時,代表負數(shù),高字節(jié)的低3位和低字節(jié)的二進制位代表負數(shù)的補碼,需先將補碼變換成原碼,再計算十進制值才是對應的溫度值。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

2.2 繼電器電路模塊

由于本系統(tǒng)要控制加熱片加熱或電風扇降溫,功率較大,因此要借助功率電路。如果采用可控硅控制實現(xiàn)可以達到很高的控制精度,但需加光耦合隔離器件,電路稍顯復雜。采用繼電器控制可以很容易實現(xiàn)通過較高的電壓和電流,而且無需外加光耦,電路簡單可靠。因此,本設計采用繼電器控制風扇和加熱片,其電路如圖3所示。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

當實測溫度低于或高于設定溫度的下限或上限值時,由單片機輸出高電平信號,NPN三極管9014導通,繼電器驅動加熱器開始加熱或電風扇開始降溫。為了防止繼電器頻繁動作,在程序中對溫度測量精確到小數(shù)點后兩位,而在溫度設定時只取整數(shù)。繼電器線圈旁邊反方向并聯(lián)一個二極管,二極管起到保護三極管的作用,防止三極管擊穿。

2.3 鍵盤和顯示模塊

本系統(tǒng)需用4個LED數(shù)碼管,分別顯示溫度的十位、個位和小數(shù)點后兩位,當通過按鍵設定溫度時,LED數(shù)碼管停止顯示當前溫度,顯示設定溫度值,設定完畢后,繼續(xù)顯示當前的采集溫度值。動態(tài)顯示組合式數(shù)碼管只需要較少的引腳個數(shù),以4位一體組合式數(shù)碼管為例,需要8+4=12個引腳。而如果每個數(shù)碼管都要單獨引腳,至少需要4*9=36個引腳。引腳數(shù)減少使得PCB板布線變得更為簡單,因此,在需要使用多位數(shù)碼管時,一般都用動態(tài)顯示組合式。本設計采用四位一體的共陽極數(shù)碼管,單片機PO口控制數(shù)碼管的段a--dp,P2.4--P2.7通過4個9012 PNP型三極管接數(shù)碼管的COM端。

溫度的設置采用按鍵來實現(xiàn),通過按鍵修改溫度的上限值和下限值。按鍵采用獨立式鍵盤,經(jīng)上拉電阻分別接單片機的P1.1、P1.2和P1.3引腳上,其與單片機的連接如圖4所示。先按一次控制鍵,然后每按上調或下調鍵一次,設定溫度值增1或減1,再按一次控制鍵代表設定完畢。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

3 系統(tǒng)軟件設計

本系統(tǒng)的軟件采用匯編語言設計,主程序中首先初始化,而后循環(huán)調用讀溫度、溫度處理、顯示、鍵盤和繼電器控制子程序,實現(xiàn)溫度控制的功能。

3.1 主程序流程圖

主程序流程圖如圖5所示。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

3.2 讀溫度模塊子程序

DS18B20操作時都要嚴格按照DS18B20工作過程規(guī)定的協(xié)議進行。DS18B20應遵循以下工作協(xié)議:DS18B20復位->執(zhí)行ROM命令->執(zhí)行功能命令->數(shù)據(jù)處理,讀取溫度的子程序流圖如圖6所示。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

3.3 數(shù)據(jù)處理子程序

由于DS18B20轉換后的16位數(shù)據(jù)并不是實際的溫度值,所以要進行數(shù)據(jù)處理。溫度高字節(jié)中的高5位是用來表示溫度的正負,高字節(jié)的低3位和低字節(jié)用來保存溫度值。其中低字節(jié)的低4位用來保存溫度的小數(shù)位。由于,1/24=0.062 5,所以,DS18B20的溫度精度是0.062 5 ℃。用低字節(jié)的低4位數(shù)值乘以0.062 5,有可能是多個小數(shù)位,本設計要求溫度值保留小數(shù)點后兩位,所以采取四舍五入,得到真正的兩位小數(shù)。具體算法是首先程序判斷溫度值是否為負,如果是,則DS18B20保存的是溫度的補碼值,需要先求其原碼。處理過后的溫度存儲到單片機的RAM中,然后將RAM中的十六進制碼轉換成BCD碼。數(shù)據(jù)處理子程序流程圖如圖7所示。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

3.4 鍵盤掃描子程序

按鍵采用3個按鍵,分別表示控制鍵、加1鍵和減1鍵,鍵盤子程序流程圖如圖8所示。

基于AT89C52的溫室用溫度監(jiān)控系統(tǒng)設計

4 系統(tǒng)調試

本設計制作了硬件實物,系統(tǒng)采用的是分模塊焊接與調試,目的是為了防止全部焊接調試困難,若一次不成功,查找錯誤麻煩。分步調試后,最后進行聯(lián)調,由于條件限制,在本設計中采用室內溫度進行測試,若設定溫度高于當前溫度值,加熱器模擬燈會亮,但是室內溫度不會變化那么快,采用體溫來實現(xiàn)溫度的快速升高,達到設定值,加熱器燈滅。由此可見,該系統(tǒng)具有較高的控制精度。

5 結束語

該溫度控制器能夠實時監(jiān)測溫室大棚的溫度,誤差小于0.1℃;可以設定農作物生長的理想溫度,根據(jù)當前溫度與設定溫度之間的差別,加熱器或者風扇將自動啟動,直至達到設定溫度停止工作。經(jīng)改進后,該系統(tǒng)可以廣泛地應用在養(yǎng)殖大棚等場所的溫度控制,保證農作物理想的生長溫度,提高產量。



評論


相關推薦

技術專區(qū)

關閉