趙偉光
【摘 要】本文詳細(xì)介紹了一種以單片機(jī)89C52為核心的空調(diào)溫度控制系統(tǒng)。空調(diào)溫度控制系統(tǒng)的設(shè)計原理以達(dá)到更優(yōu)的系統(tǒng)性能為目的,由單片機(jī)完成數(shù)據(jù)的采集,處理,顯示。該系統(tǒng)以在普通環(huán)境下測量到的溫度值為確定條件,利用單片機(jī)控制空調(diào)制冷和制暖來達(dá)到所需溫度。
【關(guān)鍵詞】DS18B20;單片機(jī);溫度控制;LED顯示
在今天手機(jī)得到廣泛應(yīng)用,一般手機(jī)信號發(fā)射機(jī)要求工作溫度在之間,這也就要求手機(jī)信號發(fā)射機(jī)室內(nèi)溫度得在5-45度之間,我們可以設(shè)計一個溫度控制電路來控制空調(diào)的溫度,從而使手機(jī)信號發(fā)射機(jī)正常工作。
一、總體方案
考慮到該溫度控制系統(tǒng)功能比較少,由單片機(jī)控制即可實(shí)現(xiàn)。而89C52單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、對環(huán)境要求不高、價格低廉、可靠性高、靈活性好,故本系統(tǒng)選擇采用89C52單片機(jī)。采用單線數(shù)字溫度傳感器DS18B20進(jìn)行數(shù)據(jù)采集。DSB18B20S數(shù)字溫度計提供9到12位溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DS18B20送出,因此從中央處理器到DS18B20僅需連接一條線和地,讀寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供,甚至不需要外部電源。
二、系統(tǒng)工作原理
該空調(diào)控制系統(tǒng)用到89C52單片機(jī)作為系統(tǒng)的CPU進(jìn)行控制控制,由數(shù)字傳感器DS18B20進(jìn)行數(shù)據(jù)采集,89C52對采集到的數(shù)據(jù)進(jìn)行處理,得到各種信號。而這些信號將分別作為LED數(shù)碼管顯示的信號輸入和啟動空調(diào)制冷、制熱的輸入。同時將利用單片機(jī)的其它使能端口實(shí)現(xiàn)系統(tǒng)的復(fù)位,手動調(diào)節(jié)和自動調(diào)節(jié)。
三、系統(tǒng)硬件設(shè)計
系統(tǒng)的硬件部分主要可分為溫度采集電路,信號處理與控制控制,溫度顯示電路,溫度調(diào)節(jié)電路,控制指示電路五大部分。
四、系統(tǒng)軟件設(shè)計
DS18B20通信,其命令序列有3步:初始化、ROM命令(跟隨需要交換的數(shù)據(jù))和功能命令(跟隨需要交換的數(shù)據(jù))。
每次訪問DS18B20,必須嚴(yán)格遵守這個命令時序,如果出現(xiàn)序列混亂,則單總線則單總線器件不會響應(yīng)主機(jī)。這個準(zhǔn)則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行兩者中任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令,而必須返回至第一步。
(一)初始化
單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成,應(yīng)答脈沖使主機(jī)知道總線上有從機(jī)設(shè)備且準(zhǔn)備就緒。
(二)ROM命令
在主機(jī)檢測到應(yīng)答脈沖后,就可以發(fā)出ROM命令。ROM命令與各個從機(jī)設(shè)備的唯一64位ROM代碼相關(guān),允許主機(jī)在單總線上連接多個從機(jī)設(shè)備時,指定操作某個從機(jī)設(shè)備。ROM命令還允許能夠檢測到總線上有多少個從機(jī)設(shè)備及其設(shè)備類型,或者有沒有設(shè)備處于報警狀態(tài)。
(1)搜索ROM
當(dāng)系統(tǒng)初始上電時,主機(jī)必須找出總線上所有從機(jī)設(shè)備的ROM代碼,這樣主機(jī)才能夠判斷出從機(jī)的數(shù)目和類型。主機(jī)通過重復(fù)執(zhí)行搜索ROM循環(huán)(搜索ROM命令跟隨著位數(shù)據(jù)交換),以找出總線上所有的從機(jī)設(shè)備。如果總線只有一個從機(jī)設(shè)備,則可以采用讀ROM命令來替代搜索ROM命令。在每次執(zhí)行完搜索ROM循環(huán)后,主機(jī)必須返回至命令序列的第一步:初始化。
(2)讀ROM
該命令僅適用于總線上只有一個從機(jī)設(shè)備,它允許主機(jī)直接讀出從機(jī)的64位ROM代碼,而無須執(zhí)行搜索ROM過程。如果該命令用于多節(jié)點(diǎn),系統(tǒng)則必然發(fā)生數(shù)據(jù)沖突,因?yàn)槊總€從機(jī)設(shè)備都會響應(yīng)該命令。
(3)匹配ROM
匹配ROM命令跟隨64位ROM代碼,從而允許主機(jī)訪問多節(jié)點(diǎn)系統(tǒng)中某個指定的從機(jī)設(shè)備。僅當(dāng)從機(jī)完全匹配64位ROM代碼時,才會響應(yīng)主機(jī)隨后發(fā)出的功能命令,其他設(shè)備將處于等待復(fù)位脈沖狀態(tài)。
(4) 跳躍ROM
主機(jī)能夠采用該命令同時訪問總線上的所有從機(jī)設(shè)備,而無須發(fā)出任何ROM代碼信息。
(5) 報警搜索
除那些設(shè)置了報警標(biāo)志的從機(jī)響應(yīng)外,該命令的工作方式完全等同于搜索ROM命令,該命令允許主機(jī)設(shè)備判斷哪些從機(jī)設(shè)備發(fā)生了報警(如最近的測量溫度過高或過低等)。同搜索ROM命令一樣,在完成報警搜索循環(huán)后,主機(jī)必須返回至命令序列的第一步。
(三)功能命令
在主機(jī)發(fā)出ROM命令,以訪問某個指定的DS18B20,接著就可以發(fā)出DS18B20的某個功能命令。這些命令允許主機(jī)寫入或讀出DS18B20的存儲器,啟動溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。
(1) 讀RAM存儲器
此命令讀RAM存儲器的內(nèi)容,開始讀字節(jié)0,并繼續(xù)讀到第九個字節(jié)(CRC)。如果不是所有位置均可讀,那么主機(jī)可以再任何時候發(fā)出一復(fù)位命令以中止讀操作。
(2)復(fù)制RAM存儲器
此命令讀RAM存儲器的內(nèi)容,開始讀字節(jié)0,并繼續(xù)讀到第九個字節(jié)(CRC)。如果不是所有位置均可讀,那么主機(jī)可以再任何時候發(fā)出一復(fù)位命令以中止讀操作。
(3)重新調(diào)出EERAM
此命令把存儲在EERAM中TH、TL、CONF的值重新調(diào)至RAM存儲器。這種重新調(diào)出的操作在對DS18B20上電時也自動發(fā)生,因此只要器件一接電,暫存存儲器內(nèi)就有有效的數(shù)據(jù)可供使用。
(4) 讀電源
在此命令送至DS18B20之后最先發(fā)出的讀數(shù)據(jù)時間片,器件都會給其電源方式的信號:0=強(qiáng)上拉電阻供電;1=電源供電。
(5)寫RAM存儲器
寫數(shù)據(jù)到RAM存儲器,地址為第2、第3、第4字節(jié)(TH、TL、CONF)。
(6)溫度變換
此命令開始溫度變換,不需要另外的數(shù)據(jù)。溫度變換將被執(zhí)行,接著DS18B20便保持在空閑狀態(tài)。
五、調(diào)試結(jié)果
從實(shí)物圖可以看出,溫度控制器能正常顯示溫度值,當(dāng)超出18-26℃這個溫度范圍時輸出啟動制冷或電暖設(shè)備信號。
六、結(jié)論
基于DS18B2O的數(shù)字溫度計在實(shí)際應(yīng)用中取得了良好的效果,提高了溫度采集系統(tǒng)的可靠性,且硬件電路簡單、工作穩(wěn)定、可靠,體積小巧、線路簡單、成本低、應(yīng)用靈活、測溫精度和的實(shí)現(xiàn)轉(zhuǎn)換速度足以保證大多數(shù)測溫系統(tǒng)工作的要求。
參考文獻(xiàn):
[1]李廣弟,朱月秀,王秀山. 單片機(jī)基礎(chǔ)[M]. 北京:北京航空航天大學(xué)出版社,2001.
[2]何立民. 單片機(jī)應(yīng)用技術(shù)選編(1)[M]. 北京:北京航空航天大學(xué)出版社,1993.
[3]丁鎮(zhèn)生.傳感器及傳感器技術(shù) [M].北京:電子工業(yè)出版社,1998.
[4]彭國賢.數(shù)碼顯示 [M].北京:電子工業(yè)出版社,1993.
[5]王雪文,張志勇.傳感器原理及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2004.
[6]余永權(quán),ATMEL89系列FLASH單片機(jī)原理及應(yīng)用[M]. 電子工業(yè)出版社, 2001.