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