溫度控制系統(tǒng)設(shè)計(jì)論文資料
溫度控制系統(tǒng)設(shè)計(jì)論文資料,溫度,控制系統(tǒng),設(shè)計(jì),論文,資料
目錄
第一章 設(shè)計(jì)背景及設(shè)計(jì)意義 ………………………………………2
第二章 系統(tǒng)方案設(shè)計(jì) …………………………………………………3
第三章 硬件……………………………………………………………….5
3.1 溫度檢測(cè)和變送器……………………………………………………5
3.2 溫度控制電路…………………………………………………………6
3.3 A/D轉(zhuǎn)換電路 …………………………………………………………7
3.4 報(bào)警電路………………………………………………………… 8
3.5 看門(mén)狗電路…………………………………………………………… 8
3.6 顯示電路…………………………………………………………… 10
3.7 電源電路………………………………………………………………12
第四章 軟件設(shè)計(jì) ……………………………………………………… 14
4.1 軟件實(shí)現(xiàn)方法 ………………………………………………………14
4.2 總體程序流程圖 ……………………………………………………15
4.3 程序清單 …………………………………………………………… 19
第五章 設(shè)計(jì)感想 …………………………………………………………29
第六章 參考文獻(xiàn)……………………………………………………………30
第七章 附錄 …………………………………………………………………31
7.1 硬件清單 ……………………………………………………………31
7.2 硬件布線圖 …………………………………………………………31
第一章 設(shè)計(jì)背景及研究意義
機(jī)械制造行業(yè)中,用于金屬熱處理的加熱爐,需要消耗大量的電能,而且溫度控制是純滯后的一階慣性環(huán)節(jié)?,F(xiàn)有企業(yè)多采用常規(guī)儀表加接觸器的斷續(xù)控制,隨著科技進(jìn)步和生產(chǎn)的發(fā)展,這類設(shè)備對(duì)溫度的控制要求越來(lái)越高,除控溫精度外,對(duì)溫度上升速度及下降速度也提出了可控要求,顯而易見(jiàn)常規(guī)控制難于滿足這些工藝要求。隨著微電子技術(shù)及電力電子技術(shù)的發(fā)展,采用功能強(qiáng)、體積小、價(jià)格低的智能化溫度控制裝置控制加熱爐已成為現(xiàn)實(shí)。
自動(dòng)控制系統(tǒng)在各個(gè)領(lǐng)域尤其是工業(yè)領(lǐng)域中有著及其廣泛的應(yīng)用,溫度控制是控制系統(tǒng)中最為常見(jiàn)的控制類型之一。隨著單片機(jī)技術(shù)的飛速發(fā)展,通過(guò)單片機(jī)對(duì)被控對(duì)象進(jìn)行控制日益成為今后自動(dòng)控制領(lǐng)域的一個(gè)重要發(fā)展方向。在現(xiàn)代化的工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。對(duì)工件的處理溫度要求嚴(yán)格控制,計(jì)算機(jī)溫度控制系統(tǒng)使溫度控制指標(biāo)得到了大幅度提高。采用MCS-51單片機(jī)來(lái)對(duì)溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問(wèn)題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的問(wèn)題。
,
第二章 系統(tǒng)方案的設(shè)計(jì)
這次課程設(shè)計(jì)題目為熱電偶構(gòu)成的熱處理爐的溫度控制系統(tǒng),
技術(shù)要求:1.設(shè)定溫度范圍為0~999°
2.溫度顯示為0~999°
3.到設(shè)定溫度報(bào)警
熱處理爐爐溫控制系統(tǒng)的控制過(guò)程是:?jiǎn)纹瑱C(jī)定時(shí)對(duì)爐溫進(jìn)行檢測(cè),經(jīng)A/D轉(zhuǎn)換芯片得到相應(yīng)的數(shù)字量,經(jīng)過(guò)計(jì)算機(jī)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,得到應(yīng)有的控制量,去控制加熱功率,從而實(shí)現(xiàn)對(duì)溫度的控制。如下圖所示:
進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)應(yīng)考慮如下問(wèn)題:
1.爐溫變化規(guī)律的控制,即爐溫按預(yù)定的溫度——時(shí)間關(guān)系變化。
2.溫度控制范圍:如0~1000℃,這就涉及到測(cè)溫元件、電爐功率的選擇等。
3.控制精度、超調(diào)量等指標(biāo),這涉及到A/D轉(zhuǎn)換精度、控制規(guī)律選擇等。
溫控系統(tǒng)主要由溫度傳感器、溫度調(diào)節(jié)儀、執(zhí)行裝置、被控對(duì)象四個(gè)部分組成,其系統(tǒng)結(jié)構(gòu)圖如圖1所示。被控制對(duì)象是大容量、大慣性的電熱爐溫度對(duì)象,是典型的多階容積遲后特性,在工程上往往近似為包含有純滯后的二階容積遲后;由于被控對(duì)象電容量大,通常采用可控硅作調(diào)節(jié)器的執(zhí)行器,其具體的電路圖如圖2所示。
調(diào)節(jié)加熱爐的溫度,在工業(yè)上是通過(guò)在設(shè)定周期范圍內(nèi),將電路接通幾個(gè)周波,然后斷開(kāi)幾個(gè)周波,改變晶閘管在設(shè)定周期內(nèi)通斷時(shí)間的比例,來(lái)調(diào)節(jié)負(fù)載兩端交流平均電壓即負(fù)載功率,這就是通常所說(shuō)的調(diào)功器或周波控制器;調(diào)功器是在電源電壓過(guò)零時(shí)觸發(fā)晶閘管導(dǎo)通的,所以負(fù)載上得到的是完整的正弦波,調(diào)節(jié)的只是設(shè)定周期Tc內(nèi)導(dǎo)通的電壓周波。如圖3所示,設(shè)周期Tc內(nèi)導(dǎo)通的周期的波數(shù)為n,每個(gè)周波的周期為T(mén),則調(diào)功器的輸出功率為P=n×T×Pn/Tc,Pn為設(shè)定周期Tc內(nèi)電壓全通過(guò)時(shí)裝置的輸出功率。
第三章 硬件的設(shè)計(jì)
3.1 溫度檢測(cè)和變送器
溫度檢測(cè)元件和變送器的類型選擇與被控溫度的范圍和精度等級(jí)有關(guān)。鎳鉻/鎳鋁熱電偶適用于0℃-1000℃的溫度檢測(cè)范圍,相應(yīng)輸出電壓為0mV-41.32mV。
??? 變送器由毫伏變送器和電流/電壓變送器組成:毫伏變送器用于把熱電偶輸出的0mV-41.32mV變換成4mA-20mA的電流;電流/電壓變送器用于把毫伏變送器輸出的4mA-20mA電流變換成0-5V的電壓。
????為了提高測(cè)量精度,變送器可以進(jìn)行零點(diǎn)遷移。例如:若溫度測(cè)量范圍為500℃-1000℃,則熱電偶輸出為20.6mV-41.32mV,毫伏變送器零點(diǎn)遷移后輸出4mA-20mA范圍電流。這樣,采用8位A/D轉(zhuǎn)換器就可使量化溫度達(dá)到1.96℃以內(nèi)。其在控制系統(tǒng)的作用如下圖所示:
熱處理爐
圖1:溫度檢測(cè)電路
3.2 溫度控制電路
8051對(duì)溫度的控制是通過(guò)雙向可控硅實(shí)現(xiàn)的。如圖一所示,雙向可控硅管和加熱絲串接在交流220V、50Hz市電回路。在給定周期T內(nèi),8051只要改變可控硅管的接通時(shí)間即可改變加熱絲的功率,以達(dá)到調(diào)節(jié)溫度的目的。
????可控硅接通時(shí)間可以通過(guò)可控硅控制極上觸發(fā)脈沖控制。該觸發(fā)脈沖由8051用軟件在P2.1引腳上產(chǎn)生,在過(guò)零同步脈沖同步后經(jīng)光電耦合管和驅(qū)動(dòng)器輸出送到可控硅的控控制系統(tǒng)的制極上。
圖1:調(diào)溫電路
3.3 A/D轉(zhuǎn)換電路
ADC0809是一種比較典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,CMOS工藝,可實(shí)現(xiàn)8路模擬信號(hào)的分時(shí)采集,片內(nèi)有8路模擬選通開(kāi)關(guān),以及相應(yīng)的通道地址鎖存用譯碼電路,其轉(zhuǎn)換時(shí)間為100μs左右,采用雙排28引腳封裝,其主要性能指標(biāo)如下:
1、分辨率為8位二進(jìn)制數(shù);
2、電壓范圍在0~+5V,對(duì)應(yīng)A/D值00H~FFH;
3、每路A/D轉(zhuǎn)換完成時(shí)間100ms;
4、可分時(shí)進(jìn)行8路A/D轉(zhuǎn)換;
5、工作頻率500KHz(本電路由8051ALE端輸出經(jīng)4分頻后得到)。
引腳功能如下:
IN0~I(xiàn)N7:8路0~+5V模擬電壓輸入(用IN0端);
DB7~DB0:8位數(shù)字輸出線,輸出8位A/D轉(zhuǎn)換值;
STAST:?jiǎn)?dòng)A/D轉(zhuǎn)換端;
EOC:A/D轉(zhuǎn)換完成端;
OE:允許數(shù)字量輸出信號(hào);
CLOCK:時(shí)鐘500KHz;
ADD A、B、C:IN0~I(xiàn)N7地址選擇線;
ALE:地址鎖存允許輸入信號(hào)。
A/D轉(zhuǎn)換器0809與放大電路連接較簡(jiǎn)單,運(yùn)放接成比例放大形式,放大倍數(shù)可調(diào),總體A/D轉(zhuǎn)換與8051接口電路如下:
3.4 報(bào)警電路
報(bào)警電路的作用主要是在溫度超過(guò)規(guī)定的溫度或低于下限溫度或達(dá)到預(yù)定溫度時(shí),報(bào)警子程序就會(huì)控制報(bào)警信號(hào)的輸出,溫度低與或高于規(guī)定的溫度范圍以及達(dá)到規(guī)定的溫度時(shí),音頻裝置就會(huì)發(fā)出不同頻率的告警信號(hào),同時(shí)相應(yīng)的LED顯示,到底是高了還是低了,以便與自動(dòng)調(diào)節(jié)。報(bào)警電路如下圖:
圖1:報(bào)警電路
3.5看門(mén)狗電路
計(jì)算機(jī)看門(mén)狗控制卡是為了使計(jì)算機(jī)或工控機(jī)在系統(tǒng)出現(xiàn)異常時(shí),能自動(dòng)控制計(jì)算機(jī)進(jìn)行重新啟動(dòng),使系統(tǒng)恢復(fù)正常運(yùn)行,保證系統(tǒng)24小時(shí)不間斷正常工作。該控制卡可運(yùn)用于無(wú)人職守的場(chǎng)所。像采用計(jì)算機(jī)作為存儲(chǔ)設(shè)備的數(shù)字硬盤(pán)錄像系統(tǒng),公路卡口監(jiān)控記錄設(shè)備等。
特點(diǎn):
● 可固定在計(jì)算機(jī)內(nèi)部并且不占用計(jì)算機(jī)任何插槽。
● 借電方便,可利用計(jì)算機(jī)本身的軟驅(qū)電源接口。
● 通過(guò)計(jì)算機(jī)并口或者串口跟計(jì)算機(jī)通訊。
● 計(jì)算機(jī)操作系統(tǒng)發(fā)生死機(jī)后,30秒(時(shí)間可設(shè)置)內(nèi)控制卡控制計(jì)算機(jī)重新啟動(dòng)。
● 控制卡內(nèi)有信號(hào)燈,在正常工作時(shí)有頻率穩(wěn)定持續(xù)的燈光閃動(dòng)。
● 提供開(kāi)發(fā)控件,可啟動(dòng)看門(mén)狗功能、停止看門(mén)狗功能、設(shè)置串口還是并口。
● 有兩種型號(hào)的控制卡,有自帶RS232轉(zhuǎn)485的功能的控制卡。
現(xiàn)以MAX706監(jiān)控電路為例(見(jiàn)圖1)來(lái)說(shuō)明“看門(mén)狗”硬件電路的工作過(guò)程,我們知道,MAX706是一種性能優(yōu)良的低功耗CMOS監(jiān)控電路芯片,其內(nèi)部電路由上電復(fù)位、可重觸發(fā)“看門(mén)狗”定時(shí)器及電壓比較器等組成[2]。MAX706只要在1.6秒時(shí)間內(nèi)檢測(cè)到WCI引腳有高低電平跳變信號(hào),則“看門(mén)狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí);若超出1.6秒后,WCI引腳仍無(wú)高低電平跳變信號(hào),則“看門(mén)狗”定時(shí)器溢出,WDO引腳輸出低電平,進(jìn)而觸發(fā)MR手動(dòng)復(fù)位引腳,使MAC706復(fù)位,從而使“看門(mén)狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí),WDO引腳輸出高電平,MAX706的RST復(fù)位輸出引腳輸出大約200毫秒寬度的低電平脈沖,使單片機(jī)控制系統(tǒng)可靠復(fù)位,重新投入正常運(yùn)行。
圖1:看門(mén)狗電路
3.6 顯示電路
單片機(jī)與顯示器的接口電路圖
圖MC14495內(nèi)部邏輯結(jié)構(gòu)及引腳
圖用MC14495組成多位LED靜態(tài)顯示器接口
程序:
DIR: SETB RS0 ;保護(hù)第0組工作寄存器
PUSH A ;保護(hù)現(xiàn)場(chǎng)
MOV R2, #03H ;顯示位數(shù)計(jì)數(shù)
MOV R1, #00H ;設(shè)位碼初值,初態(tài)從LED7開(kāi)始
MOV R0, #DIS7 ;顯示緩沖區(qū)末地址送R0
DIR0: MOV A, @RO ;取待顯示的數(shù)據(jù)
AND A, #07H ;屏蔽高3位,保留低4位BCD碼
MOV R3, A ;暫存R3中
MOV A, R1 ;位選碼值送A
SWAP A ;位碼交換到高4位
ADD A, R3 ;合并形成輸出的BCD碼和位選碼
MOV P1,A ;輸出到P1口
INC R1 ;位碼加1指向下一位
DJNZ R2, DIR0 ;8個(gè)位未顯示完重復(fù)
CLR RS0 ;顯示完恢復(fù)第0組工作寄存器
POP A
RET ;返回主程序
3.7 電源電路
本模塊將交流 220V輸入電壓變?yōu)?組直流電壓,其中5V電壓為CPU等數(shù)字電路提供電源;±15V電壓為運(yùn)放等模擬芯片提供電源;24V電壓為溫度變送器提供電源。
220v市電經(jīng)變壓器輸出兩組獨(dú)立的25v交流,橋堆整流,大電容濾波得到 + 35v直流,再加一個(gè)0.1uF小電容濾出電源中的高頻分量。考慮到制作過(guò)程中電源空載似的電容放電可在輸出電容并上1k大功率電阻。另外這組直流還要給7812、7912來(lái)獲得 + 12v。 電源模塊如下圖:
圖1:5V直流穩(wěn)壓源電路
圖2: + 12V/24V直流穩(wěn)壓源的原理電路
第四章 軟件的設(shè)計(jì)
4.1 軟件實(shí)現(xiàn)方法
根據(jù)熱處理爐在上電復(fù)位后先處于停止加熱狀態(tài),這時(shí)可以用“+1”鍵設(shè)定預(yù)置溫度,顯示器顯示預(yù)定溫度;溫度設(shè)定好后就可以按啟動(dòng)鍵啟動(dòng)系統(tǒng)工作了。溫度檢測(cè)系統(tǒng)不斷定時(shí)檢測(cè)當(dāng)前溫度,并送往顯示器顯示,達(dá)到預(yù)定值后停止加熱并顯示當(dāng)前溫度;當(dāng)溫度下降到下限(比預(yù)定值低3℃)時(shí)再啟動(dòng)加熱。這樣不斷重復(fù)上述過(guò)程,使溫度保持在預(yù)定溫度范圍之內(nèi)。啟動(dòng)后不能再修改預(yù)置溫度,必須按復(fù)位/停止鍵回到停止加熱狀態(tài)再重新設(shè)定預(yù)置溫度。
爐溫控制是這樣一個(gè)反饋調(diào)節(jié)過(guò)程,比較實(shí)際爐溫和需要爐溫得到偏差,通過(guò)對(duì)偏差的處理獲得控制信號(hào),去調(diào)節(jié)電阻爐的熱功率,從而實(shí)現(xiàn)對(duì)爐溫的控制。按照偏差的比例、積分和微分產(chǎn)生控制作用(PID控制),是過(guò)程控制中應(yīng)用最廣泛的一種控制形式。
系統(tǒng)控制程序采用兩重中斷嵌套方式設(shè)計(jì)。首先使T0計(jì)數(shù)器產(chǎn)生定時(shí)中斷,作為本系統(tǒng)的采樣周期。在中斷服務(wù)程序中啟動(dòng)A/D,讀入采樣數(shù)據(jù),進(jìn)行數(shù)字濾波、上下限報(bào)警處理,PID計(jì)算,然后輸出控制脈沖信號(hào)。脈沖寬度由T1計(jì)數(shù)器溢出中斷決定。在等待T1中斷時(shí),將本次采樣值轉(zhuǎn)換成對(duì)應(yīng)的溫度值放入顯示緩沖區(qū),然后調(diào)用顯示子程序。從T1中斷返回后,再?gòu)腡0中斷返回主程序并且、繼續(xù)顯示本次采樣溫度,等待下次T0中斷。
1)二位式調(diào)節(jié)--它只有開(kāi)、關(guān)兩種狀態(tài),當(dāng)爐溫低于限給定值時(shí)執(zhí)行器全開(kāi);當(dāng)爐溫高于給定值時(shí)執(zhí)行器全閉。(執(zhí)行器一般選用接觸器)
2)三位式調(diào)節(jié)--它有上下限兩個(gè)給定值,當(dāng)爐溫低于下限給定值時(shí)招待器全開(kāi);當(dāng)爐溫在上、下限給定值之間時(shí)執(zhí)行器部分開(kāi)啟;當(dāng)爐溫超過(guò)上限給定值時(shí)執(zhí)行器全閉。
3)比例調(diào)節(jié)(P調(diào)節(jié))--調(diào)節(jié)器的輸出信號(hào)(M)和偏差輸入(e)成比例。即:M=ke。式中:K-----比例系數(shù)
比例調(diào)節(jié)器的輸入、輸出量之間任何時(shí)刻都存在--對(duì)應(yīng)的比例關(guān)系,因此爐溫變化經(jīng)比例調(diào)節(jié)達(dá)到平衡時(shí),爐溫不能加復(fù)到給定值時(shí)的偏差--稱“靜差”
4)比例積分(PI)調(diào)節(jié)--為了“靜差”,在比例調(diào)節(jié)中添加積分(I)調(diào)節(jié)積分,調(diào)節(jié)是指調(diào)節(jié)器的輸出信號(hào)與偏差存在隨時(shí)間的增長(zhǎng)而增強(qiáng),直到偏差消除才無(wú)輸出信號(hào),故能消除“靜差”比例調(diào)節(jié)和積分調(diào)節(jié)的組合稱為比例積分調(diào)節(jié).
5) 比例積分微分(PID)調(diào)節(jié)--比例積分調(diào)節(jié)會(huì)使調(diào)節(jié)過(guò)程增長(zhǎng),溫度的波動(dòng)幅值增大,為此再引入微分(D)調(diào)節(jié)。微分調(diào)節(jié)是指調(diào)節(jié)器的輸出與偏差對(duì)時(shí)間的微分成比例,微分調(diào)節(jié)器在溫度有變化“苗頭”時(shí)就有調(diào)節(jié)信號(hào)輸出,變化速度越快、輸出信號(hào)越強(qiáng),故能加快調(diào)節(jié)速度,降低溫度波動(dòng)幅度,比例調(diào)節(jié)、積分調(diào)節(jié)和微分調(diào)節(jié)的組合稱為比例積分微分調(diào)節(jié)。(一般采用晶閘管調(diào)節(jié)器為執(zhí)行器)。
根據(jù)生產(chǎn)現(xiàn)場(chǎng)的運(yùn)行情況,這種控溫方法,精度比較高,系統(tǒng)性能穩(wěn)定,滿足生產(chǎn)的實(shí)際需要。主要設(shè)備:熱電偶或熱電阻,智能PID溫控儀,可控硅觸發(fā)調(diào)功器等。
4.2 總體程序流程圖
溫度控制程序的設(shè)計(jì)應(yīng)考慮如下:1)鍵盤(pán)掃描、鍵碼識(shí)別和溫度顯示;2)爐溫采樣、數(shù)字濾波;3)數(shù)據(jù)處理;4)越限報(bào)警和處理;5)PID計(jì)算、溫度標(biāo)度轉(zhuǎn)換
4.2.1主程序框圖
主程序包括8051本身的初始化等等。大體說(shuō)來(lái),本程序包括設(shè)置有關(guān)標(biāo)志、暫存單元和顯示緩沖區(qū)清零、T0初始化、CPU開(kāi)中斷、溫度顯示和鍵盤(pán)掃描程序
主程序
在主程序中首先給定PID算法的參數(shù)值,然后通過(guò)循環(huán)顯示當(dāng)前溫度,并且設(shè)定鍵盤(pán)外部中斷為最高優(yōu)先級(jí),以便能實(shí)時(shí)響應(yīng)鍵盤(pán)處理;軟件設(shè)定定時(shí)器T0為5秒定時(shí),在無(wú)鍵盤(pán)響應(yīng)時(shí)每隔5秒響應(yīng)一次,以用來(lái)采集經(jīng)過(guò)A/D轉(zhuǎn)換的溫度信號(hào);設(shè)定定時(shí)器T1為嵌套在T0之中的定時(shí)中斷,初值由PID算法子程序提供。在主程序中必須分配好每一部分子程序的起始地址,形式如下:
?????????? ORG? 0000H
?????????? AJMP? MAIN
?????????? ORG? 0003H
?????????? AJMP? INTO
?????????? ORG? 000BH
?????????? AJMP? TT0
?????????? ORG? 001BH???
?????????? AJMP? TT1?
4.2.2中斷服務(wù)程序框圖
T0中斷服務(wù)程序是溫度控制系統(tǒng)的主體程序,用于啟動(dòng)數(shù)/模轉(zhuǎn)換器、讀入采樣數(shù)據(jù)、數(shù)字濾波、越限溫度報(bào)警和越限處理、PID計(jì)算和輸出可控硅的觸發(fā)脈沖等。P1.3引腳上輸出的該同步觸發(fā)脈沖寬度由T1計(jì)數(shù)器的溢出中斷控制,8051利用等待T1溢出中斷的空閑時(shí)間(形成P1.3輸出脈沖頂寬)完成把本次采樣值轉(zhuǎn)換成顯示值而放入顯示單元緩沖區(qū)和調(diào)用溫度顯示程序。8051從T1中斷服務(wù)程序返回后即可恢復(fù)現(xiàn)場(chǎng)和返回主程序。
系統(tǒng)軟件采用中斷方式編程,主要部分是時(shí)鐘中斷程序,主要由輸入處理程序、控制算法程序、顯示處理、輸出處理和自診斷程序等組成,其流程圖如圖2所示。儀表通電啟動(dòng)后,初始化程序進(jìn)行時(shí)間給定,每隔500ms時(shí)鐘中斷一次,中斷后進(jìn)入時(shí)鐘中斷處理。對(duì)于純滯后,大慣性環(huán)節(jié)控制對(duì)象,一般采用積分分離PID控制算法。在一般的PID控制中,當(dāng)系統(tǒng)有較大的擾動(dòng)或設(shè)定值較大幅度提降時(shí),由于偏差較大及系統(tǒng)存在慣性和滯后,在積分項(xiàng)的作用下,會(huì)產(chǎn)生較大的超調(diào)和長(zhǎng)時(shí)間波動(dòng),在溫度緩慢變化過(guò)程中這一現(xiàn)象尤為嚴(yán)重,為此采用積分分離措施,即在偏差較大時(shí),取消積分作用,偏差較小時(shí),才將積分作用投入。
中斷服務(wù)程序框圖
4.3 程序清單
4.3.1 報(bào)警電路子程序
1.子程序框圖
?????
2.報(bào)警子程序:
FLAG BIT 00H
ORG 00H
START: JB P1.7,START
JNB FLAG,NEXT
MOV R2,#200
DV: CPL P2.2
LCALL DELY500
LCALL DELY500
DJNZ R2,DV
CPL FLAG
NEXT: MOV R2,#200
DV1: CPL P1.0
LCALL DELY500
DJNZ R2,DV1
CPL FLAG
SJMP START
DELY500: MOV R7,#250
LOOP: NOP
DJNZ R7,LOOP
RET
END
4.3.2 鍵盤(pán)顯示管理程序。
????為了使8279具有合適的鍵盤(pán)、顯示功能,首先要對(duì)芯片初始化??蛇m當(dāng)?shù)靥暨x8279的控制字,例如:使8279具有8位顯示、右端輸入、編碼鍵盤(pán)、雙鍵鎖定時(shí)可選控制字10H.這時(shí)每次按鍵都將產(chǎn)生鍵特征碼,并且存放在FIFOROM中,同時(shí)使8279的IRQ引腳變?yōu)楦唠娖?,可作為向CPU申請(qǐng)中斷信號(hào),如果CPU是中斷開(kāi)放的,則轉(zhuǎn)向中斷服務(wù)程序,可在中斷服務(wù)程序中讀取特征碼。每當(dāng)CPU讀取FIFOROM中的數(shù)據(jù)后,8279自動(dòng)撤消IRQ信號(hào),IRQ引腳變?yōu)榈碗娖?。CPU返回主程序后,可由鍵特征碼來(lái)決定程序的流向。問(wèn)題是,當(dāng)CPU從8279的FIFOROM中讀取鍵特征碼后,IRQ雖然恢復(fù)底電平,但FIFOROM中的數(shù)據(jù)并沒(méi)有消失,仍保存在里面,這時(shí)即使使用對(duì)改8279清除的指令D3H,也不能將FIFOROM中的數(shù)改變,只有按其它鍵才能改變FIFOROM中的數(shù)據(jù),因這樣是無(wú)法實(shí)現(xiàn)按鈕功能的。
為了使鍵盤(pán)具有按鈕功能,應(yīng)該利用8279的傳感方式功能,在傳感器方式中,8279每當(dāng)檢測(cè)到傳感狀態(tài)變化時(shí),IRQ就變?yōu)楦唠娖剑瑘D1是以8051CPU構(gòu)成的系統(tǒng)為例,說(shuō)明IRQ引腳電平的翻新過(guò)程。
?8279的IRQ端經(jīng)反相器接到8051的INT1端(即P3.3引腳)。先將8279設(shè)置成編碼鍵盤(pán),允許INT1中斷,當(dāng)鍵按下時(shí),反相器輸出低電平,CPU進(jìn)入中斷服務(wù)程序,讀取鍵特征碼后,又為高電平。返回主程序后,轉(zhuǎn)向功能程序(例如調(diào)模進(jìn))。輸出控制信號(hào)(例如P1.0為“1”時(shí)調(diào)模進(jìn)電磁閥得電)后,將8279設(shè)置為傳感器方式,并且不允許INT1中斷,然后調(diào)試P3.3是否為低電平。如果按鍵松開(kāi),8279將測(cè)出傳感器狀態(tài)發(fā)生變化,而使IRQ由低電平轉(zhuǎn)為高電平。也就是說(shuō)P3.3腳為低電平時(shí),按鍵已經(jīng)松開(kāi),程序重新設(shè)置8279為編碼鍵盤(pán),INT1中斷開(kāi)放,以便使鍵盤(pán)脫離按鈕功能。
程序清單如下:
ORG 0000H
?? MOV DPTR,#7000H ; 指向8279數(shù)據(jù)口
?? INC DPTR ; 指向8279控制口
?? MOV A, #00H ; 設(shè)定8279工作方式
?? M0VX @DPTR,A
?? MOV A , #0GFH ; 清除8279內(nèi)部顯示RAM狀態(tài)
?? MOVX @DPTR, A
?? MOV A , #22H
?? MOVX @DPTR , A ; 設(shè)定8279分頻系數(shù)
?? LOOP:MOVX A , @DPTR
?? JB ACC.7 , LOOP ; 顯示RAM清除完畢嗎?
?? MOV A , 80H ; 指向第一位數(shù)碼管
?? MOVX @DPTR , A
?? MOV A , 9FH ; 輸出"1"一個(gè)字形
?? MOV DPTR ,#7000H
?? MOVX @DPTR , A
?? INC DPTR?
?? LOOP1:M0VX A , @DPTR
?? AND A , #07H
?? CJNE A , #00H,L00P2
?? AJMP LOOP1 ; 無(wú)鍵按下轉(zhuǎn)
?? LOOP2:MOV DPTR ,#7000H
MOVX A , @DPTR; 有鍵按下將鍵值送累加器A
?? 鍵值,由8279的行掃描信號(hào)(SL0-SL3)與列信號(hào)(RL0-RL4)組成,不同組合的矩陣將得到不同鍵,但
?? 在同一矩陣中不會(huì)有相同的鍵值,這對(duì)初學(xué)者編制鍵顯示程序大為方便.下表是通用鍵盤(pán)板鍵值:
? 名稱 0 1 2 3 4 5 6 7 8 9?
?? 鍵值 C1 C8 C9 D0 D8 E0 C2 CA D1 D9
?? 名稱 狀態(tài)切換 清除
?? 鍵值 DA C3
4.3.2.1判定有無(wú)閉合鍵的子程序:
判定有無(wú)閉合鍵的子程序?yàn)镵SI,供在鍵盤(pán)掃描程序中調(diào) 用。程序如下: KSI:
MOV
DPTR,#0FDF9H
;A口地址
?
MOV
A, #00H
?
?
MOVX
@DPTR,A
;A口送00H
?
INC
DPTR
?
?
INC
DPTR
;C口地址
?
MOVX
A,@DPTR
;讀C口
?
CPL
A
?
?
ANL
A,#0FH
;屏蔽高四位
?
RET
?
?
4.3.2.2鍵盤(pán)掃描程序
如前所述,在單片機(jī)應(yīng)用系統(tǒng)中常常是鍵盤(pán)和顯示器同時(shí)存在,因此可以把鍵盤(pán)掃描程序和顯示程序配合起來(lái)使用,即:把顯示程序作為鍵掃描程序的延時(shí)子程序。這樣做既省去了一個(gè)專門(mén)的延時(shí)子程序,又能保證顯示器常亮的可觀效果。
假定本系統(tǒng)中顯示程序?yàn)镈IR,執(zhí)行時(shí)間約為6ms。鍵盤(pán)掃描程序如下:
KEY1:ACALL KSI;檢查是否有鍵閉合
JNZ LK1;A非“0”則轉(zhuǎn)移
ACALL DIR;顯示一次(“延時(shí)6s)
AJMP KEY1
LK1: ACALL DIR; 有鍵閉合二次延時(shí)
ACALL DIR; 共12ms去抖動(dòng)
ACALL KSI; 再檢查是否有鍵閉合
JNZ LK2; 有鍵閉合轉(zhuǎn)移到LK2
ACALL DIR
AJMP KEY; 無(wú)鍵閉合,延時(shí)6ms后轉(zhuǎn)KEY1
LK2: MOV R,#0FEH; 掃描初值送R2
MOV R,#00H; 掃描列號(hào)送R4
LK4: MOV DPTR,#0101H; A口地址
MOV A,R
MOVX @DPTR,A; 掃描初值送A口
INC DPTR
INC DPTR; C口地址
MOVX A,@DPTR; 讀C口
JB ACC.0, LONE;ACC.0=1,第0行無(wú)鍵閉合,轉(zhuǎn)LONE
MOV A,#00H; 裝第0行值
AJMP LKP
LONE: JB ACC.1 LTWO;ACC.1=1,第1行無(wú)鍵閉合,轉(zhuǎn)LTWO
MOV A,#08H; 裝第1行值
AJM PLKP
LTWO: JB ACC.2,LTHR;ACC.2=1,第2行無(wú)鍵閉合,轉(zhuǎn)LTHR
MOV A#10H
AJMP LKP
LTHR: JB ACC.3,NEXT;ACC.3=1,第3行無(wú)鍵閉合,轉(zhuǎn)NEXT
MOV A,#18H; 裝第3行值
LKP: ADD A,R; 計(jì)算鍵碼
PUSH ACC; 保護(hù)鍵碼
LK3: ACALL DIR; 延時(shí)6ms
ACALL KSI; 檢查是否繼續(xù)閉合,若閉合再延時(shí)
JNZ LK3
POP ACC; 若鍵起,則鍵碼送A
RET
NEXT: INC R; 掃描列號(hào)加1
MOV A,R
JNB ACC.7,KND;若第7位=0,已掃完最高列則轉(zhuǎn)KND
RL A
MOV R,A
AJMP LK4; 進(jìn)行下一行掃描
KND: AJMP KEY1; 掃描完畢,開(kāi)始新一輪
4.3.3 A/D轉(zhuǎn)換程序
(1)A/D轉(zhuǎn)換子程序。
?? PUSH?? A
????? SETB?? EA?; 開(kāi)中斷
??????SETB?? IT1; 外中斷1定義為跳變觸發(fā)
??????MOV? DPTR,#0BFFFH; 送ADC0809口地址
??????MOV?? A,#00H; 選通IN0通道
??????MOVX?? @DPTR,A?; 啟動(dòng)A/D轉(zhuǎn)換
??????NOP???????????????????????
??????NOP?????????????????????
??????NOP???????????????????????
??????NOP??????????????????????
??????NOP?????????????????????
??????SETB??? EX1; 開(kāi)外中斷1
??????POP????? A
??????RET
(2)A/D轉(zhuǎn)換結(jié)束中斷程序。
ADINT1:?? PUSH?? PSW?? ; 保護(hù)現(xiàn)場(chǎng)
????????????????PUSH???A
????????????????PUSH?? DPH
??????????????? PUSH???DPL
??????????????? MOV????DPTR,#0BFFFH
??????????????? MOVX?? A,@DPTR?; 讀A/D轉(zhuǎn)換結(jié)果
????????????????MOV??? 60H,A?; 送入內(nèi)部RAM60H中
????????????? MOV??? A,#00H; 再次啟動(dòng)IN0通道
???????????? MOVX??? @DPTR,A
???????????? POP??? DPL?; 恢復(fù)現(xiàn)場(chǎng)
????????????? POP????A
?????????????? POP????PSW
??????????? RET1
4.3.4溫度檢測(cè)子程序
A/D轉(zhuǎn)換采用查詢方式。為提高數(shù)據(jù)采樣的可靠性,對(duì)采樣溫度進(jìn)行數(shù)字濾波。數(shù)字濾波的算法很多,這里采用4次采樣取平均值的方法。如前所述,本系統(tǒng)A/D轉(zhuǎn)換結(jié)果乘2正好是溫度值,因此,4次采樣的數(shù)字量之和除以2就是檢測(cè)的當(dāng)前溫度。檢測(cè)結(jié)果高位存入50H,低位存入51H。溫度檢測(cè)子程序流程圖如圖1所示。
圖1:溫度檢測(cè)子程序流程圖
溫度檢測(cè)子程序TIN:
TIN: MOV TEMP1,#00H ; 清檢測(cè)溫度緩沖區(qū)
MOV TEMP0,#00H
MOV R2,#04H; 取樣次數(shù)送R2
MOV DPTR,#7FF8H; 指向A/D轉(zhuǎn)換器0通道
LTIN1:MOVX @DPTR,A; 啟動(dòng)轉(zhuǎn)換
HERE:JNB IE1,HERE; 等待轉(zhuǎn)換結(jié)束
MOVX A,@DPTR ; 讀轉(zhuǎn)換結(jié)果
ADD A,TEMP0; 累加(雙字節(jié)加法)
MOV TEMP0,A
MOV A,#00H
ADDC A,TEMP1
MOV TEMP1,A
DJNZ R2,LTIN1 ; 4次采樣完否,未完繼續(xù)
CLR C; 累加結(jié)果除2(雙字節(jié)除法)
MOV A,TEMP1
RRC A
MOV TEMP1,A
MOV A,TEMP0
RRC A
MOV TEMP0,A
RET
4.3.5 溫度控制子程序
將當(dāng)前溫度與預(yù)置溫度比較,當(dāng)前溫度小于預(yù)置溫度時(shí),繼電器閉合,接通電阻絲加熱;當(dāng)前溫度大于預(yù)置溫度時(shí),繼電器斷開(kāi),停止加熱;當(dāng)二者相等時(shí)電爐保持原來(lái)狀態(tài);當(dāng)前溫度降低到比預(yù)置溫度低5℃時(shí),再重新啟動(dòng)加熱;當(dāng)前溫度超出報(bào)警上下限時(shí)將啟動(dòng)報(bào)警,并停止加熱。由于電爐開(kāi)始加熱時(shí),當(dāng)前溫度可能低于報(bào)警下限,為了防止誤報(bào),在未達(dá)到預(yù)置溫度時(shí),不允許報(bào)警,為此設(shè)置了報(bào)警允許標(biāo)志F0。模塊流程見(jiàn)圖2。
溫度控制流程圖
溫度控制子程序CONT:
CONT:MOV A,TEMP0; 當(dāng)前溫度-預(yù)置溫度(雙字節(jié)減)
CLR C
SUBB A,ST0
MOV B,A ; 低8位相減的差值暫存B
MOV A,TEMP1
SUBB A,ST1
JNC LOFF; 無(wú)借位,表示當(dāng)前溫度≥預(yù)置溫度,轉(zhuǎn)LOFF
JNB F0,LON ;當(dāng)前溫度<預(yù)置溫度,判是否達(dá)到過(guò)預(yù)置溫度
MOV A,B ; 若達(dá)到過(guò)預(yù)置溫度,判二者差值是否大于2
CLR C
SUBB A,#02H
JNC ACC.7,LOFF;差值不大于2,轉(zhuǎn)LOFF
LON:CLR P2.1; 開(kāi)電爐
SJMP EXIT; 返回
LOFF: SETB F0; 設(shè)置允許報(bào)警標(biāo)志
SETB P2.1; 關(guān)電爐
EXIT:RET
4.3.6 看門(mén)狗電路子程序:
ORG?0000H
????LJMP?START
????ORG?000BH
????LJMP?INTT0
????……
????ORG?0030H
????START:MOV?SP,#30H
????……
????MAIN:NOP
????NOP
????SETB?P1.0
????NOP
????NOP
????SETB?EA
????NOP
????SETB?ET0
????……
????LJMP?MAIN
????……
????INTT0:NOP
????NOP
????CLR?P1.7
????NOP
????NOP
????……
????RETI
這樣,在整個(gè)用戶程序中只唯一的一對(duì)指令(SETB?P1.7及CLR? P1.7)能使“看門(mén)狗”定時(shí)器復(fù)位。也就是說(shuō)不會(huì)有任何“非法”的指令能使“看門(mén)狗”定時(shí)器誤復(fù)位,致使系統(tǒng)已經(jīng)“死機(jī)”而“看門(mén)狗”失效。當(dāng)然,對(duì)對(duì)沒(méi)有中斷的用戶系統(tǒng),只需將清零指令(CLR? P1.7)也插在主程序中就可以了;對(duì)于有多種中斷的用戶系統(tǒng),如果沒(méi)有中斷嵌套,則清零指令(CLR? P1.7)可以插在任一個(gè)中斷子程序中,而在主程序中適當(dāng)加入一些有關(guān)中斷的冗余指令(如SETB? ET0等),以免因有關(guān)中斷的特殊功能寄存器數(shù)據(jù)受到干擾時(shí)導(dǎo)致中斷功能失效;對(duì)于有二級(jí)中斷嵌套的用戶系統(tǒng),清零指令(CLR? P1.7)可以插在中斷種數(shù)比較多的那一級(jí)中的任一個(gè)中斷子程序中,插有“喂狗”指令的那一級(jí)中斷系統(tǒng)將會(huì)受到“看門(mén)狗”的保護(hù),而另一級(jí)中斷系統(tǒng)如果失效,“看門(mén)狗”是“無(wú)動(dòng)于衷”的,這時(shí)只能盡量減少這種中斷子程序的執(zhí)行時(shí)間以減少受到干擾的可能性。如果二級(jí)中斷嵌套系統(tǒng)者受到“看門(mén)狗”的保護(hù),就必需設(shè)計(jì)一個(gè)非常復(fù)雜的“看門(mén)狗”電路,其“喂狗”指令要由三部分來(lái)保證各個(gè)部分都能正常工作,需要說(shuō)明的是,如果主程序運(yùn)行一次的時(shí)間(包括可能被中斷的時(shí)間)超過(guò)1.6秒,則要適當(dāng)再插入一條SETB?
第五章 設(shè)計(jì)感想
本文的溫度控制系統(tǒng),只是單片機(jī)廣泛應(yīng)用于各行各業(yè)中的一例,通過(guò)本次設(shè)計(jì),使我進(jìn)一步熟悉了一個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程,為畢業(yè)設(shè)計(jì)打下了堅(jiān)實(shí)的基礎(chǔ),這次設(shè)計(jì)屬于理論設(shè)計(jì),沒(méi)有得到實(shí)踐的檢驗(yàn),只有在邏輯上完成了這次設(shè)計(jì)。
MCS-51單片機(jī),體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,即使是非電子計(jì)算機(jī)專業(yè)人員,通過(guò)學(xué)習(xí)一些專業(yè)基礎(chǔ)知識(shí)以后也能依靠自己的技術(shù)力量,來(lái)開(kāi)發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。在抗干擾技術(shù)中,為了提高抗干擾技術(shù)中我們應(yīng)盡量做到以下幾點(diǎn):
1. 切斷干擾傳播路徑的常用措施如下:充分考慮電源對(duì)單片機(jī)的影響,如果單片機(jī)的I/O口用來(lái)控制電機(jī)等噪聲器件,在I/O口與噪聲源之間應(yīng)加隔離(增加π形濾波電路)。 控制電機(jī)等噪聲器件,在I/O口與噪聲源之間應(yīng)加隔離(增加π形濾波 電路),電路板合理分區(qū),如強(qiáng)、弱信號(hào),數(shù)字、模擬信號(hào)等。
2.抑制干擾源:抑制干擾源就是盡可能的減小干擾源的du/dt,di/dt。這是抗干擾設(shè)計(jì)中最優(yōu)先考慮和最重要的原則,常常會(huì)起到事半功倍的效果。 減小干擾源的du/dt主要是通過(guò)在干擾源兩端并聯(lián)電容來(lái)實(shí)現(xiàn)。減小干擾源的 di/dt則是在干擾源回路串聯(lián)電感或電阻以及增加續(xù)流二極管來(lái)實(shí)現(xiàn)
3. 提高敏感器件的抗干擾性能:提高敏感器件的抗干擾性能是指從敏感器件這邊考慮盡量減少對(duì)干擾噪聲 的拾取,以及從不正常狀態(tài)盡快恢復(fù)的方法,例如:布線時(shí)盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。或布線時(shí),電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合噪聲等。
由于時(shí)間緊迫,我們對(duì)針對(duì)每個(gè)細(xì)節(jié)的考慮不是太周到,但我們基本上是實(shí)現(xiàn)的溫度控制系統(tǒng)的智能化管理,對(duì)我們以后到企業(yè)提供了一定的基礎(chǔ),通過(guò)這次單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進(jìn)行改進(jìn),使之功能不斷完善,成為真己的東西。設(shè)計(jì)結(jié)果能夠符合題意,成功完成了此次實(shí)習(xí)要求,我們不只在乎這一結(jié)果,更加在乎的是這個(gè)過(guò)程。這個(gè)過(guò)程中,我們花費(fèi)了大量的時(shí)間和精力,更重要的是,我們?cè)趯W(xué)會(huì)創(chuàng)新的基礎(chǔ)上,同時(shí)還懂得合作精神的重要性,學(xué)會(huì)了與他人合作。
第六章 參考文獻(xiàn)
[1] 陳明熒,8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材??? 北京:清華大學(xué)出版社,2004
[2] 胡漢才,單片機(jī)原理及其接口技術(shù)??? 北京:清華大學(xué)出版社,1995
[3] 徐淑華,單片機(jī)微型機(jī)原理及應(yīng)用 哈爾濱工業(yè)大學(xué)出版社,1994
[4] 劉復(fù)華,8098單片機(jī)及其應(yīng)用系統(tǒng)設(shè)計(jì) 清華大學(xué)出版社,1991
[5] 趙文忠、程啟明,微機(jī)控制技術(shù) 北京:機(jī)械工業(yè)出版社,1993
[6] 張友德等,單片微型機(jī)原理、應(yīng)用與實(shí)踐.上海:復(fù)旦大學(xué)出版社,1992
[7] 李華,MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京航空航天大學(xué)出版社,1993
[8] 李秉操等,單片機(jī)接口技術(shù)及其在工業(yè)控制中的應(yīng)用 陜西電子編輯部,1991
[9] 陳鍵鐸,8098單片機(jī)原理及應(yīng)用技術(shù).北京:電子工業(yè)出版社,1995
[10] 孫和平等,單片微機(jī)原理及接口技術(shù),冶金工業(yè)出版社, 2003
第七章 附錄
7.1 器件清單
IC1 8051 5V 40引腳 微控制器CPU、RAM、ROM
IC2 0809 5V、5V基準(zhǔn) 28引腳 8路8位A/D轉(zhuǎn)換
IC3 74LS373 5V 20引腳 8路鎖存器
IC4 LM386 3~18V 8引腳 功放芯片
IC5 MC14495 5V 接顯示器
門(mén)電路芯片 LED數(shù)碼管
鎳鉻/鎳鋁熱電偶 溫度測(cè)量范圍:0~1000°
7.2 總控制電路圖
31
收藏