陳 娟
(鄭州西亞斯學院電子信息工程學院,河南 鄭州 451150)
隨著嵌入式系統的迅猛發展, 這種嵌入式應用系統正逐步取代傳統的以單片機為中心的應用, 成為未來智能化儀表中的主力軍。目前,工業生產控制過程需要應用大量智能控制儀表,尤其是溫度控制。至今,全世界的溫度控制系統大部分都使用傳統的PID 控制調節器,這是因為調節器具有規律簡單、運行可靠、易于實現的特點。然而,溫度是一種常見的過程變量,溫度控制系統大都含有純滯后環節, 如果使用傳統調節器則容易引起系統超調和振蕩以及系統參數的變化,這種隨機產生的和不可準確預計的變化, 無疑增加了高精度溫度控制的難度。為了解決傳統控制算法在基于智能儀表的溫度控制效果不佳的狀況, 利用現代電子技術, 通過對所需要恒溫裝置進行溫度實時高精度采集和控制相關驅動電路來使裝置處在恒溫狀態。
恒溫系統的運用在工業領域最為常見, 隨著電子技術的快速發展, 對工業領域的現場溫度測控也由以前的指針溫度計、刻度溫度計向數字式、觸摸屏顯示的智能溫度儀表發展, 對恒溫系統的精度要求也不斷提高。傳統的利用單片機設計的恒溫系統己經逐漸不能適應日漸復雜的恒溫系統的需求,高精度數據處理、友好的人機交互界面、遠距離智能化的監控系統將成了現代智能化系統的迫切需求[3]。伴隨著嵌入式系統的迅猛發展, 以單片機為中心的傳統應用正逐步被嵌入式系統的應用所取代[1],成為未來智能化儀器儀表發展趨勢。
恒溫控制系統的主要功能是實現對溫度的自動控制。溫度傳感器采集水的溫度,經過模數轉換得到相應的數據,利用控制芯片STC89C52 對數據進行處理,通過單片機處理信號后將溫度值顯示在LCD1602液晶顯示屏上,并控制相應的設備對水的溫度實現自動調節。總體設計思路見圖1。

圖1 系統的總體設計
主控芯片是STC89C52,其為STC 公司的80C52系列的單片機,存儲器大小為8KB,具有性價比高、功耗低、抗干擾能力強等特點。STC89C52 共計40 個外部引腳,其中24 個I/0 口,即為P0、P1、P2,每個I/0 口含有8 個引腳;電源類的引腳兩個VCC 和GND;晶振引腳XTAL1 和XTAL2;控制類引腳RST/VPP 和ALE/PROG 等。STC89C52 外部引腳圖見圖2。

圖2 STC89C52 外部引腳
溫度傳感器DS18B20 是一款數字式的溫度傳感器,供電電壓范圍在3 V~5 V 之間,傳感器中采用單總線的接口方式,只需要一個端口就可以實現傳感器與控制芯片之間的數據傳輸;測溫范圍為-55 ℃~125℃,以0.5 ℃遞增,實現不同精度測量溫度。并且在傳感器內部已近將溫度轉換為串行數字信號[2]。其測溫電路圖見圖3。

圖3 DS18B20 測溫電路
顯示部分是用LCD1602 液晶顯示屏,是一種圖形點陣顯示器,其顯示的工作原理為電壓的改變會引起兩塊平行板之間的液晶材料內部分子的填充排列狀況的改變,背光透過顯示屏的的變化來來顯示不同的圖像的變化,而且在兩塊平板間再加上彩色濾光層,就可實現顯示出彩色圖像。LCD1602 性價比高,每行字符串16 個字符,總可以顯示共32 個字符,操作比較簡單,使用時穩定可靠,其顯示電路圖,見圖4。

圖4 顯示電路
根據系統所需要完成的功能和各部分硬件電路所需要的要求,設計一套基于控制芯片的控制邏輯或控制算法,并將其裝載到控制芯片之中,實現對相應硬件設備的控制,實現該系統所要設計實現的功能。本設計主要完成的功能是實現對水溫的檢測、采集,顯示和恒溫控制,為了實現系統功能,需要完成系統初始化程序,按鍵掃描程序,溫度測量程序,顯示程序,數據處理程序,設備控制程序各子程序和主程序的編寫,主程序流程圖見圖5。

圖5 主程序流程
當電源開關按下,主程序開始執行,系統初始化,然后判斷系統中溫度設定鍵是否被按下,若按鍵已經按下,則運行按鍵掃描程序實現對設定溫度值的調整,然后開始執行溫度測量程序;若按鍵沒有被按下,則直接運行溫度測量程序。然后運行顯示程序實現對設定值和測量值的顯示,最后經過單片機對數據的處理然后控制相應的設備工作完成水溫的恒溫自動調節。
本次設計中采用DS18B20 溫度傳感器來測量溫度,要實現將傳感器所測量的溫度值讀取到單片機中,還需要對傳感器寫入相應的指令實現對傳感器的控制,讀取到相應的溫度數據,從而實現系統對水溫的測量[7]。而指令的寫入需要調用傳感器寫數據相關程序,溫度數據的讀取需要用到單片機讀數據相關程序。
設備通過上述程序已經可以實現測量溫度和設定溫度的獲取和顯示,單片機需要對數據進行處理控制相應設備以實現水溫的自動調節[4]。本設計采用PID 調節的方法,通過單片機運算得到設備的開啟斷開時間,進而控制水溫。
首先設定PID 算法的參數,然后對測量溫度和設定溫度進行比較[8],若測量溫度大于設定溫度且相差大于20 ℃,則只打開冷水設備,相差小于20 ℃,則通過進行PID 運算得到冷水設備和熱水設備的開啟時間。若測量溫度小于設定溫度且相差大于20 ℃,則只打開熱水設備,相差小于20 ℃,則通過進行PID 運算得到冷水設備和熱水設備的開啟時間。
為了保證系統能夠正常運行,需要對系統硬件部分以及軟件部分進行調試。
硬件調試主要是對硬件系統和各部分電路進行檢查,保證各硬件部分可以接受正確的信號和電壓。需要測試未上電狀態和上電狀態兩種狀態[5]。
未上電條件下,檢查各個部分的線路,各個元器件的型號、大小是否和設計圖上相符。元件的極性是否接反,各個元器件的連接是否正確,元件的極性是否接反,各元件之間的連接是否正確,確認無誤后并利用萬用表檢查元件之間的線路是否存在虛焊,漏焊等問題。
檢查無誤后,對系統上電,觀察系統電路板上是否有元件發熱、燒壞等情況,觀察各元件是否正常工作,然后再使用萬用表測量各元件引腳上的電壓是否符合標準。
軟件調試一般是指保證硬件一切正常的情況下驗證程序執行的時序是否正確,邏輯和結果是否與設計要求相符,能否滿足功能和性能要求等。本設計軟件設計在Keil uVision4 上編寫,通過檢查無錯誤后,編譯并加載到硬件系統上看是否能達到系統的功能要求,然后再進行修改,直到系統可以完成預定的功能。
經過硬件調試和軟件調試沒有問題之后需要將程序寫入所做的硬件設備之中,測試系統是否可以實現水溫的恒溫控制,觀察系統是否穩定,并通過調節相關硬件和修改軟件使系統功能更加完善。
本研究主要對基于微處理器的水溫恒溫控制系統的設計,完成硬件電路及軟件部分的設計,根據產業背景和技術背景,對恒溫混水閥控制器系統的進行方案分析,提出了一套有效可行的方案,完成了對整體硬件電路的設計和軟件的設計[10]。完成控制器的硬件電路設計,該硬件電路以處理器為核心處理器,外擴了實現控制器功能必要的一些外設電路,包括液晶屏電路、電機驅動電路、觸摸屏電路、溫度采集電路等[9]。對每一個硬件電路模塊進行詳細的原理分析及電路設計,同時對如何提高控制器在使用上的簡便穩定進行設計。通過設定出水溫度及溫度采集電路所采集到的反饋溫度值來進行對步進電機控制,實現熱水器的恒溫出水。在恒溫控制上,該系統在實時性與精確上能達到企業要求;能快速地得到設定的溫度值,同時混水閥出水溫度在℃的波動范圍穩定出水[6]。針對目標板上的硬件資源完成嵌入式μⅡ的裁剪和配置,完成在上移植μⅡ內核,同時在移植μ 圖形界面系統;在μⅡ上進行多任務開發,使系統具有較強的實時性,同時提供的接口函數進行人機界面設計,給用戶提供安全穩定的溫度控制效果,達到了恒溫精準、自動控制的目的。