節(jié)能型供熱溫度控制器設(shè)計
2.5 電源電路及溫度顯示、按鍵電路
當(dāng)穩(wěn)壓器LM7805對單片機進行供電時,220 V交流市電通過電源變壓器變換為交流低壓,再經(jīng)橋式整流電路和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個并不穩(wěn)定的直流電壓。此直流電壓經(jīng)LM7805的穩(wěn)壓和C3的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。
單片機AT89C51的P1.6作串行數(shù)據(jù)輸出,連接到PS7219的DIN腳,P1.7和P1.5通過程序分別模擬PS7219的時鐘脈沖CLK及數(shù)據(jù)加載LOAD信號。PS7219的SA~SG,SDP端連接到各LED數(shù)碼管對應(yīng)的a~f及dp端,DIG1~DIG3分別接3位LED數(shù)碼管的共陰極,從而實現(xiàn)位選。PS7219應(yīng)緊靠LED顯示器放置,且連線盡可能短,兩個GND引腳均必須連接到地線上。系統(tǒng)只設(shè)4個按鍵,分別是功能鍵、增加鍵、減小鍵和確定鍵。在按鍵的線路連接中,每個按鍵并聯(lián)一個0.1μF電容,目的是實現(xiàn)消抖。
3 程序設(shè)計
3.1 系統(tǒng)主程序設(shè)計
主程序模塊的主要工作是上電后對系統(tǒng)初始化和構(gòu)建系統(tǒng)整體軟件框架,其中初始化包括對單片機的初始化、D/A芯片初始化和溫度傳感器初始化等。隨后等待溫度設(shè)定,若溫度設(shè)定后,判斷系統(tǒng)運行鍵是否按下,若系統(tǒng)運行,則依次調(diào)用各相關(guān)模塊,循環(huán)控制直到系統(tǒng)停止運行。圖5所示為主程序流程圖。
由于常規(guī)PID控制器控制效果不佳,溫度測量控制中存在非線性、時變、干擾和純滯后問題,而增量式PID算法具有計算誤差小、切換無沖擊和可靠性高的特點,所以本系統(tǒng)采用該算法。數(shù)字增量式PID的輸出為:
△u(k)=a0e(k)-a1e(k-1)+a2e(k-2) (1)
其中,Kp為比例系數(shù);TI為積分時間常數(shù);TD為微分時間常數(shù)
3.2 溫度傳感器測溫子程序
溫度傳感器DS18B20的操作協(xié)議:初始化DS1820(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。其操作程序流程如圖6所示。其中任何一步失敗時自動重新初始化。
3.3 CAN通信模塊子程序
CAN通信的軟件設(shè)計主要包括3部分:CAN節(jié)點初始化、報文發(fā)送和報文接收。AT89C51通電或復(fù)位后,調(diào)用復(fù)位程序給SJA1000的復(fù)位端RST提供復(fù)位信號,使SJA1000進入復(fù)位模式,SJA1000的初始化只有在復(fù)位模式下才可進行。初始化程序主要包括以下寄存器的設(shè)計:(1)通過時鐘分頻寄存器定義:是使用Basic CAN模式或Peli CAN模式;是否能使CLKOUT輸出時鐘頻率;是否旁路CAN輸入比較器;TX1輸出是否用專門的接收中斷輸出。(2)通過驗收碼寄存器和屏蔽寄存器定義接收報文的驗收碼與對報文之間進行比較的相關(guān)位定義驗收屏蔽碼。(3)通過總線定時寄存器定義總線的位速率、位周期內(nèi)的采樣點和一個位周期內(nèi)的采樣數(shù)量。(4)通過輸出寄存器定義CAN總線輸出管腳TX0、TX1的輸出模式、配置。最后,要清除SJA1000的復(fù)位請求標(biāo)志進入工作模式,方可進行報文的發(fā)送和接收。
單片機將要發(fā)送的報文送到SAJ1000發(fā)送緩沖區(qū),然后將SJA1000命令寄存器的發(fā)送請求標(biāo)志位(TR)置位,發(fā)送過程南其獨立完成。在新報文寫入發(fā)送緩沖區(qū)前,必須先檢查狀態(tài)寄存器的發(fā)送緩沖器狀態(tài)標(biāo)志(TBS),若為“1”,發(fā)送緩沖器被釋放,可將新的報文寫入發(fā)送緩沖器。否則,發(fā)送緩沖器被鎖定,新報文不能被寫入。
報文接收也由SJA1000獨立完成。收到的報文通過接收濾波器放在FIFO隊列中,第1條報文進入接收緩沖器,由狀態(tài)寄存器的接收緩沖器狀態(tài)標(biāo)志位(RBS)和接收中斷標(biāo)志位(RI)標(biāo)出。單片機從接收緩沖器取走1條報文后,通過置位SAJ1000的命令寄存器來釋放接收緩沖器。
4 軟件調(diào)試
在硬件設(shè)計和軟件的編程后,將針對要實現(xiàn)的功能編寫程序在Keil C51中將編譯無誤的程序運行,對整個系統(tǒng)而言,首先要對鍵盤輸入和數(shù)碼顯示進行調(diào)試,就是整個硬件電路對照電路圖進行檢查,查找錯焊、虛焊、漏焊等錯誤。檢查無誤后,便開始運行電路,為保證穩(wěn)定的電源供給,給PC機的USB接口提供5 V直流電源。將結(jié)果與要實現(xiàn)的理想狀態(tài)對照,再通過結(jié)果對硬件電路進行檢驗和修改,并將所編程序進行適當(dāng)優(yōu)化,如圖7所示。運行結(jié)果證明整個系統(tǒng)穩(wěn)定、可靠,滿足了設(shè)計要求。
5 結(jié)束語
文中研究了供熱溫度控制器的方案設(shè)計和結(jié)構(gòu)組成,最終實現(xiàn)了一套較為完整的基于AT89C51和CAN總線的節(jié)能型供熱溫度控制器。并對其各部分進行了軟硬件設(shè)計,包括自動測溫、單片機內(nèi)部調(diào)節(jié)、設(shè)定理想溫度、CAN總線通信等功能模塊的電路設(shè)計和軟件實現(xiàn)
pid控制器相關(guān)文章:pid控制器原理
評論