王海洋, 楊雨青, 牛奕童
(安陽學(xué)院航空工程學(xué)院, 河南 安陽 455000)
溫度是影響化學(xué)反應(yīng)的重要因素,某些重要的化學(xué)反應(yīng)必須控制在一個很穩(wěn)定的溫度下才可以發(fā)生;某些化學(xué)反應(yīng)可以通過控制溫度來提高生產(chǎn)率;某些反應(yīng)可以通過控制溫度來提高反應(yīng)速率,進(jìn)而提高生產(chǎn)效率。水浴加熱對于溫度控制具有很好的效果,穩(wěn)定性非常好。
隨著科技的發(fā)展,單片機(jī)的使用率越來越高[1],其優(yōu)點是體積小、成本低、方便可靠[2],給單片機(jī)應(yīng)用到化工水浴加熱器奠定了基礎(chǔ)[3]。本設(shè)計是利用單片機(jī)來制作一個化工水浴加熱器控制系統(tǒng)[4]。使化工水浴加熱器智能化,優(yōu)化了加熱過程的溫度控制、穩(wěn)定性和安全性,提高了溫度控制的精度、效率和安全性。
本設(shè)計由單片機(jī)模塊、按鍵模塊、時鐘模塊、電源模塊、液晶顯示、驅(qū)動模塊和報警模塊[5]和溫度傳感器構(gòu)成。按鍵模塊可以設(shè)定定時時間、手動控制水浴加熱器的開關(guān);時鐘模塊用來計時;電源模塊可以持續(xù)提供電能,保證外部斷電時可以繼續(xù)供電;液晶顯示模塊可以方便時間的設(shè)定;驅(qū)動模塊用來驅(qū)動水浴加熱器的開關(guān),根據(jù)單片機(jī)的指令接通或斷開;報警模塊用來提醒水浴加熱器加熱完成;溫度傳感器反饋溫度。系統(tǒng)的總體結(jié)構(gòu)框如圖1 所示。
圖1 系統(tǒng)整體結(jié)構(gòu)
系統(tǒng)硬件主要由STC89C51 單片機(jī)模塊、按鍵模塊、時鐘模塊、電源模塊、液晶顯示、驅(qū)動模塊、溫度傳感器和報警模塊構(gòu)成。
單片機(jī)模塊采用STC89C51 單片機(jī),STC89C51是一種采用CMOS 工藝制造的8 位微控制器,內(nèi)含8k字節(jié)的Flash,512 個字節(jié)內(nèi)存,32 個I/O 端口,可實現(xiàn)全雙工的串行通訊傳輸,且單片機(jī)可以在0 Hz 以下進(jìn)行工作。在節(jié)能模式下,可以支持兩種不同的軟件,在未執(zhí)行指令工作的狀態(tài)中,CPU 暫停停止運行,使RAM內(nèi)存可以被使用,定時器會在電源斷開后,通過計數(shù)、串行和中斷持續(xù)工作,在上電中斷后,RAM 存儲器里的數(shù)據(jù)可以被保存,單片機(jī)的振蕩器停止運行,直到復(fù)位路進(jìn)行復(fù)位后為止,最大工作頻率可達(dá)35 MHz。
輕觸按鍵,進(jìn)行輕按按鍵便可實現(xiàn)開關(guān)的接通。電路的基本原理示意圖如圖2 所示,S1、S2、S3、S4、S5、S6 分別是:手動開關(guān)、延時開關(guān)、設(shè)置界面切換、設(shè)置位選擇、加、減,分別與單片機(jī)P3.2、P3.3、P3.4、P3.5、P3.6、P3.7 等引腳相連??梢酝ㄟ^按鍵來設(shè)置日期和時間、手動控制水浴加熱器的開關(guān)。
圖2 按鍵電路
采用了雙電源設(shè)置,保證斷電后繼續(xù)計時。單片機(jī)可以改變SCLK 引腳的高低電平,對DS1302 進(jìn)行讀寫操作。再利用I/O 口進(jìn)行數(shù)據(jù)的傳輸,SCLK、I/O、RST 分別接入單片機(jī)P1.3、P1.4、P1.5 管腳。實時時鐘電路見圖3。
圖3 實時時鐘電路
使用LCD162 液晶顯示屏,顯示32 位字符。并與圖中顯示的每個位置的地址相對應(yīng)。表1 為LCD1602各引腳功能。
表1 液晶引腳功能
如圖4 所示,第1 引腳與該線路的GND 相連,第2 引腳與該線路的VCC 相連,這兩個引腳為該LCD工作供電。第3 引腳接入10 kΩ 滑動變電阻,調(diào)整電阻值可以調(diào)整液晶顯示器的亮度。第4 引腳為LCD的寄存控制器,與單片機(jī)P2.7 腳相連,而第5 引腳是讀寫控制腳,與單片機(jī)P2.6 腳相連。第6 引腳是LCD的使能腳。
圖4 LCD1602 電路
驅(qū)動模塊用來驅(qū)動水浴加熱器的開關(guān),根據(jù)單片機(jī)的指令接通或斷開。驅(qū)動器模塊主要由PNP 型晶體管、繼電器和指示燈組成。當(dāng)P2.1 微控制器輸出低電平時,繼電器上的指示燈亮起,驅(qū)動負(fù)載工作。圖5為驅(qū)動模塊電路圖。
圖5 驅(qū)動模塊電路
報警模塊用來提醒水浴加熱器加熱完成。報警模塊的核心部件是蜂鳴器,蜂鳴器報警模塊是由PNP三極管和蜂鳴器組成。當(dāng)P2.0 微控制器輸出低電平時,PNP 三極管管使蜂鳴器開始工作。當(dāng)P2.0 微控制器輸出高電平時,PNP 三極管使蜂鳴器停止。蜂鳴器報警模塊電路見圖6。
圖6 蜂鳴器報警電路
本設(shè)計采用數(shù)字傳感器DS18B20 作為溫度傳感器,具有體積小、穩(wěn)定性好,抗干擾能力強(qiáng)等特點。
軟件程序主要由水浴加熱器的主程序、顯示模塊的顯示程序、時鐘控制程序等組成。本文重點介紹了主程序、顯示模塊的顯示程序、時鐘控制程序。
整個控制系統(tǒng)中軟件包括主程序和顯示程序、時鐘控制程序。首先系統(tǒng)開始后,系統(tǒng)進(jìn)行初始化,讀取溫度信息,讀取時鐘數(shù)據(jù)顯示實時日期與時間,讀取完畢后掃描按鍵,判斷水浴加熱器是否手動打開,如果是手動打開,則返回讀取溫度;如果不是手動打開,則繼續(xù)掃描按鍵,判斷是否對日期時間進(jìn)行改變,如果是,則返回讀取時鐘,否則判斷是否到達(dá)設(shè)置好的打開水浴加熱器的時間,如果沒有達(dá)到時間,則返回讀取時鐘,如果達(dá)到時間則打開水浴加熱器,延時一定時間后,讀取溫度,如果溫度達(dá)到設(shè)定值,則蜂鳴器進(jìn)行報警提示熱水加熱達(dá)到指定溫度,關(guān)閉水浴加熱器,并進(jìn)入溫度反饋循環(huán),不斷地進(jìn)行溫度反饋與讀取,直到溫度低于設(shè)定值,再打開水浴加熱器進(jìn)行加熱;如果溫度沒有達(dá)到設(shè)定值,則返回,繼續(xù)加熱。延時一段時間后,判斷水浴加熱器是否是打開狀態(tài),若是打開狀態(tài),則關(guān)閉熱水器,若不是打開狀態(tài),則返回讀取時鐘。
首先通過控制RS 引腳寫入初始化指令,進(jìn)行對顯示屏的初始化。寫入指令時將RS 引腳拉低設(shè)置為寫指令模式,隨后將RW 設(shè)置為高電平設(shè)置為寫入模式。在寫入之前,先將EN 引腳拉高,之后輸入數(shù)據(jù),最后將EN 引腳拉低,這樣一個8bit 的數(shù)據(jù)就寫入到了顯示屏中。顯示程序流程如圖7 所示。
圖7 顯示程序流程
DS1302 時鐘模塊一共有32 個內(nèi)存處理器,在這里需要的使用的是從秒到年的這些時間單位的寄存器。這些寄存器并不按照時間順序或者日期的順序來顯示。這也使得時鐘的準(zhǔn)確性和可靠性變得更高。當(dāng)時鐘的秒寄存器積累到一定數(shù)值時,就會從秒位上開始進(jìn)行逐位累加,在累加時也會自動進(jìn)位。時鐘程序流程如圖8 所示。
圖8 時鐘程序流程
將設(shè)計好的系統(tǒng)在Proteus 軟件上進(jìn)行仿真,結(jié)果運行良好。按照電路圖安裝硬件,再將程序載入系統(tǒng),給系統(tǒng)通電。
系統(tǒng)接通后,首先測試手動模式,通過多次用按鍵來控制水浴加熱器的開關(guān),觀察熱水器的開關(guān)情況,測試結(jié)果為良好,按鍵能很好的控制開關(guān)。
其次測試定時功能,設(shè)置好測試日期、定時接通的時間,觀察在測試時間水浴加熱器開關(guān)情況,進(jìn)行多次定時功能測試,多次測試結(jié)果良好。
最后,測試自動保溫功能,設(shè)定好一個溫度,讓系統(tǒng)運行,當(dāng)溫度達(dá)到設(shè)定值時,水浴加熱器停止加熱,蜂鳴器報警,溫度降低后,水浴加熱器又開始打開,進(jìn)行加熱。多次測試,功能正常。
通過測試,本設(shè)計很好的完成了設(shè)計目標(biāo),實現(xiàn)實現(xiàn)了水浴加熱器的自動溫度控制、定時溫度控制、手動控制功能。本設(shè)計體積小、成本低、方便可靠,具有重要的應(yīng)用價值。