龔丹丹 史文麗
摘 要:現(xiàn)在的水溫控制系統(tǒng)多采用模擬溫度傳感器、A/D轉(zhuǎn)換器及單片機(jī)組成的傳輸系統(tǒng)。這種系統(tǒng)安裝復(fù)雜,成本也高不說,它的反復(fù)加熱系統(tǒng)對我們的飲水質(zhì)量也大打折扣,本文針對AT89C51單片機(jī)為控制核心,采用典型大慣性的PID閉環(huán)控制裝置,自動控溫,使其保持溫度恒定。
關(guān)鍵詞:AT89C51單片機(jī);溫度控制;DS18B20
基于單片機(jī)的飲水機(jī)溫度控制系統(tǒng)設(shè)計(jì),是通過溫度傳感器和單片機(jī)對飲水機(jī)的智能控制,以解決傳統(tǒng)控制水溫對電力資源和水資源的浪費(fèi),同時(shí)又使飲用水達(dá)到飲用的標(biāo)準(zhǔn)。溫度過高或者是過低,都會使水資源失去應(yīng)有的作用,也喪失了很多營養(yǎng)物質(zhì),從而同時(shí)造成了電力資源和水資源的巨大浪費(fèi),特別是在當(dāng)前的全球能源極度匱乏,而國家倡導(dǎo)節(jié)約水資源的情況下,我們更應(yīng)該掌握好對水溫的控制,才能把身邊的水電資源更好的利用起來,這同樣也是對自己的負(fù)責(zé)。
1 項(xiàng)目背景
隨著人們對飲水機(jī)的需求變高的同時(shí),我們自然而然的對飲水質(zhì)量問題就產(chǎn)生了更多的關(guān)注,而現(xiàn)在的飲水設(shè)備大多都沒有自動控溫系統(tǒng),有的只是自動加熱,但是水的礦物質(zhì)等營養(yǎng)成分在反復(fù)加熱的過程中就大大的流失了,基于這個(gè)問題,本文給出了合理的軟件設(shè)計(jì)來解決?;趩纹瑱C(jī)飲水機(jī)的溫度智能控制系統(tǒng),可以智能的實(shí)時(shí)檢測飲水機(jī)水箱的水溫,當(dāng)水溫低于設(shè)定的溫度時(shí),飲水機(jī)將加熱水箱中的水,當(dāng)高于設(shè)定的時(shí)候,飲水機(jī)將對水箱中的水停止加溫。這樣既節(jié)約了能源又為人們的使用提供了便捷。
2 設(shè)計(jì)部分
⑴系統(tǒng)方案設(shè)計(jì)。本論文設(shè)計(jì)了一種以AT89C51單片機(jī)為核心部件,采用DS18B20的高精度數(shù)據(jù)采集系統(tǒng),這個(gè)系統(tǒng)的最大有點(diǎn)在于可以實(shí)時(shí)檢測飲水機(jī)水箱的水溫,并且可以通過數(shù)碼管顯示(也即3位LED數(shù)碼管)飲水機(jī)水箱水溫度數(shù),而且可以預(yù)防二次加熱。系統(tǒng)的電路設(shè)計(jì)主要由以下幾部分組成:①控制部分主芯片采用單片機(jī)AT89C51;②顯示部分采用3位LED數(shù)碼管以動態(tài)掃描方式實(shí)現(xiàn)溫度顯示;③溫度采集部分采用DS18B20溫度傳感器;④加熱控制部分采用繼電器電路;⑤時(shí)鐘電路;⑥復(fù)位電路;⑦按鍵輸入這部分就不用說了,這個(gè)是必不可少的。在這里就不再贅述。
⑵系統(tǒng)軟件設(shè)計(jì)。系統(tǒng)的軟件設(shè)計(jì)本人主要采用C語言,對單片機(jī)的各項(xiàng)功能用編程來實(shí)現(xiàn)。主程序?qū)δK進(jìn)行初始化,而后調(diào)用讀溫度、處理溫度、顯示、繼電器電路,用的是循環(huán)查詢方式來顯示和控制溫度。
1)系統(tǒng)主程序流程圖。本軟件設(shè)計(jì)采用循環(huán)查詢來處理各個(gè)模塊,溫度是緩慢變化量,所以可以滿足性能要求。程序流程:當(dāng)你選擇了打開飲水機(jī)之后,程序內(nèi)部進(jìn)行初始化操作,將數(shù)據(jù)傳送給DS18B20系統(tǒng),系統(tǒng)調(diào)用數(shù)據(jù)來處理子程序,繼而顯示子程序,最后是繼電器控制子程序,但是飲水機(jī)沒有停止工作,只要沒有給它結(jié)束命令,它會在繼電器控制子程序語句執(zhí)行完之后繼續(xù)初始化操作,然后循環(huán)進(jìn)行。如圖1所示
2)讀取DS18B20溫度模塊子程序。每次對DS18B20操作時(shí)多要按照DS18B20中的協(xié)議進(jìn)行。初始化DS18B20→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。程序流程圖如圖2
3)數(shù)據(jù)處理子程序。由于DS18B20轉(zhuǎn)換后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行數(shù)據(jù)處理。首先程序判斷當(dāng)前飲水機(jī)內(nèi)水溫是否為零下,如果是,則DS18B20保存的是溫度的補(bǔ)碼,需要對其低八位取反加一變成原碼。處理過后把DS18B20的溫度復(fù)制到單片機(jī)的RAM中,里面已經(jīng)是溫度值的Hex碼了,然后轉(zhuǎn)換Hex碼到BCD碼,分別把小數(shù)位,個(gè)位,十位的BCD碼存入RAM中。
3 總結(jié)
本設(shè)計(jì)在元器件選擇上盡量做到使硬件電路簡單,充分利用軟件編程來彌補(bǔ)元器件精度不足的缺點(diǎn)。完成了以AT89C51單片機(jī)為核心的溫度控制系統(tǒng)的設(shè)計(jì)。整個(gè)系統(tǒng)實(shí)現(xiàn)了多項(xiàng)功能,其中包括:溫度采集部分、顯示部分、驅(qū)動部分等,基本實(shí)現(xiàn)了設(shè)計(jì)任務(wù)的要求,并且電路簡單,功能全,易于控制操作,還能擴(kuò)展很多功能。同時(shí),由于時(shí)間及個(gè)人能力有限的問題,本系統(tǒng)的設(shè)計(jì)還存在很多不足和需要改進(jìn)的地方,如:采集部分的誤差較大,控制算法還需進(jìn)一步完善等。
[參考文獻(xiàn)]
[1]唐朔飛.計(jì)算機(jī)組成原理.高等教育出版社.2008.
[2]汪新民,劉若慧.C語言基礎(chǔ)案例教程.北京大學(xué)出版社.2010.
[3]周文.AT89C51-AT89S51性能簡介[J],2008.4.
[4]趙永杰.基于DS18B20的溫度測量系統(tǒng)[J].2008.