基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc

上傳人:小** 文檔編號:23332845 上傳時(shí)間:2021-06-07 格式:DOC 頁數(shù):26 大小:297KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc_第1頁
第1頁 / 共26頁
基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc_第2頁
第2頁 / 共26頁
基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于大林算法的溫度控制系統(tǒng)設(shè)計(jì).doc(26頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)2015/2016學(xué)年第二學(xué)期設(shè)計(jì)課題:基于大林算法的電路溫度控制系統(tǒng)的設(shè)計(jì)專 業(yè):_ _班 級: _ _學(xué) 號:_ _姓 名:_ _ _2016年5月目 錄第一章 課題簡介11.1課題的目的11.1.1 本機(jī)實(shí)現(xiàn)的功能11.1.2 擴(kuò)展功能:11.2課題的任務(wù)及要求1第二章 系統(tǒng)方案設(shè)計(jì)22.1 水溫控制系統(tǒng)的總體介紹22.2 系統(tǒng)框圖22.3 閉環(huán)系統(tǒng)的工作原理2第三章 系統(tǒng)硬件設(shè)計(jì)33.1 系統(tǒng)原理圖33.2 單片機(jī)最小系統(tǒng)設(shè)計(jì)3第四章 大林控制算法設(shè)計(jì)54.1 大林控制算法原理:54.2 控制器的設(shè)計(jì)及公式推導(dǎo)過程64.3 采樣周期的選擇:7第五章 水溫控制系統(tǒng)的

2、仿真75.1振鈴現(xiàn)象75.2 Matlab仿真95.2 大林算法控制系統(tǒng)編程設(shè)計(jì):105.3各模塊子程序設(shè)計(jì)115.3.1主程序設(shè)計(jì)115.3.2讀出溫度子程序125.5.3數(shù)碼管顯示模塊135.5.4溫度處理程序14第六章 小結(jié)與體會(huì)15第七章 參考文獻(xiàn)16第八章 附錄17第一章 課題簡介1.1課題的目的1.1.1 本機(jī)實(shí)現(xiàn)的功能(1)利用溫度傳感器采集到當(dāng)前的溫度,通過AT89S52單片機(jī)進(jìn)行控制,最后通過LED數(shù)碼管以串行口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。(2)可以通過按鍵任意設(shè)定一個(gè)恒定的溫度。(3)將水環(huán)境數(shù)據(jù)與所設(shè)置的數(shù)據(jù)進(jìn)行比較,當(dāng)水溫低于設(shè)定值時(shí),開啟加熱設(shè)備,進(jìn)行加熱;當(dāng)水溫高于設(shè)定溫

3、度時(shí),停止加熱,從而實(shí)現(xiàn)對水溫的自動(dòng)控制。(4)當(dāng)系統(tǒng)出現(xiàn)故障,超出控制溫度范圍時(shí),自動(dòng)蜂鳴報(bào)警。1.1.2 擴(kuò)展功能:(1)具有通信能力,可接收其他數(shù)據(jù)設(shè)備發(fā)來的命令,或?qū)⒔Y(jié)果傳送到其他數(shù)據(jù)設(shè)備。(2)采用適當(dāng)?shù)目刂品椒▽?shí)現(xiàn)當(dāng)設(shè)定溫度或環(huán)境溫度突變時(shí),減小系統(tǒng)的調(diào)節(jié)時(shí)間和超調(diào)量。(3) 溫度控制的靜態(tài)誤差。1.2課題的任務(wù)及要求一升水由800W的電熱設(shè)備加熱,要求水溫可以在一定范圍內(nèi)由人工設(shè)定,并能在環(huán)境溫度降低時(shí)實(shí)現(xiàn)自動(dòng)調(diào)整,以保持設(shè)定的溫度基本不變。(1)溫度測量范圍:10100,最小區(qū)分度不大于1。(2)控制精度在0.2以內(nèi),溫度控制的靜態(tài)誤差小于1。(3)用十進(jìn)制數(shù)碼管顯示實(shí)際水溫。

4、 第二章 系統(tǒng)方案設(shè)計(jì)2.1 水溫控制系統(tǒng)的總體介紹本次設(shè)計(jì)采用采樣值和鍵盤設(shè)定值進(jìn)行比較運(yùn)算的方法來簡單精確地控制溫度。先通過鍵盤輸入設(shè)定溫度,保存在AT89S52單片機(jī)的指定單元中,再利用溫度傳感器DS18B20進(jìn)行信號的采集,送入單片機(jī)中,保存在采樣值單元。然后把采樣值與設(shè)定值進(jìn)行比較運(yùn)算,得出控制量,從而調(diào)節(jié)繼電器觸發(fā)端的通斷,來實(shí)現(xiàn)將水溫控制在一定的范圍內(nèi)。當(dāng)水溫超出單片機(jī)預(yù)存溫度時(shí),蜂鳴器進(jìn)行報(bào)警。單片機(jī)控制系統(tǒng)是一個(gè)完整的智能化的集數(shù)據(jù)采集、顯示、處理、控制于一體的系統(tǒng)。由傳感器、LED顯示單片機(jī)及執(zhí)行機(jī)構(gòu)控制部分等組成。2.2 系統(tǒng)框圖DS18B20溫度傳感器LED顯示指示燈蜂

5、鳴器AT89S52單片機(jī)加熱繼電器按鍵2.3 閉環(huán)系統(tǒng)的工作原理本設(shè)計(jì)以AT89S52單片機(jī)系統(tǒng)進(jìn)行溫度采集與控制。溫度信號由模擬溫度傳感器DS18B20采集輸入AT89S52,利用溫度傳感器采集到當(dāng)前的溫度,通過AT89S52單片機(jī)進(jìn)行控制,最后通過LED數(shù)碼管以串行口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示??梢酝ㄟ^按鍵任意設(shè)定一個(gè)恒定的溫度。將水環(huán)境數(shù)據(jù)與所設(shè)置的數(shù)據(jù)進(jìn)行比較,當(dāng)水溫低于設(shè)定值時(shí),開啟加熱設(shè)備,進(jìn)行加熱;當(dāng)水溫高于設(shè)定溫度時(shí),停止加熱,從而實(shí)現(xiàn)對水溫的自動(dòng)控制。當(dāng)系統(tǒng)出現(xiàn)故障,超出控制溫度范圍時(shí),自動(dòng)蜂鳴報(bào)警。用單片機(jī)控制水溫可以在一定范圍內(nèi)設(shè)定,并能在環(huán)境溫度變化時(shí)保持溫度不變。第三章 系

6、統(tǒng)硬件設(shè)計(jì)3.1 系統(tǒng)原理圖在溫度測量控制系統(tǒng)中,實(shí)際溫度值由PT100恒流工作調(diào)理電路進(jìn)行測量。為了克服PT100線性度不好的缺點(diǎn),在信號調(diào)理電路中加入負(fù)反饋非線性校正網(wǎng)絡(luò);調(diào)理電路的輸出電壓經(jīng)ADC0808轉(zhuǎn)換后送入單片機(jī)AT89S51;對采樣數(shù)據(jù)進(jìn)行濾波及標(biāo)定處理后,由3位7段數(shù)碼管顯示。輸入的設(shè)定值由4位獨(dú)立按鍵電路進(jìn)行設(shè)定,可分別對設(shè)定值的十位和個(gè)位進(jìn)行加1、減1操作。設(shè)定值送入單片機(jī)后,由另外一組3位7段數(shù)碼管顯示。數(shù)碼管的段碼由74HC05驅(qū)動(dòng),位碼由三極管2N2222A驅(qū)動(dòng)。系統(tǒng)采用PID閉環(huán)控制方案。將預(yù)置初值與溫度傳感器反饋信號比較得到偏差(e)進(jìn)行PID運(yùn)算處理得到控制量

7、(u),通過此量來控制加熱器的加熱時(shí)間,從而控制加熱功率。由于水本身具有很大的熱慣性,所以必須對水溫的變化趨勢作出預(yù)測,并且根據(jù)需要及時(shí)反方向抑制,以防止出現(xiàn)較大的超調(diào)量的波動(dòng)。在PID控制中,積分環(huán)節(jié)(I)具有很強(qiáng)的滯后效應(yīng),而微分環(huán)節(jié)(D)具有預(yù)見性,所以該方案最終采用PD算法,能夠很好的控制超調(diào),并且穩(wěn)態(tài)誤差也很小。圖3-1 系統(tǒng)原理圖3.2 單片機(jī)最小系統(tǒng)設(shè)計(jì)基本的AVR硬件線路,包括以下幾部分:(1)復(fù)位線路的設(shè)計(jì)AT89S52已經(jīng)內(nèi)置了上電復(fù)位設(shè)計(jì)。并且在熔絲位里,可以控制復(fù)位時(shí)的額外時(shí)間,故AVR外部的復(fù)位線路在上電時(shí),可以設(shè)計(jì)得很簡單:直接拉一只10K的電阻到VCC即可(R6)

8、。為了可靠,再加上一只0.1uF的電容(C0)以消除干擾、雜波。D3(1N4148)的作用有兩個(gè):作用一是將復(fù)位輸入的最高電壓鉗在Vcc+0.5V 左右,另一作用是系統(tǒng)斷電時(shí),將R1(10K)電阻短路,讓C0快速放電,讓下一次來電時(shí),能產(chǎn)生有效的復(fù)位。當(dāng)AVR在工作時(shí),按下S0開關(guān)時(shí),復(fù)位腳變成低電平,觸發(fā)AVR芯片復(fù)位。重要說明:實(shí)際應(yīng)用時(shí),如果你不需要復(fù)位按鈕,復(fù)位腳可以不接任何的零件,AVR芯片也能穩(wěn)定工作。即這部分不需要任何的外圍零件。圖3-2 復(fù)位電路設(shè)計(jì)(2)晶振電路的設(shè)計(jì)Mega16已經(jīng)內(nèi)置RC振蕩線路,可以產(chǎn)生1M、2M、4M、8M的振蕩頻率。不過,內(nèi)置的畢竟是RC振蕩,在一些

9、要求較高的場合,比如要與RS232通信需要比較精確的波特率時(shí),建議使用外部的晶振線路。早期的90S系列,晶振兩端均需要接22pF左右的電容。Mega系列實(shí)際使用時(shí),這兩只小電容不接也能正常工作。不過為了線路的規(guī)范化,我們?nèi)越ㄗh接上。重要說明:實(shí)際應(yīng)用時(shí),如果你不需要太高精度的頻率,可以使用內(nèi)部RC振蕩。即這部分不需要任何的外圍零件。圖3-3 晶振電路設(shè)計(jì)(3)電源設(shè)計(jì)AVR單片機(jī)最常用的是5V與3.3V兩種電壓。本線路以轉(zhuǎn)換成5V直流電壓,電路需要變壓器把220交流電壓轉(zhuǎn)換成28V交流電,再通過整流器,把交流電轉(zhuǎn)化成直流電,通過7809和7805三端正電源穩(wěn)壓電路轉(zhuǎn)化成直流5V。電源如圖3-4

10、。圖3-4 電源電路設(shè)計(jì)圖第四章 大林控制算法設(shè)計(jì)4.1 大林控制算法原理:在許多工業(yè)過程中,被控對象一般都有純滯后特性,而且經(jīng)常遇到純滯后較大的對象。美國IBM公司的大林,在1968年提出了一種針對工業(yè)生產(chǎn)過程中,含有純滯后對象的控制算法,具有較好的效果。假設(shè)帶有純滯后的一階、二階慣性環(huán)節(jié)的對象為: 式中,為純滯后時(shí)間,、為時(shí)間常數(shù),K為放大系數(shù)。為簡單起見,設(shè)=NT,N為正整數(shù)。大林算法的設(shè)計(jì)目標(biāo)是設(shè)計(jì)合適的數(shù)字控制器,使整個(gè)閉環(huán)系統(tǒng)的傳遞函數(shù)為具有時(shí)間純滯后的一階慣性環(huán)節(jié),而且要求閉環(huán)系統(tǒng)的純滯后時(shí)間等于對象的純滯后時(shí)間。4.2 控制器的設(shè)計(jì)及公式推導(dǎo)過程-電爐溫度傳感器D/AA/D被控

11、對象的傳遞函數(shù): 采樣周期T=1s,期望閉環(huán)傳遞函數(shù)的慣性時(shí)間常數(shù): 設(shè)期望閉環(huán)傳遞函數(shù)為: 系統(tǒng)的廣義對象傳遞函數(shù): 系統(tǒng)廣義對象的脈沖傳遞函數(shù)為: 系統(tǒng)的閉環(huán)脈沖傳遞函數(shù)為:數(shù)字控制器的脈沖傳遞函數(shù)為:當(dāng)輸入為單位階躍時(shí),輸出為:控制量的輸出為:4.3 采樣周期的選擇:在本實(shí)驗(yàn)中,定時(shí)中斷間隔選取100ms,采樣周期T要求既是采樣中斷間隔的整數(shù)倍,又要滿足,而由被控對象的表達(dá)式可知,所以取N=1,=T,=1s,取T=1s。因?yàn)?,因?yàn)椴蓸又芷赥=1s,定時(shí)中斷為1s,就是說1個(gè)定時(shí)中斷后進(jìn)行采樣。第五章 水溫控制系統(tǒng)的仿真5.1振鈴現(xiàn)象直接用上述控制算法構(gòu)成閉環(huán)控制系統(tǒng)時(shí),人們發(fā)現(xiàn)數(shù)字控制器

12、輸出U(z)會(huì)以1/2采樣頻率大幅度上下擺動(dòng)。這種現(xiàn)象稱為振鈴現(xiàn)象。振鈴現(xiàn)象與被控對象的特性、閉環(huán)時(shí)間常數(shù)、采樣周期、純滯后時(shí)間的大小等都有關(guān)系。振鈴現(xiàn)象中的振蕩是衰減的,并且于由被控對象中慣性環(huán)節(jié)的低通特性,使得這種振蕩對系統(tǒng)的輸出幾乎無任何影響,但是振鈴現(xiàn)象卻會(huì)增加執(zhí)行機(jī)構(gòu)的磨損。在交互作用的多參數(shù)控制系統(tǒng)中,振鈴現(xiàn)象還有可能影響到系統(tǒng)的穩(wěn)定性,所以,在系統(tǒng)設(shè)計(jì)中,應(yīng)設(shè)法消除振鈴現(xiàn)象??梢胝疋彿萊A來衡量振蕩的強(qiáng)烈程度。振鈴幅度RA的定義為:在單位階躍信號的作用下,數(shù)字控制器D(z)的第0次輸出與第1次輸出之差值。設(shè)數(shù)字控制器D(z)可以表示為: (5-1)其中 (5-2)那么,數(shù)字控

13、制器D(z)輸出幅度的變化完全取決于Q(z),則在單位階躍信號的作用下的輸出為: (5-3)根據(jù)振鈴的定義,可得: (5-4)上述表明,產(chǎn)生振鈴現(xiàn)象的原因是數(shù)字控制器D(z)在z平面上位于z=-1附近有極點(diǎn)。當(dāng)z=-1時(shí),振鈴現(xiàn)象最嚴(yán)重。在單位圓內(nèi)離z=-1越遠(yuǎn),振鈴現(xiàn)象越弱。在單位圓內(nèi)右半平面的極點(diǎn)會(huì)減弱振鈴現(xiàn)象,而在單位圓內(nèi)右半平面的零點(diǎn)會(huì)加劇振鈴現(xiàn)象。由于振鈴現(xiàn)象容易損壞系統(tǒng)的執(zhí)行機(jī)構(gòu),因此,應(yīng)設(shè)法消除振鈴現(xiàn)象。大林提出了一個(gè)消除振鈴的簡單可行的方法,就是先找造成振鈴現(xiàn)象的因子,然后令該因子中的z=1.這樣就相當(dāng)于取消了該因子產(chǎn)生振鈴的可能性。根據(jù)終值定理,這樣處理后,不會(huì)影響輸出的穩(wěn)態(tài)

14、值。本設(shè)計(jì)的被控對象是含有純滯后的一階慣性環(huán)節(jié),大林算法求得的數(shù)字控制器為式: (5-5)有可表示為式3-14所示: (5-6)可能引起振鈴現(xiàn)象的因子是式3-15所示: (5-7)其振鈴的幅度為: (5-8)根據(jù)r值的不同,有一下幾種情況:(1)當(dāng)r=0時(shí),不存在振鈴極點(diǎn)因子,此時(shí)不產(chǎn)生振鈴現(xiàn)象(2)當(dāng)r=1時(shí),存在一個(gè)極點(diǎn)z=-(); 當(dāng)= 時(shí),z-1,存在嚴(yán)重的振鈴。當(dāng)r=2時(shí),存在極點(diǎn)Z= 當(dāng)T時(shí),z,Z1時(shí),存在振鈴現(xiàn)象。對于r=2時(shí)的振鈴極點(diǎn),令Z=1代入式中可得:= 此時(shí)就求得的消除振鈴的數(shù)字控制器D(z)表達(dá)式為 5.2 Matlab仿真Matlab仿真圖(無振鈴現(xiàn)象)5.2 大

15、林算法控制系統(tǒng)編程設(shè)計(jì):根據(jù)系統(tǒng)的總體功能和鍵盤設(shè)置選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。本部分詳細(xì)介紹了基于AT89S52單片機(jī)的多路溫度采集控制系統(tǒng)的軟件設(shè)計(jì)。根據(jù)系統(tǒng)功能,可以將系統(tǒng)設(shè)計(jì)分為若干個(gè)子程序進(jìn)行設(shè)計(jì),如溫度采集子程序,數(shù)據(jù)處理子程序、顯示子程序、執(zhí)行子程序。采用Keil uVision3集成編譯環(huán)境和C語言來進(jìn)行系統(tǒng)軟件的設(shè)計(jì)。本章從設(shè)計(jì)思路、軟件系統(tǒng)框圖出發(fā),先介紹整體的思路后,再逐一分析各模塊程序算法的實(shí)現(xiàn),最終編寫出滿足任務(wù)需求的程序。采集到當(dāng)前的溫度,通過LED數(shù)碼管實(shí)現(xiàn)溫度顯示。通過按鍵任意設(shè)定一個(gè)恒定的溫

16、度將水環(huán)境數(shù)據(jù)與所設(shè)置的數(shù)據(jù)進(jìn)行比較。當(dāng)水溫低于設(shè)定值時(shí),開啟加熱設(shè)備,進(jìn)行加熱;當(dāng)水溫高于設(shè)定溫度時(shí),停止加熱。當(dāng)系統(tǒng)出現(xiàn)故障,超出控制溫度范圍時(shí),自動(dòng)蜂鳴報(bào)警并對溫度進(jìn)行實(shí)時(shí)顯示。采用C語言編寫代碼,鑒于篇幅限制及DS18B20的應(yīng)用已經(jīng)規(guī)范和成熟,本文僅就主程序流程圖和顯示子程序流程圖及其代碼進(jìn)行說明。通過定時(shí)器T0 P3.4口的定時(shí)來實(shí)現(xiàn),在此不再贅述。有關(guān)DS18B20的讀寫程序,編程時(shí)序分析等請見附錄三。功能主程序流程圖主程序通過調(diào)用溫度采集子程序完成溫度數(shù)據(jù)采集,然后調(diào)用溫度轉(zhuǎn)換子程序轉(zhuǎn)換讀取溫度數(shù)據(jù),調(diào)用顯示子程序進(jìn)行溫度顯示和判斷溫度數(shù)據(jù)。主程序(見附錄二)調(diào)用四個(gè)子程序,分

17、別是溫度采集程序、數(shù)碼管顯示程序、溫度處理程序和數(shù)據(jù)存儲程序。溫度采集程序:對溫度芯片送過來的數(shù)據(jù)進(jìn)行處理,進(jìn)行判斷和顯示。數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。溫度處理程序:對采集到的溫度和設(shè)置的上、下限進(jìn)行比較,做出判斷,向繼電器輸出關(guān)斷或閉合指令。數(shù)據(jù)存儲程序:對鍵盤的設(shè)置的數(shù)據(jù)進(jìn)行存儲。設(shè)定溫度值顯示當(dāng)前溫度判斷當(dāng)前溫度值超過設(shè)定1低于設(shè)定1報(bào)警報(bào)警是否否是圖1 系統(tǒng)總流程圖5.3各模塊子程序設(shè)計(jì)5.3.1主程序設(shè)計(jì)主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖

18、2所示。通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個(gè)單元中,然后通過調(diào)用顯示子程序顯示出來。開始調(diào)用讀溫度子程序數(shù)字變換程序顯示子程序圖2 主程序流程圖5.3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。DS18B20的各個(gè)命令對時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來的是高位在后低位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號位。DS18B20的數(shù)據(jù)讀寫是通過時(shí)序處理位來確認(rèn)信息交換的。當(dāng)總線控制器發(fā)起讀時(shí)序時(shí),DS18B20僅被用來傳

19、輸數(shù)據(jù)給控制器。因此,總線控制器在發(fā)出讀暫存器指令BEh或讀電源模式指令B4H后必須立刻開始讀時(shí)序,DS18B20可以提供請求信息。所有讀時(shí)序必須最少60us,包括兩個(gè)讀周期間至少1us的恢復(fù)時(shí)間。當(dāng)總線控制器把數(shù)據(jù)線從高電平拉到低電平時(shí),讀時(shí)序開始,數(shù)據(jù)線必須至少保持1us,然后總線被釋放在總線控制器發(fā)出讀時(shí)序后,DS18B20通過拉高或拉低總線上來傳輸1或0。當(dāng)傳輸邏輯0結(jié)束后,總線將被釋放,通過上拉電阻回到上升沿狀態(tài)。從DS18B20輸出的數(shù)據(jù)在讀時(shí)序的下降沿出現(xiàn)后15us內(nèi)有效。因此,總線控制器在讀時(shí)序開始后必須停止把I/O腳驅(qū)動(dòng)為低電平15us,以讀取I/O腳狀態(tài)。DS18B20復(fù)位

20、、應(yīng)答子程序跳過ROM匹配命令寫入子程序溫度轉(zhuǎn)移命令寫入子程序延時(shí)顯示子程序DS18B20復(fù)位、應(yīng)答子程序跳過ROM匹配命令寫入子程序讀溫度命令子程序終止圖3 讀出溫度子程序5.5.3數(shù)碼管顯示模塊本系統(tǒng)采用八位共陽極數(shù)碼管,用模擬串口的動(dòng)態(tài)顯示數(shù)據(jù)。其流程圖如圖4所示:子程序入口初始化查表取段碼位碼送譯碼器選通低位數(shù)碼管數(shù)字是否顯示亮關(guān)顯示返回段碼送驅(qū)動(dòng)顯示顯示緩沖區(qū)左移YN圖4 數(shù)碼管顯示流程圖5.5.4溫度處理程序基于單片機(jī)水溫控制系統(tǒng)通過DS18B20溫度傳感器采集到的溫度和設(shè)置的溫度上、下限進(jìn)行比較得出結(jié)果。如果低于下限溫度或是高于上限溫度,則報(bào)警器進(jìn)行進(jìn)行報(bào)警。第六章 小結(jié)與體會(huì)這

21、次的課程設(shè)計(jì)分配到兩個(gè)人一組完成,雖然只有短短的兩周時(shí)間,但是通過這些天的學(xué)習(xí)使我收獲巨大,讓我更加深刻的復(fù)習(xí)了課本知識,使得自己在專業(yè)技能和動(dòng)手能力方面有了很大的提高,為以后自己進(jìn)入社會(huì)打下了一個(gè)良好的基礎(chǔ)。在這次的課程設(shè)計(jì)過程中,我與周航一組,我很感謝老師對我的指導(dǎo)及同學(xué)的幫助,我主要負(fù)責(zé)軟件的仿真,周航負(fù)責(zé)硬件系統(tǒng)的設(shè)計(jì)。在大林控制算法的設(shè)計(jì)中,遇到了許多的難題,對于原理概念十分模糊,一些公式也忘了如何去使用,拿出了以前的課本對遺忘的知識進(jìn)行了回顧,在同學(xué)的幫助下,與周航的討論中一步一步的完成了控制器的設(shè)計(jì)和大林算法公式的推導(dǎo)。使得我能夠順利的完成此次的課程設(shè)計(jì),通過完成這次的課程設(shè)計(jì),

22、使我深刻的體會(huì)到了團(tuán)隊(duì)的重要性,這次的課程設(shè)計(jì)很,但兩人一組的團(tuán)隊(duì)的合作使課程設(shè)計(jì)簡單了許多,每個(gè)人都有明確的分工,這樣,再加上自己的努力終能取得成功。 感謝此次的課程設(shè)計(jì)讓我收獲良多!第七章 參考文獻(xiàn)1于海生主編,微型計(jì)算機(jī)控制技術(shù)M,北京:清華大學(xué)出版社,20092李小堅(jiān),趙山林,馮曉軍,龍懷冰.Protel DXP電路設(shè)計(jì)與制版實(shí)用教程(第2版).北京:人民郵電出版社.20093全國大學(xué)生電子設(shè)計(jì)競賽組委會(huì).全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)作品選編(第一屆-第五屆).北京: 北京理工大學(xué)出版社.20044張琳娜,劉武發(fā).傳感檢測技術(shù)及應(yīng)用.北京:中國計(jì)量出版社.19995沈德金,陳粵初. MC

23、S-51系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗?北京:北京航空航天大學(xué)出版社.19906周立功等.增強(qiáng)型80C51單片機(jī)速成與實(shí)戰(zhàn).北京:北京航空航天大學(xué)出版社.2003.77馬忠梅等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社社.1998.108胡漢才.單片機(jī)原理及接口技術(shù).北京:清華大學(xué)出版社社.19969李志全等.智能儀表設(shè)計(jì)原理及應(yīng)用.北京:國防工業(yè)出版社.1998.610何立民MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社.1990.1第八章 附錄附錄一:系統(tǒng)程序#include /52系列頭文件#include #define uchar unsigned

24、 char#define uint unsigned intsbit ds=P34;sbit dula=P26;sbit beep=P14; /定義蜂鳴器sbit led=P11;sbit jdq=P10;uint temp,t,w; /定義整型的溫度數(shù)據(jù)uchar flag;float f_temp; /定義浮點(diǎn)型的溫度數(shù)據(jù)uint low; /定義溫度下限值 是溫度乘以10后的結(jié)果uint high; /定義溫度的上限值sbit led1=P10; /控制發(fā)光二極管sbit led2=P11; /控制發(fā)光二極管sbit s1=P35;sbit s2=P36;sbit s3=P37;ucha

25、r flag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;uchar code table= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xc6 ;/共陽數(shù)碼管段碼表uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/帶小數(shù)點(diǎn)的編碼 void delay(uchar z) /延時(shí)函數(shù) uchar a,b; for(a=z;a0;a-) for(b=100;b0;b-);void init() EA=1; ET1=

26、1; TR1=1; TMOD=0x10; TH1=(65536-4000)/256; TL1=(65536-4000)%256; flag=0; high=100; jdq=1;void didi() beep=0; led=0; delay(500); beep=1; led=1; delay(500);void dsreset(void) /DS18b20復(fù)位, 初始化函數(shù) uint i; ds=0; i=103; /延時(shí)最短480us while(i0) i-; ds=1; /等待16-60us,收到低電平一個(gè)約60-240us則復(fù)位成功 i=4; while(i0) i-;bit te

27、mpreadbit(void) /讀1位數(shù)據(jù)函數(shù) uint i; bit dat; ds=0;i+; ds=1;i+;i+;/i+起到延時(shí)作用 dat=ds; i=8; while(i0)i-; return(dat);uchar tempread(void)/讀1字節(jié)的數(shù)據(jù)函數(shù) uint i,j,dat; dat=0; for(i=1;i=8;i+) j=tempreadbit(); dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat里 return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個(gè)字節(jié)的數(shù)據(jù)函數(shù) uint

28、i; uchar j; bit testb; for(j=1;j1; if(testb) /寫1 ds=0;i+;i+;ds=1;i=8;while(i0)i-; else /寫0 ds=0;i=8;while(i0) i-;ds=1;i+;i+; void tempchange(void) /DS18B20開始獲取溫度并轉(zhuǎn)換 dsreset(); delay(1); tempwritebyte(0xcc);/寫跳過讀ROM指令 tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令uint get_temp()/讀取寄存器中存儲的溫度數(shù)據(jù) uchar a,b; dsreset(); de

29、lay(1); tempwritebyte(0xcc); /寫跳過讀ROM指令 tempwritebyte(0xbe); /寫溫度轉(zhuǎn)換指令 a=tempread(); /讀低8位 b=tempread(); /讀高8位 temp=256*b+a; f_temp=temp*0.0625; /溫度在寄存器中為12位,分辨率為0.0625 temp=f_temp*10+0.5; /乘以10表示小數(shù)點(diǎn)后面只取一位 return temp; /temp是整型void keyscan() if(s1=0) P2=0xff; delay(5); if(s1=0) while(!s1); s1num+; if

30、(s1num=1) flag=1; if(s1num=2) s1num=0; flag=0; if(s1num=1) flag=1;if(s2=0) delay(5);if(s2=0) while(!s2);high+=10;if(high=1000) high=100;if(s3=0)delay(5);if(s3=0) while(!s3); high-=10; if(high=0) high=100;void main()/主函數(shù) init(); while(1) tempchange(); /溫度轉(zhuǎn)換函數(shù) if(temp=high-10)&(temphigh)&(temphigh+10)

31、 jdq=1;didi(); void time1() interrupt 3 TH1=(65536-4000)/256; TL1=(65536-4000)%256; t+; keyscan(); if(flag=0) if(t=4)t=0; switch(t) case 1:P0=tableget_temp()/100; P2=0xfd;break; case 2:P0=table1get_temp()%100/10;P2=0xfb;break; case 3:P0=tableget_temp()%10; P2=0xf7;break; if(flag=1) if(t=4)t=0; switch(t) case 0:P0=0xff; P2=0xfe;break; case 1:P0=0xff; P2=0xfd;break; case 2:P0=tablehigh/100; P2=0xfb;break; case 3:P0=tablehigh%100/10; P2=0xf7;break; 班級: 姓名: 學(xué)號:1.簡要敘述系統(tǒng)的工作原理。2.簡述復(fù)位電路設(shè)計(jì)原理。3.系統(tǒng)如何產(chǎn)生報(bào)警?4.簡述大林算法的原理。5.采樣周期如何確立?23

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!