久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6492|回復: 2
收起左側

單片機DS18B20溫度控制系統研制論文

[復制鏈接]
ID:306390 發表于 2018-4-12 09:51 | 顯示全部樓層 |閱讀模式
設計(論文)題目   單片機溫度控制系統研制                                    
學生姓名      張*             專業   機電一體化  
第五章 結果分析
5.1 PROTEUS仿真
總體電路原理圖設計好后,在KEIL3里用C語言編出相應的程序,程序調試在沒有問題后,接著就對程序進行仿真,總體思路是:由局部到整體。首先進行鍵盤設定溫度值并用數碼管顯示的仿真,再進行DS18B20采集溫度并用數碼管顯示的仿真,這兩個關鍵部分完成后,就進行總體程序的仿真。
5.1.1 鍵盤設定溫度仿真
將4×4鍵盤的掃描程序編好后,在PROTEUS里進行仿真,發現當我按下某個按鍵時,數碼管的百位,十位,各位顯示的都是那個鍵的值,比如我按下3的時候,這三個位的數碼管都是3,思考了許久,我初步判斷原因可能是是按鍵按下后,因為鍵盤一直處于按下的狀態,而按鍵掃描程序掃描按鍵的速度非常快,以至于我按下一次,鍵盤掃描了好些次,如此想后,我就設定一個標志位,按鍵按下置1,鍵抬起置0,但效果依舊不佳;最后,我在掃描每行鍵的最后都加上一個判斷按鍵是否釋放的程序,如釋放,再讀取鍵值,如此之后,就能正確輸入按鍵的值,比如,我要輸入123,就只需要依次按下1、2、3。
如圖5-1所示,鍵盤設定初值32℃并用數碼管顯示
圖5-1 鍵盤設定溫度32℃仿真
5.1.2 溫度采集仿真
根據DS18B20的時序圖編好程序并在KEIL3里檢查好語法沒有錯誤后,鏈接到PROTEUS里進行仿真。開始在PROTEUS里設定改變溫度的步長為1℃,在軟件里也就相應的將采集到的溫度設置為整數,上下限與這個整數相差為一度。這樣會使誤差加大,之后將仿真的步長改為0.1℃,程序也做出相應的的修改,使實際溫度保留一位小數。仿真能夠獲取實際溫度,這個實際溫度可從DS18B20的仿真模型中設置。如圖5-2所示,PROTEUS仿真溫度采集,獲取當前的環境溫度為28.7℃。

圖5-2 溫度采集仿真
5.1.3 整體仿真
因為實際溫度保留一位小數,在仿真的時候,就出現了一個錯誤,比如,我設定的溫度為28攝氏度時,在正確的情況下,蜂鳴器會在實際溫度小于27℃和大于29℃報警,但是仿真出來的結果是小于27℃時,蜂鳴器報警,但是當溫度大于29℃時蜂鳴器并未報警,直至實際大于30℃時蜂鳴器才會報警。仔細檢查程序后,我發現在讀溫度子程序模塊中,我讀取的是實際溫度的10倍并取整,然后在我將其與實際值比較之前,又讓其除以10,所得值賦給一個整形數,這樣就出現了這樣種情況,比如,我最初測得的實際值是27.8℃,10倍變為278℃,這是為了方便顯示,為了判斷是否報警,我要將其與設定值比較,又設定值是個整形數,因此,將此數縮小10倍,賦給一個整形數后實際溫度就變為27℃。如此實際溫度就當于自減了1℃,故要到實際值為30℃時才能報警。實際溫度比設定小1℃能報警,又是因為,只有實際值比設定值小1℃才會報警,實際溫度等于設定的下限并不會報警,因此,(27.0-27.9)℃賦值給整形數始終是27℃,只有當實際溫度小于27℃時,實際值才會小于下限(設定值28-1),蜂鳴器才會警報。找出問題的所在后,我將設定值擴大10倍,再與實際值的10倍比較,這樣就很好的解決了這個問題。仿真總體完畢。
由上可知,在仿真調試過程中,我遇到了很大的麻煩。在仿真的過程中,有時會感覺程序和硬件都沒有一點問題,但是就是不能實現系統所要實現的功能,因為它不允許軟件和硬件有一點問題,哪怕是細小的一點問題都不允許。舉一個最簡單的例子,就拿數碼管顯示程序的調試仿真來說,PROTEUS 里單片機的I/O口可以直接驅動動態顯示的數碼管,但在實際中卻是不可以的。
因為在PROTEUS中加熱裝置和實際出入大,所以在PROTEUS里進行加熱仿真就是成功也沒有太大的實際意義,所以我只進行了系統中兩個重要部分的軟件仿真,以及這兩部分合起來的一個總體仿真。
5.2實際運行結果
仿真結果符合預期后,我就著手實物的制作,將所用到的元件焊接在電路板后,就開始測試系統性能。第一次因為焊接技術不過關,數碼管顯示時好時壞,為了求得個良好的結果,我又重新將元件焊接在另一塊板子上,積累了上次焊接的經驗后,第二次的焊接效果比之前好了很多,數碼管顯示正常。由于是動態顯示,數碼管的亮度不是很高。
加熱裝置我選擇的是PTC加熱器,其功率為120W,很小,只能在比較小的空間內才能進行溫度控制。在實際的試驗中,DS18B20在以此加熱器為圓心,以半徑20CM為圓,高度不超過15CM圓柱范圍內,控制效果良好,誤差較小。以下簡述實際試驗的一些情況。
首先,給單片機上電后,設定溫度為29℃,這個值就是我的期望值了,與此同時,軟件中相應的把系統能容忍的溫度上下限分別定為30℃和28℃,按下溫度的切換鍵,顯示當前溫度為27.6℃,低于溫控系統要求的下限,產生報警。因為實際溫度小于設定溫度,PTC加熱,一小段時間后,警報解除,說明溫度已進入溫度控制系統的上下限之間,又過了一段時間(時間長短由DS18B20離PTC加熱器的距離而變,但當系統穩定后,時間的差異性變小),實際溫度達到29℃,PTC關斷,其余溫使溫度繼續上升,但沒有觸發警報,一段時間后,溫度又降到29度,比29℃稍低一點,PTC就會加熱,因為PTC的加熱很快,冷卻較慢,實際溫度在PTC關斷后,下降超過設定值的幅度很小,即使再小,PTC也會進行加熱,如此循環,經過多次長時間的試驗,實際溫度28.8℃<T<29.8℃,誤差為1℃左右,又由于DS18B20的誤差為±0.5℃,累計的最大誤差為2℃,這個誤差在本系統中是可以容忍的。故本次畢業設計總體來說是成功的。
圖5-3,為本次畢業設計的實物顯示設定溫度



圖5-3 系統運行顯示設定溫度

圖5-4 系統運行顯示實際溫度


第六章 總結與展望6.1總結
無論仿真還是在實際試驗中,本系統都達到了預期的要求。本次畢業設計主要完成的工作有:硬件電路圖設計、軟件編程與仿真調試、硬件制作等。以下是具體的總結:
(1)以AT89C51單片機為核心進行系統設計,輸入通道采用DS18B20芯片,完成溫度的采集以及輸出數字量;輸出通道采用光電耦合器控制雙向可控硅作為開關管理PTC加熱器的通斷。通過雙位控制調節可實現對溫度的自動控制。由于輸入端與輸出端有光電隔離,能夠有效地抑制干擾;
(2)在溫度控制系統中采用雙位控制算法,將單片機的某個口線作為雙位控制器,通過置“0”或置“1”控制輸出通道的通斷。
(3)采用C51進行編程,通用性強。在原理圖設計過程中使用了PROTEUS仿真,這些都節約了設計的時間,而且便于編寫、調試、修改和增刪,系統軟件的編制采用了模塊化的設計方法。
(4)制作硬件的時候采用雙面的焊接板,輔于焊錫膏,焊接可靠,在完成時,用萬用表對焊接件進行“虛焊”與短路測試。減少硬件調試不成功尋找因素的麻煩。
(5)根據溫控空間的大小選擇加熱裝置功率的大小。
(6)使用溫度計對18B20所測得的溫度進行校正,可使結果更接近真實情況。
6.2展望
本系統使用的AT89C51屬于與C51系列兼容的8位單片機,這種單片機共4個I/O口,32根口線,資源較少,運用于較復雜的系統中需要擴展,而且擴展的空間也極為有限。隨著工業的發展,對象的復雜程度不斷加深,雙位控制的缺陷也逐漸暴露出來,而另一方面隨著智能控制如模糊控制、神經網絡控制等先進控制技術的迅速發展,它們與常規PID控制相結合,揚長避短,發揮各自的優勢,形成所謂的智能PID控制。
結合上面的論述,今后還需要做進一步的研究和解決的問題有:
(1)硬件方面,采用性能更優良的單片機對系統的硬件進行重新設計;
(2)控制算法方面,如要用于精確控制,雙位控制不是好的選擇,嘗試采用現在得到快速發展的智能控制方法,如模糊控制、神經網絡控制和模糊PID控制等等;
(3)在按鍵方面,采用4×4鍵盤,占用了I/O口的十二根口線,對于資源本身就少的89C51單片機來說,不是很經濟,在復雜的系統中,按鍵應盡可能少占用I/O口。

致 謝
本次畢業設計是在導師榮瑞芳老師的細心指導下完成的。在論文的總體方案的設計、元件的選擇、程序的編寫和論文的撰寫過程中,榮老師都給予了大力支持和細心指導。榮老師治學嚴謹,知識淵博、為人謙虛,每次在畢業設計遇到難題找他答疑的時候,他都會耐心地給我解答,提出了很多建設性的意見。更重要的是,榮老師在幫助我的時候,都是給我一個大概的方向,然后讓我自己去探索,培養了我獨立完成任務的能力。樸實無華的人格魅力,扎實的學術和理論水平使我受益匪淺。借此之際,祝榮老師身體健康,工作順利。同時也特別感謝我的班主任在中期答辯期間給我指出了許多不足,才促使我很快找到設計方向。
除了老師的幫助,我們班的同學也給了我很多幫助。侯悅同學在溫度傳感器上的選擇給了我一些啟示,并在程序編寫時給了我很多的指導;李凱奇同學在我畫原理圖過程中教我如何使用PROTEUS仿真軟件;曹天昊同學在我焊接電路板時告訴了我一些重要的焊接技巧,才使我在實物制作上順利完成。在此,一并向這三位同學表示真誠的感謝

第四章 控制系統軟件設計

    為了實現系統的溫度檢測和控制,并能夠實時顯示,整個系統由如下幾個主要模塊組成,主程序模塊、溫度采集模塊、溫度設定模塊、溫度顯示模塊,報警模塊,溫度控制模塊等幾個模塊組成。本章將對如上所敘述的幾個模塊分別進行介紹,并闡述程序的編寫思路和所實現的功能。

4.1 主程序模塊設計
主程序的主要設計思想是圍繞題目基本要求而展開的,系統按鍵設定溫度產生外部中斷0,轉入中斷服務程序,在中斷服務程序中獲取設定的溫度值,之后在主程序進行數據存儲、調用數碼管顯示、報警控制、溫度控制等子程序模塊。所以主程序主要是對系統的初始化和調用各子程序模塊。
4.1.1主程序流程圖

圖4-1為主程序流程圖

圖4-1 主程序流程圖
4.2溫度采集模塊程序設計
溫度的采集是數字溫度計DS18B20通過單片機進行嚴格的時序控制來完成的,在空間不是很大的范圍內,采用一片DS18B20進行單點測溫即可實現對溫度的較為精確的控制。
4.2.1 DS18B20的時序
DS18B20的時序可分為三個部分:初始化時序、寫時序和讀時序。只有遵守嚴格的時序,DS18B20才能進行溫度的采集。
4.2.2.1 初始化時序
DS18B20的所有通信都是由復位脈沖組成的初始化序列開始。該初始化序列由主機發出,后跟由DS18B20發出的存在脈沖(presence pulse)。圖4-2闡述了這一點,當發出應答復位脈沖的存在脈沖后,DS18B20通知主機它在總線上并且準備好操作了。在初始化步驟中,總線上的主機通過拉低單總線至少480μs來產生復位脈沖。然后總線主機釋放總線并進入接收模式。當總線釋放后,5kΩ的上拉電阻把單總線上的低電平拉回高電平。當DS18B20檢測到上升沿后等待15到60μs,然后以拉低總線60-240μS的方式發出存在脈沖,主機將總線拉低最短480μS,之后釋放總線。由于5kΩ上拉電阻的作用,總線恢復到高電平。至此,初始化和存在時序完畢。
4.2.2.2寫時序
如圖4-3所示,所有的寫時隙必須至少有60μs的持續時間。相鄰兩個寫時隙必須要有最少1μs的恢復時間。所有的寫時隙(寫0和寫1)都由拉低總線產生。為產生寫1時隙,在拉低總線后主機必須在15μs內釋放總線(拉低的電平要持續至少1us)。由于上拉電阻的作用,總線電平恢復為高電平,直到完成寫時隙。為產生寫0時隙,在拉低總線后主機持續拉低總線即可,直到寫時隙完成后釋放總線(持續時間60-120μs)。寫時隙產生后,DS18B20會在產生后的15到60μs的時間內采樣總線,以此來確定寫0還是寫1。
4.2.2.3讀時序
如圖4-4所示,DS18B20只有在主機發出讀時隙時才能發送數據到主機。因此,主機必須在BE(讀存儲器) 命令,B4(讀電源)命令后立即產生讀時隙以使DS18B20提供相應的數據。另外,在44(溫度轉換)命令,B8(recall)命令后也要產生讀時隙。 所有的讀時隙必須至少有60μs的持續時間。相鄰兩個讀時隙必須要有最少1μs的恢復時間。所有的讀時隙都由拉低總線,持續至少1μs后再釋放總線(由于上拉電阻的作用,總線恢復為高電平)產生。DS18B20輸出的數據在下降沿產生1后5μs內有效。因此,釋放總線和主機采樣總線等動作要在15μs內完成。

圖4-2 DS18B20復位時序圖

圖4-3 DS18B20寫時序圖

圖4-4 DS18B20讀時序圖
4.2.3 讀溫度子程序流程圖         
讀溫度子程序是在單片機的控制下,形成嚴格的時序,完成溫度的轉換并作數據的相應處理。溫度轉換命令子程序主要是發溫度轉換開始命令,本次畢業設計采用12位分辨率,轉換所需的時間約為750ms。因為是單點測溫,不需要CRC校驗。
圖4-5為讀溫度子程序流程圖

圖4-5 讀溫度子程序流程圖

4.3溫度設定模塊程序設計
溫度設定模塊是用來設定溫度的,通過4X4鍵盤輸入想要控制的溫度值。本次畢業設計通過中斷進行掃描。
4.3.1中斷服務子程序

    系統中中斷采用的是外部中斷0,外部中斷0的初始化子程序在主程序開始時即被調用,當鍵盤上有鍵按下時,即產生一個外部中斷0,執行中斷子程序,獲取輸入的設定值,之后中斷回。

圖4-6為中斷服務子程序的流程圖


   

圖4-6 中斷服務子程序流程圖

4.3.2 鍵盤掃描子程序
鍵盤的掃描是中斷掃描,若有鍵按下,則從第一行開始掃描,直到確定按鍵的行與列,確定鍵值,并返回鍵值。
圖4-7為鍵盤掃描子程序流程圖

圖4-7 鍵盤掃描子程序流程圖
4.4溫度顯示模塊設計
溫度顯示模塊要顯示的溫度有設定值與實際值,通過P3.5的電平的高低來控制,而P3.5電平的高低由與其相連的開關的通斷來控制。
4.4.1設定值顯示子程序
設定的數值范圍為自然狀態下室溫-125℃且為整數,所以四位七段的數碼管的左數第一位的位選信號始終被置零,P0口進行段選,P2口的低四位依次進行千、百、十、個位的數碼管的位選。
圖4-8為設定值顯示子程序的流程圖

圖4-8 設定值顯示子程序
4.4.2 實際值顯示子程序
實際值是一個溫室自然狀態下的室溫-125℃之間的數,其帶有一位小數,四位八段的數碼管從左至右依次是百位、十位、個位、十分位。數碼管的段選口還是P0口,P2口的低四位依次是百位、十位、各位、十分位數碼管的位選口線。
圖4-9為實際值顯示子程序的流程圖。

圖4-9 實際值顯示子程序流程圖

4.5溫度控制模塊設計
溫度控制模塊簡單的說就是要實現溫度的控制,實際溫度高于設定值,降溫;實際溫度低于設定值,加熱。系統中加熱的裝置為PTC加熱器。
4.5.1雙位控制算法設計
溫室環境是一個復雜分布式參數系統,由于其本身的復雜性和外界大氣候較強的影響,要使自控系統將其控制到一定的指標上存在一定的難度,但由于溫室內作物對于各種參數變化不是很敏感,因此,沒有必要將各種參數進行精確控制,只要控制在一段適宜的范圍內即可,又考慮到本智能終端的通用性,本次畢業設計采用實現起來比較簡單的雙位控制算法。雙位控制又稱為繼電器接觸控制,理想的雙位控制規律的數學表達式為:

雙位控制規律是測量值大于(或小于)給定值時,控制器的輸出為最大(或最小)值,即系統只有兩個輸出值,在此系統中,P3.0就相當于一個雙位控制器。其只有“1”和“0”這兩種狀態。執行機構也只有“開"和“關"兩個極限工作位置。給定溫度的設定值,當被控溫室的溫度低于設定值時,P3.0置1,PTC加熱器工作,而當溫室內的溫度高于設定值時,P3.0置0,關閉PTC加熱器,從而實現溫度的控制。雙位控制對象特性好、負荷變化較小、過程滯后小、允許被控制參數在一定的范圍內波動,可以適用于溫室系統的控制。
4.5.2溫度控制子程序流程圖
圖4-10為溫度控制子程序流程圖

圖4-10 溫度控制子程序流程圖

4.6報警模塊程序設計
報警模塊的工作很簡單,就是判斷實際溫度超上限或低下限報警。
圖4-11為報警控制子程序流程圖

圖4-11報警控制子程序流程圖

完整的Word格式文檔51黑下載地址(含源碼):
基于單片機的溫度控制系統設計畢業論文.docx (1.19 MB, 下載次數: 94)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:192893 發表于 2018-4-14 20:20 | 顯示全部樓層
感謝樓主分享
回復

使用道具 舉報

ID:736861 發表于 2020-4-24 12:00 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久av资源网 | 天天躁日日躁xxxxaaaa | 精品一区二区在线视频 | 天堂网avav | 91 中文字幕 | 伊人亚洲 | 国产精品国产精品国产专区不卡 | 日日夜夜精品视频 | 久久国产精品色av免费观看 | 自拍视频网站 | 欧美精品综合在线 | 欧美午夜影院 | 国产精品99久久久久久宅男 | 欧美婷婷 | 91亚洲精| 日日摸日日添日日躁av | 日韩中文字幕在线视频 | 国产精品视频网 | 午夜影院在线视频 | av在线免费观看网址 | 日韩在线小视频 | 97久久久久久 | 午夜在线免费观看 | 一区二区三区视频在线观看 | 久草中文在线观看 | 国产免费色| 韩日在线观看视频 | 日韩有码一区二区三区 | 精品视频成人 | 亚洲欧洲在线观看视频 | 欧美精品一区二区在线观看 | 粉嫩国产精品一区二区在线观看 | 成人毛片视频在线播放 | 国产高清自拍视频在线观看 | 日韩精品免费视频 | 日本午夜在线视频 | 久久九七 | av 一区二区三区 | 欧美日韩在线电影 | 欧美 日韩 国产 在线 | 日韩一区二区三区视频 |