1 引言
1.1雞舍溫度控制系統(tǒng)設(shè)計(jì)的意義
隨著社會的發(fā)展,科技的進(jìn)步,以及測溫儀器在各個領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應(yīng)用到人們生活的各個方面,但雞舍溫度控制一直是一個未開發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個實(shí)際問題。針對這種實(shí)際情況,設(shè)計(jì)一個雞舍溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。
1.2雞舍溫度控制系統(tǒng)的設(shè)計(jì)背景
溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、化工、石油、冶金、航空航天、機(jī)械制造、糧食存儲、酒類生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對象和過程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉的儲糧就會變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒有保障。因此,各行各業(yè)對溫度控制的要求都越來越高??梢姡瑴囟鹊臏y量和控制是非常重要的。
單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各種適用于不同場合的智能溫度控制器應(yīng)運(yùn)而生。
1.3雞舍溫度控制系統(tǒng)的設(shè)計(jì)目的
本設(shè)計(jì)的內(nèi)容是溫度測試控制系統(tǒng),控制對象是溫度。溫度控制在日常生活及工業(yè)領(lǐng)域應(yīng)用相當(dāng)廣泛,比如溫室、水池、發(fā)酵缸、電源等場所的溫度控制。而以往溫度控制是由人工完成的而且不夠重視,其實(shí)在很多場所溫度都需要監(jiān)控以防止發(fā)生意外。針對此問題,本系統(tǒng)設(shè)計(jì)的目的是實(shí)現(xiàn)一種可連續(xù)高精度調(diào)溫的溫度控制系統(tǒng),它應(yīng)用廣泛,功能強(qiáng)大,小巧美觀,便于攜帶,是一款既實(shí)用又廉價的控制系統(tǒng)。
1.4雞舍溫度控制系統(tǒng)完成的功能
本設(shè)計(jì)是對溫度進(jìn)行實(shí)時監(jiān)測與控制,設(shè)計(jì)的溫度控制系統(tǒng)實(shí)現(xiàn)了基本的溫度控制功能:當(dāng)溫度低于設(shè)定下限溫度時,系統(tǒng)自動啟動加熱繼電器加溫,使溫度上升,同時綠燈亮。當(dāng)溫度上升到下限溫度以上時,停止加溫;當(dāng)溫度高于設(shè)定上限溫度時,系統(tǒng)自動啟動風(fēng)扇降溫,使溫度下降,同時紅燈亮。當(dāng)溫度下降到上限溫度以下時,停止降溫。溫度在上下限溫度之間時,執(zhí)行機(jī)構(gòu)不執(zhí)行。三個數(shù)碼管即時顯示溫度,精確到小數(shù)點(diǎn)一位。
2 總體設(shè)計(jì)方案
2.1方案一
測溫電路的設(shè)計(jì),可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。
2.2 方案二
考慮使用溫度傳感器,結(jié)合單片機(jī)電路設(shè)計(jì),采用一只DS18B20溫度傳感器,直接讀取被測溫度值,之后進(jìn)行轉(zhuǎn)換,依次完成設(shè)計(jì)要求。
比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計(jì)容易實(shí)現(xiàn),故實(shí)際設(shè)計(jì)中擬采用方案二。
2.3方案二的總體設(shè)計(jì)
本系統(tǒng)的電路設(shè)計(jì)方框圖如圖1所示,它由三部分組成:①控制部分主芯片采用單片機(jī)AT89S51;②顯示部分采用3位LED數(shù)碼管以動態(tài)掃描方式實(shí)現(xiàn)溫度顯示;③溫度采集部分采用DS18B20溫度傳感器。
圖1 溫度計(jì)電路總體設(shè)計(jì)方案
(1) 控制部分
單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用,系統(tǒng)應(yīng)用三節(jié)電池供電。
(2) 顯示部分
顯示電路采用3位共陽LED數(shù)碼管,從P0口送數(shù),P2口掃描。
(3) 溫度采集部分
DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫。這一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器DS18B20把采集到的溫度通過數(shù)據(jù)引腳傳到單片機(jī)的P1.0口,單片機(jī)接受溫度并存儲。此部分只用到DS18B20和單片機(jī),硬件很簡單。
a. DS18B20的性能特點(diǎn)如下[9]:
1) 獨(dú)特的單線接口僅需要一個端口引腳進(jìn)行通信;
2) 多個DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;
3) 無須外部器件;
4) 可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;
5) 零待機(jī)功耗;
6) 溫度以3位數(shù)字顯示;
7) 用戶可定義報警設(shè)置;
8) 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;
9) 負(fù)電壓特性,電源極性接反時,溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。
b. DS18B20的內(nèi)部結(jié)構(gòu)
DS18B20采用3腳PR-35封裝,如圖2所示;DS18B20的內(nèi)部結(jié)構(gòu),如圖3所示。
圖2 DS18B20封裝
c.DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成[5]:
1) 64位光刻ROM。開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的CRC校驗(yàn)碼,這也是多個DS18B20可以采用一線進(jìn)行通信的原因[10]。64位閃速ROM的結(jié)構(gòu)如下:
8b檢驗(yàn)CRC | 48b序列號 | 8b工廠代碼(10H) |
MSB???????????? LSB? MSB???????? LSB MSB???????????????? LSB
圖3 DS18B20內(nèi)部結(jié)構(gòu)
2) 非揮發(fā)的溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限值。
3) 高速暫存存儲,可以設(shè)置DS18B20溫度轉(zhuǎn)換的精度。
DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的E2PRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。它的內(nèi)部存儲器結(jié)構(gòu)和字節(jié)定義如圖3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,
DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如圖4。
TM | R1 | R0 | ?1 | ?1 | ?1 | ?1 | ?1 |
圖5 DS18B20字節(jié)定義
由表1可見,分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。
高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。
當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。
當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)[6]。
表1 DS18B20溫度轉(zhuǎn)換時間表:
R1 | R0 | 分辨率/位 | 溫度最大轉(zhuǎn)向時間/ms |
0 | 0 | 9 | 93.75 |
0 | 1 | 10 | 187.5 |
1 | 0 | 11 | 375 |
1 | 1 | 12 | 750 |
表2 一部分溫度對應(yīng)值表
溫度/℃ | 二進(jìn)制表示 | 十六進(jìn)制表示 |
+125 | 0000 0111??? 1101 0000 | 07D0H |
+85 | 0000 0101?? ?0101 0000 | 0550H |
+25.0625 | 0000 0001??? 1001 0000 | 0191H |
+10.125 | 0000 0000??? 1010 0001 | 00A2H |
+0.5 | 0000 0000??? 0000 0010 | 0008H |
0 | 0000 0000??? 0000 1000 | 0000H |
-0.5 | 1111 1111??? 1111 0000 | FFF8H |
-10.125 | 1111 1111??? 0101 1110 | FF5EH |
-25.0625 | 1111 1110?? ?0110 1111 | FE6FH |
-55 | 1111 1100??? 1001 0000 | FC90H |
4) CRC的產(chǎn)生
在64 b ROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來計(jì)算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。
另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。
3 DS18B20溫度傳感器簡介
3.1溫度傳感器的歷史及簡介
溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計(jì)至今仍是各種溫度測量的計(jì)量標(biāo)準(zhǔn)??墒撬娜秉c(diǎn)是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),它們雖然沒有毒性,但測量精度很低,只能作為一個概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、PN結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器。
3.2 DS18B20工作原理
3.2.1 DS18B20的工作時序
根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:
(1) 每一次讀寫之前都必須要對DS18B20進(jìn)行復(fù)位;
(2) 復(fù)位成功后發(fā)送一條ROM指令;
(3) 最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。
復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待15~60微秒左右后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。其工作時序包括初始化時序、寫時序和讀時序,具體工作方法如圖5,6,7所示。
a.初始化時序
總線器件僅在主機(jī)發(fā)出讀時序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時序至少需要60us,且在2次獨(dú)立的讀時序之間至少需要1us的恢復(fù)時間。每個讀時序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時序期間必須釋放總線,并且在時序起始后的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時2us,然后主機(jī)轉(zhuǎn)入輸入模式延時12us,然后讀取總線當(dāng)前電平,然后延時50us[4]。
3.2.2 ROM操作命令[3]
當(dāng)主機(jī)收到DSl8B20 的響應(yīng)信號后,便可以發(fā)出ROM 操作命令之一,這些命令如表3:ROM操作命令。
3.3? DS18B20的測溫原理
3.3.1 DS18B20的測溫原理[6]
每一片DSl8B20在其ROM中都存有其唯一的48位序列號,在出廠前已寫入片內(nèi)ROM 中。主機(jī)在進(jìn)入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序列號讀出。
程序可以先跳過ROM,啟動所有DSl8B20進(jìn)行溫度變換,之后通過匹配ROM,再逐一地讀回每個DSl8B20的溫度數(shù)據(jù)。
DS18B20的測溫原理如圖9所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率
明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 ℃所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 ℃所對應(yīng)的一個基數(shù)值。減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)
數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法
計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖8中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是DS18B20的測溫原理。
另外,由于DS18B20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。
3.3.2 DS18B20的測溫流程
4單片機(jī)接口設(shè)計(jì)
DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖11所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。本設(shè)計(jì)采用電源供電方式, P1.1口接單線總線為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管和89S51的P1.0來完成對總線的上拉。當(dāng)DS18B20處于寫存儲器操作和溫度A/D變換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為10 μs。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟:初始化、ROM操作指令、存儲器操作指令。
5系統(tǒng)整體設(shè)計(jì)
5.1系統(tǒng)硬件電路設(shè)計(jì)
5.1.1 主板電路設(shè)計(jì)(如附錄2)
單片機(jī)的P1.0接DS18B20的2號引腳,P0口送數(shù)P2口掃描,P1.1、P1.2控制加熱器和電風(fēng)扇的繼電器。
5.1.2 各部分電路
(1) 顯示電路
顯示電路采用了7段共陰數(shù)碼管掃描電路,節(jié)約了單片機(jī)的輸出端口,便于程序的編寫。
圖12 顯示電路圖
(2) 單片機(jī)電路
圖13單片機(jī)電路引腳圖
(3) AT89SISP下載口電路
圖14 下載口電路引腳圖
此電路連接單片機(jī)。
(4) DS18B20溫度傳感器電路
圖15 溫度傳感器電路引腳圖
(5) 繼電器電路
圖中P1.1引腳控制加熱器繼電器,P1.2引腳控制電風(fēng)扇繼電器。給.P1.1低電平,三極管導(dǎo)通,電磁鐵觸頭放下來開始工作;同樣給P1.2低電平,三極管導(dǎo)通,電磁鐵觸頭放下來開始工作。
5.2? 系統(tǒng)軟件設(shè)計(jì)
5.2.1 系統(tǒng)軟件設(shè)計(jì)的整體思想
一個應(yīng)用系統(tǒng)要完成各項(xiàng)功能,首先必須有較完善的硬件作保證。同時還必須得到相應(yīng)設(shè)計(jì)合理的軟件的支持,尤其是微機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,如數(shù)字濾波,信號處理等。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與S51系列單片機(jī)相對應(yīng)的51匯編語言和結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行軟件編程。
程序設(shè)計(jì)語言有三種:機(jī)器語言、匯編語言和高級語言。機(jī)器語言是機(jī)器唯一能“懂”的語言,用匯編語言或高級語言編寫的程序(稱為源程序)最終都必須翻譯成機(jī)器語言的程序(成為目標(biāo)程序),計(jì)算機(jī)才能“看懂”,然后逐一執(zhí)行。
高級語言是面向問題和計(jì)算過程的語言,它可通過于各種不同的計(jì)算機(jī),用戶編程時不必仔細(xì)了解所用的計(jì)算機(jī)的具體性能與指令系統(tǒng),而且語句的功能強(qiáng),常常一個語句已相當(dāng)于很多條計(jì)算機(jī)指令,于是用高級語言編制程序的速度比較快,也便于學(xué)習(xí)和交流,但是本系統(tǒng)卻選用了匯編語言。原因在于,本系統(tǒng)是編制程序工作量不大、規(guī)模較小的單片機(jī)微控制系統(tǒng),使用匯編語言可以不用像高級語言那樣占用較多的存儲空間,適合于存儲容量較小的系統(tǒng)。同時,本系統(tǒng)對位處理要求很高,需要解決大量的邏輯控制問題。
MCS—51指令系統(tǒng)的指令長度較短,它在存儲空間和執(zhí)行時間方面具有較高的效率,編成的程序占用內(nèi)存單元少,執(zhí)行也非常的快捷,與本系統(tǒng)的應(yīng)用要求很適合。而且MCS—51指令系統(tǒng)有豐富的位操作(或稱位處理)指令,可以形成一個相當(dāng)完整的位操作指令子集,這是MCS—51指令系統(tǒng)主要的優(yōu)點(diǎn)之一。對于要求反應(yīng)靈敏與控制及時的工控、檢測等實(shí)時控制系統(tǒng)以及要求體積小、系統(tǒng)小的許多“電腦化”產(chǎn)品,可以充分體現(xiàn)出匯編語言簡明、整齊、執(zhí)行時間短和易于使用的特點(diǎn)。
本裝置的軟件包括主程序、讀出溫度子程序、復(fù)位應(yīng)答子程序、寫入子程序、以及有關(guān)DS18B20的程序(初始化子程序、寫程序和讀程序)等。
主程序的功能是:啟動DS18B20測量溫度,將測量值與給定值進(jìn)行比較,若測得溫度小于設(shè)定值,則進(jìn)入加熱階段,置P1.1為低電平,這期間繼續(xù)對溫度進(jìn)行監(jiān)測,直到溫度在設(shè)定范圍內(nèi),置P1.1為高電平斷開可控硅,關(guān)閉加熱器,等待下一次的啟動命令。當(dāng)測得溫度大于設(shè)定值,則進(jìn)入降溫階段,則置P1.2為低電平,這期間繼續(xù)對溫度進(jìn)行監(jiān)測,直到溫度在設(shè)定范圍內(nèi),置P1.2為高電平斷開,關(guān)閉風(fēng)扇,等待下一次的啟動命。
5.2.2 系統(tǒng)程序流程圖
系統(tǒng)程序主要包括主程序,讀出溫度子程序,復(fù)位應(yīng)答子程序,寫入子程序等。
1)主程序
主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖19所示。
通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個單元中,然后通過調(diào)用顯示子程序顯示出來。