基于51單片機水溫控制系統
1.引言
科技是社會發展的中流砥柱,而近幾年比較熱門的電子技術更是被廣泛應用于各行各業。電子技術衍生的電子產業更是如火如荼,蓬勃發展的電子產業日益趨向智能化、信息化。
2.總體設計
控制器采用單片機STC89C51,溫度傳感器采用DS18B20,顯示采用4位LED數碼管,報警控制器采用有緣蜂鳴器、LED燈實現,按鍵用來設定報警上下限溫度并將設置好的值保存在STC89C51的EEPROM中(具有掉電保護功能)。當實測溫度值小于設定的溫度下限值時系統開啟繼電器間接控制接在繼電器常開端上的加熱棒,繼電器一開啟熱得棒就開始工作,繼電器關閉熱得棒也隨著停止工作。本設計的具體的系統方案如圖1所示。

圖1 系統方案如圖

圖2 程序流程圖
3.軟件部分
3.1 程序設計
void main()是程序的主函數,用于構建框架。程序的開頭一般用于初始化和賦值變量,正常的程序運行一次后便結束了,但我們需要不斷地運行來檢驗結果,所以在初始化后加入了死循環,使程序持續運行。主函數在整個主程序的設計中最好放適量的代碼,避免過多。具體的代碼是用函數進行封裝然后在主函數進行調用。程序流程圖如圖2所示。
3.2 軟件使用
系統軟件測試KEIL軟件是單片機編程的一款常用軟件,創建空白文件編程編譯調試生成HEX文件.隨后下載到單片機中,下載器選用PL2303。觀察系統運行的狀態,進而進行反復的修改調試程序,得到一個較為完善的程序。在系統軟件調試過程中遇到以下幾個問題:
(1)數碼管沒有正常顯示出現了閃爍現象。
解決方法:閃爍的原因為每一位顯示延時間期過短使得顯示頻率過快,導致人眼生物極限無法看清超速的顯示,只需要調整延時函數就可以顯示正常。
(2)EEPROM存儲錯誤。
解決方法:一開始的時候在讀寫數據前都沒有做任何的操作,本以為這樣就可以完成數據的存儲,但是并沒有想的那樣,在讀與的時候出現與進去的和讀出來的并沒有相同,后通過查閱資料得知,STC單片機內部的EEPROM在寫入數據之前心須擦除扇區,否則寫入的數據就是和本身的數據進行相與的結果,而在程序上添加了在寫入數據之前加上擦除扇區后,數據存儲正常。
4.結論
基于51單片機水溫控制系統,以STC89C51單片機為主控芯片,采用數字型防水溫度傳感器DS18B20制作溫度檢測報警器,實現水溫的檢測以及控制的基本功能,設計簡單,方便實現,具有實際效應,對未來產品的推廣以及人們生活的發展具有很大幫助及意義。