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