2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  溫 度 測(cè) 控 系 統(tǒng)</p><p>  學(xué)生姓名: XXX </p><p>  所 在 系: 通 信 工 程 </p><p>  專業(yè)名稱: XXX </p><p>  班 級(jí): XXX

2、 </p><p>  學(xué) 號(hào): XXX </p><p>  指導(dǎo)教師: XXX </p><p><b>  xxxx年x月</b></p><p>  數(shù) 字 溫 度 測(cè) 控 系 統(tǒng)</p><

3、p>  學(xué)生:xx 指導(dǎo)教師:xxx</p><p>  內(nèi)容摘要:信息時(shí)代的今天,電子技術(shù)得到了突飛猛進(jìn)的發(fā)展。伴隨著電子技術(shù)的飛速發(fā)展,現(xiàn)代電子產(chǎn)品更是滲透到了社會(huì)的各個(gè)領(lǐng)域,并有力地推動(dòng)著社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高。</p><p>  溫度是一個(gè)和人們生活環(huán)境有著密切關(guān)系的物理量,也是一個(gè)人們?cè)诳茖W(xué)實(shí)驗(yàn)和生產(chǎn)活動(dòng)中經(jīng)常需要

4、加以監(jiān)測(cè)或控制的重要物理量。溫度控制技術(shù)是一種比較重要的工業(yè)技術(shù),不僅在化工、醫(yī)療、航空、航天等高科技領(lǐng)域,還應(yīng)用在人們的日常生活中。</p><p>  本文從溫控模型和特點(diǎn)出發(fā),介紹了一種適合模糊溫度控制的方法,并給出了單片機(jī)模糊溫度控制的實(shí)例,并對(duì)溫度進(jìn)行良好的精度控制. 本系統(tǒng)具有設(shè)置水溫、實(shí)時(shí)顯示溫度,控制溫度和報(bào)警保溫等功能,它具有結(jié)構(gòu)簡單、實(shí)現(xiàn)容易,成本低,具有實(shí)用價(jià)值等特點(diǎn)。</p>

5、<p>  關(guān)鍵詞:單片機(jī)    數(shù)字溫度傳感器 模糊溫度控制</p><p>  Temperature observe and control system</p><p>  Abstract:The information age today, electronic technology has been rapid development. A

6、long with the rapid development of electronic technology, modern electronic products is to infiltrate into the society in various fields, and have effectively promoted the development of social productive forces and soci

7、al information, also increased.</p><p>  Temperature is an and people's living environment have near concern of physics quantity is also the important physics quantity that a persons usually needs to tak

8、e in to monitor or controls in science the experiment with the production.The temperature control technique is a kind of more important industrial technique, not only at chemical engineering,medical treatment ,aviation ,

9、aerospace etc. high-tech realm, also applied in people's daily life.From temperature control model and character, the </p><p>  Key words: microcomputer digital temperature transducer </p><

10、p>  fuzzy temperature control</p><p><b>  目錄</b></p><p><b>  一、引言1</b></p><p>  二、系統(tǒng)硬件設(shè)計(jì)1</p><p>  (一)系統(tǒng)總體設(shè)計(jì)1</p><p> ?。ǘ﹩卧?/p>

11、路的功能原理分析3</p><p><b> ?。ㄈ╇娐穲D3</b></p><p> ?。ㄋ模┌l(fā)揮部分設(shè)計(jì)3</p><p>  三、系統(tǒng)軟件的設(shè)計(jì)3</p><p> ?。ㄒ唬┏绦虻闹髁鞒虉D4</p><p> ?。ǘ└鱾€(gè)功能模塊流程5</p><p>

12、 ?。ㄈ囟瓤刂颇K8</p><p><b>  四、系統(tǒng)組成10</b></p><p> ?。ㄒ唬㏄CB板10</p><p> ?。ǘ?DPCB板11</p><p> ?。ㄈ┙Y(jié)構(gòu)工藝及說明12</p><p><b>  五、系統(tǒng)調(diào)試12</b>&

13、lt;/p><p>  (一)電路測(cè)試12</p><p> ?。ǘ﹥x器的使用12</p><p>  (三)測(cè)試的結(jié)果12</p><p> ?。ㄋ模┌l(fā)揮部分測(cè)試12</p><p>  六、結(jié)論與討論13</p><p><b>  致謝14</b></

14、p><p><b>  附錄15</b></p><p><b>  參考文獻(xiàn)23</b></p><p><b>  溫度測(cè)控系統(tǒng)</b></p><p><b>  一、引言</b></p><p>  在現(xiàn)代化的工業(yè)生產(chǎn)中,電

15、流、電壓、溫度、壓力、流量、流速和開關(guān)量都是常用的主要被控參數(shù)。例如:在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用MCS-51單片機(jī)來對(duì)溫度進(jìn)行控制,不僅具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的問題。本文以它

16、為例進(jìn)行介紹,希望能收到舉一反三和觸類旁通的效果。</p><p><b>  二、系統(tǒng)硬件設(shè)計(jì)</b></p><p><b> ?。ㄒ唬┫到y(tǒng)總體設(shè)計(jì)</b></p><p><b>  1.設(shè)計(jì)思想 </b></p><p>  根據(jù)溫度控制器的功能要求,并結(jié)合對(duì)PIC16

17、F87X系列單片機(jī)的資源分析,采用此系列中的主流型號(hào)PIC16F877作為電路系統(tǒng)的控制核心,數(shù)字溫度傳感器測(cè)溫,LED顯示溫度,按鍵設(shè)定目標(biāo)溫度,模糊溫度控制,保溫報(bào)警等幾個(gè)主要模塊組成.首先選擇相應(yīng)具體的工作實(shí)現(xiàn)元器件及方案。如下:</p><p><b>  (1)算法的選擇</b></p><p>  目前溫度控制系統(tǒng)中的控制算法多為PID算法,但PID算法由

18、于微分作用導(dǎo)致高頻干擾大,易引起超調(diào),參數(shù)調(diào)整也麻煩,同時(shí)考慮到水溫控制系統(tǒng)本身有一個(gè)大滯后的特點(diǎn),故本系統(tǒng)選用了目前國際上較流行的從能量控制的觀點(diǎn)出發(fā),引入模糊控制思想而提出的變參數(shù)控制算法控制. 控制系統(tǒng)在其特性或參數(shù)發(fā)生攝動(dòng)時(shí)仍可使品質(zhì)指標(biāo)保持不變的性能。魯棒性是英文robustness一詞的音譯,也可意譯為穩(wěn)健性。魯棒性原是統(tǒng)計(jì)學(xué)中的一個(gè)專門術(shù)語,70年代初開始在控制理論的研究中流行起來,用以表征控制系統(tǒng)對(duì)特性或參數(shù)攝動(dòng)的不敏感

19、性。在實(shí)際問題中,系統(tǒng)特性或參數(shù)的攝動(dòng)常常是不可避免的。產(chǎn)生攝動(dòng)的原因主要有兩個(gè)方面,一個(gè)是由于量測(cè)的不精確使特性或參數(shù)的實(shí)際值會(huì)偏離它的設(shè)計(jì)值(標(biāo)稱值),另一個(gè)是系統(tǒng)運(yùn)行過程中受環(huán)境因素的影響而引起特性或參數(shù)的緩慢漂移。因此,魯棒性已成為控制理論中的一個(gè)重要的研究課題,也是一切類型的控制系統(tǒng)的設(shè)計(jì)中所必需考慮的一個(gè)基本問題。對(duì)魯棒性的研究主要限于線性定常控制系統(tǒng),所涉及的領(lǐng)域包括穩(wěn)定性、無靜差性、適應(yīng)控制等。魯棒性問題與控制系統(tǒng)的相對(duì)

20、穩(wěn)定性和不變性原理有著密切的聯(lián)系,內(nèi)模原理的建立則對(duì)魯棒性問題</p><p>  其基本思想是通過調(diào)整k的大小,可改變對(duì)差量和差量變化率的不同加權(quán)程度。在實(shí)際系統(tǒng)中,系統(tǒng)在不同的狀態(tài)下,對(duì)控制規(guī)則中的差量e和差量變化率c有不同的要求。如差量較大時(shí),控制系統(tǒng)的主要任務(wù)是減小溫差,此時(shí)對(duì)差量加權(quán)應(yīng)該大些;當(dāng)差量較小時(shí),控制系統(tǒng)的主要任務(wù)是使系統(tǒng)盡快穩(wěn)定,減小超調(diào),此時(shí)要求在控制規(guī)則中差量變化率加權(quán)大些。</p

21、><p>  基于這個(gè)思想,我組提出了模糊溫度控制方法,在規(guī)定的時(shí)間內(nèi),根據(jù)不同的溫差和目標(biāo)溫度來改變加熱時(shí)間與休息時(shí)間的在控比,從而達(dá)到控制的目的.</p><p>  算法通過軟件實(shí)現(xiàn),此算法使系統(tǒng)能自行控制加熱程度,使系統(tǒng)具有無超調(diào)和恒溫精度高,具有穩(wěn)定性好,控制參數(shù)對(duì)系統(tǒng)的依賴性弱等優(yōu)點(diǎn)。</p><p>  (2)傳感器的選擇 </p><

22、;p>  由于本設(shè)計(jì)是精確控制系統(tǒng),并且有控制范圍上的要求,所以在選擇傳感器上要著重考慮其精度和測(cè)試范圍。AD公司的AD590和AD7416都包含一個(gè)可以精確測(cè)量環(huán)境溫度的片內(nèi)溫度傳感器,但AD590是模擬傳感器,需對(duì)溫度模擬信號(hào)進(jìn)行數(shù)字化處理,在調(diào)理和放大信號(hào)時(shí),又會(huì)帶來新的誤差,影響精度,而AD7416包含一個(gè)10位AD轉(zhuǎn)換器,是一個(gè)以0.25的分辨力將溫度數(shù)字化的數(shù)字式溫度傳感器,,并且其測(cè)溫理論范圍為-55度到125度,因

23、其精確度高,范圍可選這兩大特點(diǎn),故本設(shè)計(jì)的傳感器選為AD7416。</p><p>  (3)單片機(jī)的選擇</p><p>  現(xiàn)在,市場(chǎng)上的單片機(jī)種類繁多,例如51、PIC等。而51系列單片機(jī)不具有IIC端口,要對(duì)其進(jìn)行模擬設(shè)置;并且相對(duì)PIC來說,其指令也較復(fù)雜。本設(shè)計(jì)選用了指令精簡、集成度高,并具有I?C 接口的PIC單片機(jī),而PIC16F877這一型號(hào)的PIC單片機(jī)已能夠滿足系統(tǒng)

24、的需要。</p><p><b>  2.設(shè)計(jì)步驟 </b></p><p>  系統(tǒng)的工作原理如圖1所示: 數(shù)字溫度傳感器將溫度測(cè)量出來,送給單片機(jī)通過軟件控制并用LED數(shù)碼管顯示出來,人工設(shè)置目標(biāo)溫度通過加熱水溫,使水溫達(dá)到目標(biāo)溫度。</p><p>  圖1 整體系統(tǒng)框圖</p><p><b>  3

25、.系統(tǒng)計(jì)算</b></p><p>  由于本系統(tǒng)采用AD式的數(shù)字溫度傳感器的精度為0.25℃,所以溫度測(cè)量精度為0.3℃,通過實(shí)驗(yàn)我們的控制精度為0.4℃。</p><p> ?。ǘ﹩卧娐返墓δ茉矸治?</p><p>  基本硬件電路圖如圖所示。在本系統(tǒng)中單片機(jī)的引腳分布:RA0用于報(bào)警,RA1用于控制繼電器,RA3 用于啟動(dòng)加熱開關(guān),MCLR

26、用于復(fù)位,RA2是步進(jìn)按紐,RD2~RD7用于控制LED的掃描,RC3~RC4分別是時(shí)鐘線信號(hào)和數(shù)據(jù)線信號(hào)。</p><p><b>  1.溫度測(cè)量</b></p><p>  測(cè)溫元件采用AD公司的單線數(shù)字溫度傳感器AD7416。AD7416提供十位溫度讀數(shù),測(cè)量范圍-55℃~+125℃,采用獨(dú)I?C 總線協(xié)議,只需一根口線即實(shí)現(xiàn)與MCU的雙向通訊,具有連接簡單

27、,高精度,高可靠性等特點(diǎn)。在工作時(shí),通過總線向其提供電源,單片機(jī)發(fā)出指令碼讀取溫度值。每400微秒取樣一次,取4次溫度值的平均值。每0.5秒刷新一次。</p><p><b>  2.顯示電路</b></p><p>  我們通過實(shí)際觀察當(dāng)時(shí)當(dāng)?shù)氐臏囟鹊弥瑴囟炔粫?huì)達(dá)到100℃度。溫度采用三位七段碼顯示0℃~99。9℃。對(duì)溫度進(jìn)行循環(huán)掃描顯示,二個(gè)LED用于當(dāng)前按鍵

28、功能設(shè)定。</p><p><b>  3.加熱控制電路</b></p><p>  單片機(jī)通過光電耦合對(duì)繼電器進(jìn)行控制,用來切斷或接通加熱管電源,從而達(dá)到對(duì)水溫的控制。</p><p><b>  4.按鍵設(shè)定溫度</b></p><p>  本次是采用軟件來實(shí)現(xiàn)的,每5毫秒檢測(cè)一次按鍵,如果連續(xù)

29、兩次均為按下狀態(tài),則置按鍵狀態(tài)位有效。此后一直等到按鍵狀態(tài)位清零再重新開始檢測(cè)。 </p><p><b> ?。ㄈ╇娐穲D</b></p><p><b>  圖2 電路圖</b></p><p><b> ?。ㄋ模┌l(fā)揮部分設(shè)計(jì)</b></p><p>  PIC16

30、F877本身具有看門狗定時(shí)器,當(dāng)系統(tǒng)出現(xiàn)異常時(shí),能自動(dòng)進(jìn)行掉電保護(hù)和系統(tǒng)復(fù)位。系統(tǒng)采用硬件計(jì)數(shù)器來計(jì)數(shù),提高CPU的工作效率。</p><p><b>  三、系統(tǒng)軟件的設(shè)計(jì)</b></p><p>  系統(tǒng)中鍵盤掃描、保溫等子程序都通過查詢實(shí)現(xiàn),并采用4MHz的時(shí)鐘頻率,對(duì)指令的運(yùn)行時(shí)間進(jìn)行了精確計(jì)算和設(shè)計(jì),保證軟件的可靠性和穩(wěn)定性。</p><

31、p>  (一)程序的主流程圖</p><p>  圖3 程序的主流程圖</p><p> ?。ǘ└鱾€(gè)功能模塊流程</p><p>  溫度傳感器溫度數(shù)字采集部分</p><p>  1.AD7416的引腳配置如下圖:</p><p>  圖4 AD7416的引腳配置</p><p>

32、<b>  2. 引腳說明</b></p><p><b>  表1 引腳表</b></p><p>  3. 從AD7416中讀數(shù)據(jù)</p><p>  從AD7416讀數(shù)據(jù)是一或二字節(jié)的操作。讀配置寄存器的內(nèi)容是一個(gè)單字節(jié)的操作,若從溫度值寄存器中讀數(shù)據(jù)是一個(gè)二字節(jié)的操作,如下圖:</p><p&

33、gt;  圖5 AD7416中讀數(shù)據(jù)圖</p><p>  下面即為讀數(shù)字溫度的流程圖:</p><p><b>  圖6 溫度流程圖</b></p><p><b>  按鍵設(shè)置溫度部分</b></p><p>  M是記錄數(shù)的十位,N是記錄數(shù)的個(gè)位;</p><p>

34、  設(shè)置端口1即RC0=0;RC1=1,</p><p>  設(shè)置端口2即RC0=1;RC1=0;</p><p>  圖7 溫度設(shè)置框圖</p><p><b> ?。ㄈ囟瓤刂颇K</b></p><p>  E=目標(biāo)溫度與當(dāng)前溫度之差;</p><p>  c=當(dāng)前溫度與上一時(shí)刻溫度之差

35、;</p><p>  u=k*e+(1-k)c;k為常數(shù);</p><p>  當(dāng)目標(biāo)溫度與當(dāng)前溫度的差值大于7℃時(shí),系統(tǒng)采用全功率加熱,否則采用模糊溫度控制.在模糊溫度控制的過程中,設(shè)計(jì)采用硬件定時(shí)器TRM1,TRM2分別作為定時(shí)采樣周期和控制周期.TRM1的采樣周期為1.6S,TRM2的控制周期為533MS,即為1/3的TRM1的采樣周期.在533MS內(nèi),系統(tǒng)可根據(jù)參數(shù)U的不同實(shí)時(shí)修

36、正加熱時(shí)間與休息時(shí)間的在控比.如20%u說明加熱時(shí)間與休息時(shí)間為20%,40%u說明加熱時(shí)間與休息時(shí)間為40%。請(qǐng)見溫度和系統(tǒng)工作波形圖:</p><p>  表2 溫度與常數(shù)關(guān)系表</p><p>  溫度工作波形圖如下:</p><p>  圖8 溫度工作波形</p><p><b>  系統(tǒng)工作波形圖:</b>

37、</p><p>  圖9 系統(tǒng)工作波形</p><p>  圖10 溫度控制框圖</p><p><b>  其他功能模塊</b></p><p>  數(shù)據(jù)處理、保溫、定時(shí)計(jì)數(shù)等其他功能程序都根據(jù)程運(yùn)行時(shí)間進(jìn)行了統(tǒng)籌設(shè)計(jì),在此不再進(jìn)行詳述。</p><p><b>  四、系統(tǒng)組成

38、</b></p><p><b> ?。ㄒ唬㏄CB板</b></p><p><b>  圖11 PCB板</b></p><p><b> ?。ǘ?DPCB板</b></p><p>  圖12 3DPCB板</p><p> ?。ㄈ?/p>

39、)結(jié)構(gòu)工藝及說明</p><p>  我們?cè)谏蠄D空白中,添加了繼電器,結(jié)構(gòu)美觀,簡單整齊。</p><p><b>  五、系統(tǒng)調(diào)試</b></p><p><b> ?。ㄒ唬╇娐窚y(cè)試</b></p><p>  電路焊接無誤后,先將數(shù)字溫度傳感器放到水里,LED會(huì)顯示出當(dāng)前水的溫度,再放一支標(biāo)準(zhǔn)溫

40、度計(jì)與之比較,若幾乎相等,則說明電路無誤;再設(shè)定目標(biāo)溫度,若可以自動(dòng)加熱,使達(dá)到目標(biāo)溫度,則說明電路測(cè)試無誤,實(shí)驗(yàn)可以正常進(jìn)行。</p><p><b> ?。ǘ﹥x器的使用</b></p><p>  首先連接好相應(yīng)的電源線,將溫度計(jì)和傳感器放在水里,此時(shí)數(shù)碼管會(huì)顯示出當(dāng)前溫度值,用戶可以根據(jù)需要設(shè)定目標(biāo)溫度值,按下加熱開關(guān)可開始加熱。當(dāng)溫度達(dá)到你所想要的溫度時(shí),系

41、統(tǒng)會(huì)自動(dòng)斷電,接著系統(tǒng)它又會(huì)進(jìn)入保溫系統(tǒng),進(jìn)行保溫。</p><p><b> ?。ㄈy(cè)試的結(jié)果</b></p><p>  根據(jù)測(cè)試得到的部分實(shí)驗(yàn)數(shù)據(jù)如下:實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證說明,測(cè)量誤差為0.3℃</p><p>  控制誤差為0.4℃,因此本系統(tǒng)的設(shè)計(jì)不管是在采樣控制顯示溫度,還是在實(shí)時(shí)處理顯示精度上,都取得了理想的效果。</p>

42、<p>  表3 溫度測(cè)試結(jié)果表</p><p><b> ?。ㄋ模┌l(fā)揮部分測(cè)試</b></p><p>  當(dāng)溫度達(dá)到目標(biāo)溫度后,系統(tǒng)會(huì)自動(dòng)報(bào)警提醒用戶。這時(shí)候,系統(tǒng)會(huì)進(jìn)入保溫狀態(tài)。溫度時(shí)溫度達(dá)到的最高溫度與目標(biāo)溫度的差值只有0.3的誤差。</p><p><b>  六、結(jié)論與討論</b></p&

43、gt;<p>  本次實(shí)驗(yàn)采用了PICC編程方式,實(shí)現(xiàn)了溫度的測(cè)量與控制,完全達(dá)到了本次實(shí)驗(yàn)的要求,更重要的是該實(shí)驗(yàn)的測(cè)量誤差小于0.3℃度,控制誤差小于0.4℃度,已基本實(shí)現(xiàn)本實(shí)驗(yàn)擴(kuò)展部分的要求。它可以廣泛用于溫度測(cè)量精度要求比較高的場(chǎng)面,實(shí)現(xiàn)簡單,成本低。綜上所示,本系統(tǒng)的方案具有實(shí)用推廣價(jià)值。本系統(tǒng)通過添加一個(gè)傳感器,將其貼放在電熱杯的內(nèi)壁上,系統(tǒng)開始加熱,若溫度迅速上升,則說明杯中水不足,很有可能為干燒,為不安全加

44、熱,用戶請(qǐng)注意,這屬于該系統(tǒng)需要改進(jìn)的地方。</p><p><b>  致謝</b></p><p>  在此次的畢業(yè)設(shè)計(jì)過程中讓我把所學(xué)的電路知識(shí)得到了實(shí)踐,使得以前沒有應(yīng)用的實(shí)踐知識(shí),也得到了充分的發(fā)揮和體現(xiàn)。當(dāng)然我能順利的完成這次畢業(yè)設(shè)計(jì),首先感謝我的導(dǎo)師,他為本次的畢業(yè)設(shè)計(jì)傾注了大量的心血。由于我的知識(shí)欠缺和經(jīng)驗(yàn)不足,一開始對(duì)我的畢業(yè)設(shè)計(jì)很缺乏信心,他總是笑

45、著說沒問題,還親自幫我找了參考書籍,減少了我不少心理壓力。在設(shè)計(jì)期間,導(dǎo)師也是很耐心的指導(dǎo)我,為我解答疑難,使我順利地完成了集成開關(guān)穩(wěn)壓電源設(shè)計(jì)。</p><p>  本課題的研究工作是在導(dǎo)師的細(xì)心指導(dǎo)和關(guān)懷下才得以順利完成。從論文的選題、設(shè)計(jì)過程、論文的結(jié)構(gòu)到最后的定稿,都得到導(dǎo)師細(xì)心的指導(dǎo)和提攜。導(dǎo)師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。他無論在理論上還是在實(shí)踐中,都給予我很大的幫

46、助,使我得到不少的提高,這對(duì)于我今后的學(xué)習(xí)和工作都是一種巨大的幫助。從開始的系統(tǒng)策劃到最后的論文完成,都是在他的指導(dǎo)和幫助下完成的,而且他們給了我們很多技術(shù)上的支持。</p><p>  通過這次畢業(yè)設(shè)計(jì),我不僅達(dá)到了完成設(shè)計(jì)任務(wù)的目的,還培養(yǎng)了我分析問題、解決問題的能力。在這次的設(shè)計(jì)過程中,領(lǐng)導(dǎo)和導(dǎo)師的大力支持,這些都將對(duì)我在以后的學(xué)習(xí)和工作中有很大的幫助。</p><p><b&

47、gt;  附錄</b></p><p><b>  程序清單</b></p><p>  #include<pic.h> //頭文件</p><p>  unsigned char s1[4],s2[4];//采集溫度數(shù)據(jù)并存儲(chǔ)到兩個(gè)數(shù)組中,高字節(jié)存到S1中,低字節(jié)存到S2中</p><p> 

48、 unsigned int counter1,counter2,figure1=2,figure2,flag2;//定時(shí)器,目標(biāo)溫度,標(biāo)志位申明</p><p>  unsigned int num1,num2,flag1=0,i,j,m;//采集溫度數(shù)據(jù)num1:整數(shù)位,num2:小數(shù)位,啟動(dòng)標(biāo)志位flag1及延時(shí)變量申明</p><p>  double y,temp,e,c,t,u

49、,k;//模糊控制參數(shù)申明</p><p>  const char table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//不帶小數(shù)點(diǎn)筆段碼</p><p>  const char table0[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//帶小

50、數(shù)點(diǎn)筆段碼</p><p>  /*系統(tǒng)I/O端口初始化子程序*/</p><p>  void INITIAL()</p><p><b>  {</b></p><p>  OPTION=0X0F;</p><p>  ADCON1=0X07;//設(shè)定RA口為變通數(shù)字端口</p>

51、<p><b>  TRISD=0;</b></p><p><b>  TRISB=0;</b></p><p><b>  PORTD=0;</b></p><p><b>  PORTB=0;</b></p><p><b> 

52、 TRISA2=1;</b></p><p><b>  TRISA3=1;</b></p><p><b>  TRISC0=0;</b></p><p><b>  TRISA0=0;</b></p><p><b>  TRISA1=0;</b

53、></p><p><b>  TRISC1=0;</b></p><p><b>  RC0=0;</b></p><p><b>  RC1=0;</b></p><p><b>  RA0=0;</b></p><p>

54、<b>  RA1=0;</b></p><p><b>  }</b></p><p>  //tmr1初始化子程序</p><p>  void tmr1int()</p><p><b>  {</b></p><p><b>  TMR

55、1IF=0;</b></p><p><b>  PEIE=1;</b></p><p><b>  TMR1IE=1;</b></p><p>  T1CON=0X30;</p><p><b>  }</b></p><p>  //tm

56、r2初始化子程序</p><p>  void tmr2int()</p><p><b>  {</b></p><p><b>  TMR2IF=0;</b></p><p><b>  PEIE=1;</b></p><p><b>  

57、TMR2IE=1;</b></p><p>  T2CON=0X7B;</p><p><b>  PR2=255;</b></p><p><b>  }</b></p><p>  //i2c初始化子程序</p><p>  void i2cint()<

58、/p><p><b>  {</b></p><p>  SSPCON=0X08;//初始化sspcon寄存器</p><p>  TRISC3=1;//設(shè)置scl為輸入口</p><p>  TRISC4=1; //設(shè)置sda為輸入口</p><p>  SS

59、PSTAT=0X80;//初始化sspstat寄存器</p><p>  SSPADD=19;//設(shè)定i2c波特率50khz頻率</p><p>  SSPCON2=0X00;//初始化sspcon2寄存器</p><p>  di();//關(guān)閉總中斷</p><p>  SSPIF=0;

60、//清ssp中斷標(biāo)志</p><p>  SSPEN=1; //ssp模塊使能 </p><p><b>  }</b></p><p>  //5ms延時(shí)子程序</p><p>  void delay()</p><

61、p><b>  {</b></p><p>  for(j=300;--j;)</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  //用戶目標(biāo)溫度輸出子程序</p><p>  vo

62、id ledout()</p><p><b>  {</b></p><p>  PORTB=table[figure1];</p><p><b>  RD7=1;</b></p><p><b>  delay();</b></p><p><

63、;b>  RD7=0;</b></p><p>  PORTB=table[figure2];</p><p><b>  RD6=1;</b></p><p><b>  delay();</b></p><p><b>  RD6=0;</b></p

64、><p>  PORTB=0X40;</p><p><b>  RD5=1;</b></p><p><b>  delay();</b></p><p><b>  RD5=0;</b></p><p><b>  }</b><

65、;/p><p><b>  //鍵盤服務(wù)子程序</b></p><p>  int keyserve()</p><p><b>  {</b></p><p>  RC0=0;RC1=1;</p><p>  if(RA2==0)</p><p>  f

66、igure1+=1;</p><p>  RC0=1;RC1=0;</p><p>  if(RA2==0)</p><p>  figure2+=1;</p><p>  if(figure1==10)</p><p>  figure1=2;</p><p>  if(figure2==10

67、)</p><p>  figure2=0;</p><p>  RC0=0;RC1=1;</p><p>  if(RA3==0)</p><p><b>  flag1=1;</b></p><p>  RC0=0;RC1=0;</p><p><b>  i

68、2cin();</b></p><p>  display();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if((RA2==1)&&(RA3==1)) //等待鍵盤松開</p>

69、<p><b>  break;</b></p><p><b>  i2cin();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //模糊控制算法</b&

70、gt;</p><p>  float control( )</p><p><b>  { </b></p><p>  e=(float)(figure1*10+figure2)-(float)num1-(float)num2/100;//E為目標(biāo)溫度與當(dāng)前溫度之差</p><p>  if(flag2==1)

71、 //判斷是否第一次啟動(dòng)控制</p><p>  c=0; //是,則C設(shè)定為0;</p><p>  else c=(float)(num1*100+num2)/100-temp;//否,則C為當(dāng)前溫度與上一采樣溫度之差</p><p>  u=k*e+(1-k)*c;

72、 //模糊控制公式</p><p>  temp=(float)(num1*100+num2)/100;//記錄上一時(shí)刻溫度值</p><p>  return u; //返回控制參數(shù)</p><p><b>  } </b></p><p>  //冒泡從小到大排序

73、算法</p><p>  void bubblesort(char a[],int num)</p><p><b>  {</b></p><p>  int m,n,flag=1,temp;</p><p>  for(m=1;m<num&&flag==1;m++)</p><

74、;p><b>  {</b></p><p><b>  flag=0;</b></p><p>  for(n=0;n<num-m;n++)</p><p><b>  {</b></p><p>  if(a[n]>a[n+1])</p>&

75、lt;p><b>  {</b></p><p><b>  flag=1;</b></p><p>  temp=a[n];a[n]=a[n+1];</p><p>  a[n+1]=temp;</p><p><b>  }</b></p><p&

76、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //led顯示部分</b></p><p>  int display()</p><p>&

77、lt;b>  {</b></p><p><b>  CLRWDT();</b></p><p>  bubblesort(s1,4);//S1從小到大排序</p><p>  bubblesort(s2,4);//S2從小到大排序</p><p>  num1=(s1[1]+s1[2])/2; //濾

78、去最大,最小數(shù)再求平均值</p><p>  num2=((s2[1]+s2[2])/128)*25;//濾去最大,最小數(shù)再求平均值并轉(zhuǎn)化為小數(shù)位值</p><p>  PORTB=table[num1/10];//送顯</p><p><b>  RD4=1;</b></p><p><b>  delay(

79、);</b></p><p><b>  RD4=0;</b></p><p>  PORTB=table0[(num1-(num1/10)*10)];</p><p><b>  RD3=1;</b></p><p><b>  delay();</b></

80、p><p><b>  RD3=0;</b></p><p>  PORTB=table[num2/10];</p><p><b>  RD2=1;</b></p><p><b>  delay();</b></p><p><b>  RD2

81、=0;</b></p><p>  ledout();//目標(biāo)溫度顯示</p><p><b>  }</b></p><p><b>  //數(shù)據(jù)接收子程序</b></p><p>  int i2cin()</p><p><b>  {</b

82、></p><p>  for(i=0;i<4;i++) //采集4次溫度</p><p><b>  {</b></p><p>  SEN=1; //啟動(dòng)</p><p>  do{RSEN=

83、1;}//產(chǎn)生重啟信號(hào)</p><p>  while(SSPIF==0);SSPIF=0;//如果沒有啟動(dòng)成功則反復(fù)啟動(dòng),直到成功為止</p><p>  SSPBUF=0x91;//發(fā)送器件地址+1位讀控制命令</p><p>  do{;}while(SSPIF==0);SSPIF=0;//判斷是否有回答信號(hào)</p>

84、<p>  RCEN=1;//單片機(jī)設(shè)為接收設(shè)備,準(zhǔn)備接收數(shù)據(jù)</p><p>  do{;}while(SSPIF==0);SSPIF=0;//判斷是否有回答信號(hào)</p><p>  s1[i]=SSPBUF;//接收來自從器件的第一個(gè)字節(jié)數(shù)據(jù)</p><p>  display();//調(diào)用顯示子程序</

85、p><p>  ACKEN=1;//單片機(jī)發(fā)送應(yīng)答信號(hào)</p><p>  do{;}while(SSPIF==0);SSPIF=0;//判斷是否有回答信號(hào)</p><p>  RCEN=1;//由于硬件自動(dòng)清零,再次把單片機(jī)設(shè)為接收設(shè)備,準(zhǔn)備接收數(shù)據(jù)</p><p>  do{;}while(SSPIF==0);SS

86、PIF=0;//判斷是否有回答信號(hào)</p><p>  s2[i]=SSPBUF;//接收來自從器件的第二個(gè)字節(jié)數(shù)據(jù)</p><p>  display();//調(diào)用顯示子程序</p><p>  ACKEN=1;//單片機(jī)發(fā)送應(yīng)答信號(hào)</p><p>  do{;}while(SSPIF==0);SSPI

87、F=0;//判斷是否有回答信號(hào)</p><p>  PEN=1;//單片機(jī)發(fā)送停止信號(hào)</p><p>  do{;}while(SSPIF==0);SSPIF=0;//判斷是否有回答信號(hào)</p><p><b>  }</b></p><p><b>  }</b><

88、/p><p>  //通過測(cè)量計(jì)算控制K常量子程序</p><p>  void calculate()</p><p><b>  {</b></p><p>  switch(figure1+1)</p><p><b>  {</b></p><p>

89、;  case 10 : k=2.1365; //90——100</p><p><b>  break;</b></p><p>  case 9 : k=1.8554; //80——90</p><p><b>  break;</b></p><p>  case 8 : k=1.5767

90、; //70——80</p><p><b>  break;</b></p><p>  case 7 : k=0.7686; //60——70</p><p><b>  break; </b></p><p>  case 6 : k=0.6585; //50——60</p>

91、<p><b>  break;</b></p><p>  case 5 : k=0.5289; //40——50</p><p><b>  break;</b></p><p>  case 4 : k=0.4686;//30——40</p><p><b>  

92、break;</b></p><p>  case 3 : k=0.3847; //0——30</p><p><b>  break;</b></p><p>  defaut:k=0.5;</p><p><b>  }</b></p><p><b&

93、gt;  }</b></p><p><b>  //系統(tǒng)終斷子程序</b></p><p>  void interrupt fleg()</p><p><b>  {</b></p><p>  di();//關(guān)閉總中斷</p><p>  if(TMR1I

94、F==1)//判斷是否為tmr1中斷</p><p>  {TMR1IF=0;TMR1H=0;TMR1L=0;counter1++;}//是,則清除標(biāo)志,累加器且計(jì)數(shù)器1自加一次</p><p>  else if(TMR2IF==1)//判斷是否為tmr2中斷</p><p>  {TMR2IF=0;TMR2=0;counter2++;}//是,則清除標(biāo)志,累加器

95、且計(jì)數(shù)器2自加一次</p><p>  ei();//打開總中斷</p><p><b>  }</b></p><p><b>  //主程序</b></p><p>  void main()</p><p><b>  {</b></p>

96、;<p>  INITIAL();//調(diào)用系統(tǒng)初始化子程序</p><p>  i2cint();//調(diào)用i2c初始化子程序</p><p>  tmr1int();//調(diào)用tmr1初始化子程序</p><p>  tmr2int(); //調(diào)用tmr2初始化子程序</p><p><b>  while(1)<

97、/b></p><p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if((RA2==0)||(RA3==0))//掃描按鍵是否按下</p><p>  

98、break;//是,則跳出</p><p>  i2cin(); //否,則繼續(xù)采樣數(shù)據(jù)并內(nèi)部調(diào)用顯示子程序</p><p>  } //key</p><p>  ledout(); //調(diào)用目標(biāo)溫度顯示子程序作為延時(shí),從而消除按鍵抖動(dòng)</p><p>  if((RA2==0)||(RA3==0))//判

99、斷是否真的按下</p><p>  keyserve(); //是,則調(diào)用識(shí)別子程序</p><p>  if(flag1==1) //判斷是否為啟動(dòng)鍵按下</p><p>  {//是,則執(zhí)行下列程序</p><p>  if((float)(num1*100+num2)/100>=(

100、float)(figure1*10+figure2)) </p><p>  //判斷當(dāng)前溫度是否大于等于目標(biāo)溫度</p><p><b>  { </b></p><p>  RA0=1; i2cin(); RA0=0; // 是,則不可控制并報(bào)警</p><p><b>  }</b>&

101、lt;/p><p>  else //否,則執(zhí)行下列程序</p><p><b>  {</b></p><p><b>  while(1)</b></p><p>  {if((float)(num1*100+num2)/100>=(float)(figure1*10+figure2-7

102、)&&(float)(num1*100+num2)/100<(float)(figure1*10+figure2)) </p><p>  //判斷是否在模糊控制范圍內(nèi)</p><p>  { calculate();//調(diào)用自動(dòng)查控制常數(shù)k值子程序</p><p><b>  TMR2=0;</b></p>

103、<p><b>  TMR1H=0;</b></p><p><b>  TMR1L=0;</b></p><p><b>  ei();</b></p><p><b>  TMR2ON=1;</b></p><p>  TMR1ON=1;

104、//硬件計(jì)數(shù)器開始計(jì)數(shù)</p><p>  while(1) </p><p><b>  {</b></p><p>  if(counter1>=3)//最大采樣周期2.6s,最小采樣周期1.6s</p><p><b>  {</b></p><p&

105、gt;<b>  TMR1ON=0;</b></p><p><b>  TMR2ON=0;</b></p><p><b>  i2cin();</b></p><p>  counter1=0;</p><p>  counter2=0;</p><p&

106、gt;<b>  TMR1H=0;</b></p><p><b>  TMR1L=0;</b></p><p><b>  TMR2=0;</b></p><p><b>  TMR2ON=1;</b></p><p>  TMR1ON=1;

107、 //清除相關(guān)寄存器和計(jì)數(shù)器,并重新打開</p><p><b>  }</b></p><p>  flag2++;RA1=1; //控制次數(shù)計(jì)算器自加,并啟動(dòng)繼電器</p><p>  for(y=control();y>0;y=y-0.25) //根據(jù)control()返回的U自動(dòng)修整加熱時(shí)間</p

108、><p>  display();</p><p>  RA1=0; //關(guān)閉繼電器</p><p>  while(counter2<12) </p><p><b>  {</b></p><p>  display(); </p><p>

109、  } //利用tmr2計(jì)數(shù)器間隔600ms中除加熱外佘下的時(shí)間作為休息時(shí)間并且會(huì)自動(dòng)變動(dòng)</p><p>  counter2=0; //清除tmr2 600ms計(jì)算標(biāo)示位</p><p>  TMR2=0;TMR2ON=1;</p><p>  if((float)(num1*100+num2)/100>=(float)(fi

110、gure1*10+figure2)) </p><p>  //判斷當(dāng)前溫度是否大于等于目標(biāo)溫度</p><p>  for(m=40;m--;) i2cin(); //是延時(shí)4S,從而讓它穩(wěn)定</p><p>  if((float)(num1*100+num2)/100>=(float)(figure1*10+figure2)) </p>

111、<p>  //再次判斷當(dāng)前溫度是否真的大于等于目標(biāo)溫度</p><p>  {TMR1ON=0;TMR2ON=0;counter1=0;</p><p>  counter2=0;</p><p>  RA1=0;//關(guān)閉計(jì)算器</p><p>  while(1) //循環(huán)報(bào)警</p><p><b

112、>  {</b></p><p><b>  RA0=1;</b></p><p><b>  i2cin();</b></p><p><b>  RA0=0;</b></p><p><b>  i2cin();</b></p&

113、gt;<p>  if((float)(num1*100+num2)/100<(float)(figure1*10+figure2))</p><p>  //判斷當(dāng)前溫度是否小于目標(biāo)溫度</p><p>  break; //是,則跳出開始控制,即保溫</p><p><b>  }</b></p><

114、;p>  TMR1H=0;TMR1L=0;TMR2=0;TMR1ON=1;TMR2ON=1; </p><p>  } //重新開始打開計(jì)數(shù)器</p><p>  if((float)(num1*100+num2)/100<(float)(figure1*10+figure2-7)) </p><p>  //判斷當(dāng)前溫度是否小于控制溫度外&l

115、t;/p><p>  break; //是,則跳出開始全功率加熱</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&

116、lt;/b></p><p>  RA1=1;i2cin();//全功率加熱子程序</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  flag1=0;i2ci

117、n(); //清出啟動(dòng)標(biāo)示位并采樣數(shù)據(jù)</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  參考文獻(xiàn)</b></p><p>

118、;  [1].竇振中編.PIC系列單片機(jī)原理和程序設(shè)計(jì).北京航空航天大學(xué)出版社,2002</p><p>  [2].李學(xué)海編.PIC單片機(jī)原理PIC單片機(jī)實(shí)用教程. 北京航空航天大學(xué)出版社,2004</p><p>  [3].陳爾紹編.電子控制電路實(shí)例.電子工業(yè)出版社,1999</p><p>  [4].陳新建編.PIC單片機(jī)C語言開發(fā)入門.北京航空航天大學(xué)出

119、版社,2003</p><p><b>  畢業(yè)設(shè)計(jì)任務(wù)書</b></p><p><b>  畢業(yè)設(shè)計(jì)開題報(bào)告</b></p><p>  畢業(yè)設(shè)計(jì)實(shí)施過程記錄表</p><p>  畢業(yè)設(shè)計(jì)評(píng)審表(指導(dǎo)教師用)</p><p>  說明:在“A、B、C、D、E”對(duì)應(yīng)的欄目

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論