新聞中心

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

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

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

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

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

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

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

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

2 系統(tǒng)硬件設(shè)計(jì)

2.1 溫度采集模塊

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

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

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

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

2.2 繼電器電路模塊

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

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

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

2.3 鍵盤和顯示模塊

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

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

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

3 系統(tǒng)軟件設(shè)計(jì)

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

3.1 主程序流程圖

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

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

3.2 讀溫度模塊子程序

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

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

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

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

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

3.4 鍵盤掃描子程序

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

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

4 系統(tǒng)調(diào)試

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

5 結(jié)束語

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉