




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 本科生畢業(yè)論文(設計)題目(中文): 塑料大棚恒溫控制器的設計與實現(xiàn) (英文): constant temperature controller design and implementation of the plastic greenhouse 本科畢業(yè)論文(設計)誠信聲明作者鄭重聲明:所呈交的本科畢業(yè)論文(設計),是在指導老師的指導下,獨立進行研究所取得的成果,成果不存在知識產(chǎn)權爭議。除文中已經(jīng)注明引用的內容外,論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的成果。對論文的研究做出重要貢獻的個人和集體均已在文中以明確的方式標明。本聲明的法律結果由作者承擔。本科畢業(yè)論文(設計)作者簽名: 年
2、 月 日目錄摘 要i關鍵詞iabstractikey wordsii1 前言12 任務分析與方案論證32.1 任務分析32.2 兩種方案的比較42.2.1 方案一42.2.2 方案二42.3 實現(xiàn)方法簡述43 硬件電路的設計53.1 單片機最小系統(tǒng)53.1.1 單片機stc12c5a16s253.1.2 按鍵電路73.1.3 顯示電路73.1.4 報警電路83.2 ds18b20溫度傳感器與單片機的接口電路83.2.1 ds18b20溫度傳感器83.2.2 ds18b20的操作時序113.3 繼電器輸出電路123.4 電源電路134 軟件設計144.1 系統(tǒng)流程圖144.2 系統(tǒng)程序模塊的設計
3、144.3 db18b20測量溫度的程序設計154.4 溫度轉換命令子程序175 調試176 總結17參考文獻18致 謝20附錄a:設計電路原理圖21附錄b:設計程序21塑料大棚恒溫控制器的設計與實現(xiàn)摘 要塑料大棚恒溫控制器的設計包括硬件電路設計和系統(tǒng)程序的設計。硬件電路主要包括主控制器,溫度測量電路,溫度控制電路和顯示電路。主控制器采用單片機stc12c5a16s2,溫度傳感器采用美國dallas半導體公司生產(chǎn)的ds18b20,溫度控制電路采用的是繼電器控制外部加熱制冷設備,顯示電路采用3個共陽極led數(shù)碼管。測溫控制電路由溫度傳感器和預置溫度值比較組成,當實際測得的溫度值大于預先設定的溫度
4、,導致光信號報警,并且驅動電風扇工作;當實際溫度低于預先設定的溫度,導致關信號報警,并驅動加熱器工作。系統(tǒng)程序主要包括主程序,測試程序和顯示子程序等。關鍵詞單片機;數(shù)碼顯示管;溫度傳感器ds18b20;控制電路constant temperature controller design and implementation of the plastic greenhouse abstractplastics constant temperature controller design includes hardware circuit design and system program des
5、ign. the hardware circuit mainly includes the main controller, temperature measurement circuit, temperature control circuit and display circuit. main controller by single chip microcomputer stc12c5a16s2, ds18b20 temperature sensor by dallas semiconductor companies in the united states production, te
6、mperature control circuit uses is relay control external heating refrigeration equipment, using three common anode led digital tube display circuit. temperature control circuit is composed of temperature sensor and the preset temperature comparison, when the actual measured temperature value is grea
7、ter than the pre-set temperature, lead to light alarm signal, and work drive electric fan; when actual temperature is lower than the preset temperature, resulting in a warning signal, and drive the heater work. system program mainly includes the main program, the test program and display subroutine,
8、 etc.key wordssingle chip microcomputer; digital tube display; temperature sensor ds18b20; control circuit1 前言中國農(nóng)業(yè)的發(fā)展必須走現(xiàn)代化農(nóng)業(yè)這條道路,隨著國民經(jīng)濟的迅速增長,農(nóng)業(yè)的研究和應用技術越來越受到重視,特別是溫室大棚已經(jīng)成為高效農(nóng)業(yè)的一個重要組成部分。日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,在冶金、食品加工、化工等工業(yè)生產(chǎn)過程中,廣泛使用的各種加熱爐、熱處理爐、反應爐等,都要求對溫度進行嚴格控制。溫度控制,在自動化控制中占有非常重要的地位。單片機系統(tǒng)的開發(fā)應用給現(xiàn)代農(nóng)
9、業(yè)測控領域帶來了一次新的技術革命,自動化、智能化均離不開單片機的應用1。將單片機控制方法運用到溫度控制系統(tǒng)2中,可以克服溫度控制系統(tǒng)中存在的嚴重滯后現(xiàn)象,同時在提高采樣頻率的基礎上可以很大程度的提高控制效果和控制精度。在日常生活中,電烤箱、微波爐、電熱水器、烘干箱等電器也需要進行溫度檢測與控制。傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持,硬件電路復雜,軟件調試復雜,制作成本高。而采用單片機對溫度進行控制,不僅具有控制方便,簡單和靈活等優(yōu)點,而且可以大幅度提高溫度控制的技術指標。測量溫度的關鍵是溫度傳感器,溫度傳感器正從模擬式向
10、數(shù)字式、從集成化向智能化、網(wǎng)絡化的方向發(fā)展。在測溫電路中,可以使用熱敏電阻之類的器件利用其感溫效應,將隨被測溫度變化的電壓或電流采集過來,先進行a/d轉換,然后用單片機進行數(shù)據(jù)的處理,再在顯示電路上,將被測溫度顯示出來。這種設計需要用到a/d轉換電路,因此感溫電路的設計比較復雜。進而想到采用智能溫度傳感器來設計數(shù)字溫度控制器。本數(shù)字保溫控制的設計采用美國dallas半導體公司繼ds1820之后推出的一種改進型智能溫度傳感器ds18b20作為檢測元件3,繼電器控制外部加熱制冷設備,其溫度值可以直接被讀出來,通過核心器件單片機stc12c5a16s2控制溫度的讀寫和顯示,用led數(shù)碼管顯示。在溫度
11、傳感器的選擇上我們采用溫度芯片ds18b20測量溫度。該芯片的物理化學性很穩(wěn)定,且此元件線形較好。在0100攝氏度時,最大線形偏差小于1攝氏度。該芯片直接向單片機傳輸數(shù)字信號,便于單片機處理及控制。本設計的最大特點之一就是直接采用溫度芯片對溫度進行測量,使數(shù)據(jù)傳輸和處理簡單化。采用溫度芯片ds18b20測量溫度,體現(xiàn)了作品芯片化這個趨勢。部分功能電路的集成,使總體電路更簡潔,搭建電路和焊接電路時更快。而且,集成塊4的使用,有效地避免外界的干擾,提高測量電路的精確度。所以芯片的使用將成為電路發(fā)展的一種趨勢。本方案應用這一溫度芯片,也是順應這一趨勢。對于溫度的調節(jié)系統(tǒng)5,我們才用的只是簡單的升溫和
12、降溫方法,當溫度低于我們設定的最低溫度值時,則單片機系統(tǒng)則會通過一個高電平的脈沖電流直接送給繼電器,使連接在繼電器上的加熱器通電產(chǎn)生熱量來提高溫度。如果當溫度高于我們設定的最高溫度值時,則單片機會通過另一個口發(fā)出一個高電平的脈沖電流送個繼電器,使連在繼電器上的電風扇啟動,來降低溫度。在此過程中,我們通過單片機將傳感器所測量出來的溫度通過數(shù)碼管顯示出來。這樣就能觀察到即時的溫度情況,以便更好的驗證系統(tǒng)的性能。按照上述設計功能的要求,確定系統(tǒng)有6個部分組成:主控制器、顯示電路、報警電路、按鍵預置溫度值電路、繼電器輸出電路及溫度傳感電路??刂破魇褂胹tc12c5a16s2,溫度傳感器使用ds18b2
13、0,顯示電路用3位共陽極led數(shù)碼管以動態(tài)掃描法實現(xiàn)溫度顯示,繼電器外接控制加熱制冷設備。系統(tǒng)程序6,7主要包括主程序、溫度控制子程序及顯示子程序等等。綜上所述,本設計以智能集成溫度傳感器ds18b20為檢測元件,以單片機stc12c5a16s2為主控器,用繼電器控制外部的加熱制冷設備,對大棚塑料內的溫度進行控制,便于大棚內的植物生長。該設計同時也適用于人們的日常生活及工農(nóng)業(yè)生產(chǎn)中用于溫度的檢測及控制。2 任務分析與方案論證2.1 任務分析本設計是對溫度進行實時監(jiān)測與控制,即可以測試塑料大棚中的溫度和可設置塑料大棚內適合植物生長的溫度。當溫度低于設定下限溫度時,系統(tǒng)自動報警且自動啟動加熱繼電器
14、加溫,使溫度上升,同時指示燈亮,當溫度上升到下限溫度以上時,停止加溫;當溫度高于設定上限溫度時,系統(tǒng)自動報警且自動啟動電風扇降溫,使溫度下降,同時指示燈亮。當溫度下降到上限溫度以下時,停止降溫。溫度在上下限溫度之間時,執(zhí)行機構不執(zhí)行。三個數(shù)碼管即時顯示溫度,精確到小數(shù)點一位。具體要求如下:(1)、能夠測量溫度,溫度用數(shù)字顯示。(2)、測量溫度范圍-1060,測量精度為0.5。(3)、能夠設置塑料大棚溫度并控制溫度,設定范圍540,且連續(xù)可調。設置溫度用數(shù)字顯示。(4)、溫度控制精度±2。(5)、當超過設定的溫度5時,產(chǎn)生聲、光報警。2.2 兩種方案的比較2.2.1 方案一測溫電路的設
15、計,可以使用熱敏電阻之類的器件,利用其感溫效應,將被測溫度變化的電壓或電流采集過來,進行a/d轉換后,用單片機進行數(shù)據(jù)的處理,在顯示電路上顯示被測溫度,這種設計需要用到a/d轉換電路,感溫電路比較麻煩。2.2.2 方案二考慮使用溫度傳感器,結合單片機進行電路設計,溫度傳感器采用ds18b20,這種芯片可直接讀取被測溫度值,然后再通過單片機stc12c5a16s2控制繼電器,進而控制外部的加熱制冷設備,以達到預設的溫度值。比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計容易實現(xiàn),故采用方案二。2.3 實現(xiàn)方法簡述硬件系統(tǒng)應包括四大模塊:單片機最小系統(tǒng),測溫電路,繼電器輸出電路和電
16、源電路。單片機最小系統(tǒng)負責設置溫度的上下限,數(shù)據(jù)的處理和溫度的顯示;溫度測量電路測量實時溫度;當溫度高于上限溫度或者低于下限溫度時,報警電路產(chǎn)生光和聲音報警,此時繼電器控制加熱制冷設備,只至達到上下限范圍以內,警報電路和繼電器輸出主控制器溫度控制電路報警電路顯示電路溫度傳感器鍵盤電路電路停止工作。設計的方框圖如圖2.1所示。圖2.1 設計方框圖3 硬件電路的設計3.1 單片機最小系統(tǒng)3.1.1 單片機stc12c5a16s2stc12c5a16s2單片機是以51內核為主的系列單片機,stc單片機是宏晶生產(chǎn)的單時鐘/機器周期的單片機,是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全
17、兼容傳統(tǒng)8051,但速度快812倍,內部集成max810專用復位電路。高速10位a/d轉換,針對電機控制,強干擾場合。stc12c5a16s2單片機引腳2如圖3.1所示。圖3.1 stc12c5a16s2單片機主要性能它的主要性能有:(1) 高速:1 個時鐘/機器周期,增強型8051 內核,速度比普通8051 快812 倍。(2) 寬電壓:5.53.8v。(3) 低功耗設計:空閑模式,掉電模式(可由外部中斷喚醒)。(4) 16k 字節(jié)片內flash 程序存儲器,擦寫次數(shù)10 萬次以上。(5) 芯片內有eeprom 功能。(6) 在系統(tǒng)可編程/ 在應用可編程,無需編程器/ 仿真器。(7) 高速s
18、pi 通信端口。(8) 先進的指令集結構,兼容普通8051指令集。引腳的功能:p0.0p0.7(3932):p0口是一個漏極開路型準雙向i/o口。在訪問外部存儲器時,它是分時多路轉換的地址(低8位)和數(shù)據(jù)總線,在訪問期間激活了內部的上拉電阻。在eprom編程時,它接收指令字節(jié),而在驗證程序時,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。p1.0p1.7(1-8):p1口是帶內部上拉電阻的8位雙向i/o口。在eprom編程和程序驗證時,它接收低8位地址。p2.0p2.7(21-28):p2口是一個帶內部上拉電阻的8位雙向i/o口。在訪問外部存儲器時,它送出高8位地址。在對efrom編程和程序驗證期
19、間,它接收高8位地址。p3.0p3.7(10-17):p3口是一個帶內部上拉電阻的8位雙向i/o口。3.1.2 按鍵電路三個輕觸開關組成按鍵電路,因為都是獨立的按鍵所以采用直接接地的方法,另外一段分別接在單片機的p1.5,p1.6,p1.7。這樣電路比較簡單,達到了效果。三個獨立式按鍵可以分別調整溫度的上下限報警溫度,當按下設置鍵一次,數(shù)碼管顯示hxx且 led數(shù)碼管閃爍,這時可以調整報警上限溫度值。按下設置鍵第二次,l xx且數(shù)碼管閃爍,這時可以調整報警下限溫度值。通過“加鍵”可以對設置數(shù)值加。通過“減鍵”可以對設置數(shù)值減。每按一次減1,如圖3.2所示。圖3.2 按鍵電路3.1.3 顯示電路
20、顯示電路采用3位共陽led數(shù)碼管做為溫度值顯示。用三個8550pnp三極作為每一位led管的驅動電路,這樣使得數(shù)碼管電流量更大,亮度更亮。一位共陽極數(shù)碼管顯示攝氏度符號,使得整個顯示電路更加人性化。電路圖8如圖3.3所示。圖3.3 數(shù)碼管電路圖3.1.4 報警電路采用有源蜂鳴器作為報警器,用一個pnp三極管8550作為驅動。蜂鳴器可以在被測溫度超過上限溫度或者低于下限溫度時,發(fā)出報警鳴叫聲音。電路圖9如圖3.4所示:圖3.4 報警電路3.2 ds18b20溫度傳感器與單片機的接口電路3.2.1 ds18b20溫度傳感器測溫系統(tǒng)采用芯片ds18b20,ds18b20是dallas公司的最新單線數(shù)
21、字溫度傳感器,它的體積更小、適用電壓更寬、更經(jīng)濟,ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器,具有一線總線獨特而且經(jīng)濟的特點。溫度傳感器ds18b20作為檢測元件,測溫范圍為55125,最大分辨率可達0.0625。ds18b20可以直接讀出被測量的溫度值,而且采用3線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。引腳圖如圖3.5所示,各腳功能如表3.1所示。圖3.5 db18b20引腳圖表3.1 db18b20引腳的功能序號名稱引腳功能描述1gnd地信號2dq數(shù)據(jù)輸入/輸出引腳。單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3vdd可選擇的vd
22、d引腳。當工作于寄生電源時,此引腳必須接地。ds18b20內部結構組成:(1) 64位光刻rom。rom中的64位序列號是出廠前被光刻好的,它可以看作 是該ds18b20的地址序列碼,開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的crc校驗碼,這也是多個ds18b20可以采用一線進行通信的原因。4位閃速rom的結構如表3.2,ds18b20內部結構如圖3.6所示。表3.28b檢驗crc48b序列號8b工廠代碼(10h)msb lsb msb lsb msb lsb存儲器和控制邏輯暫存器8位crc產(chǎn)生器溫度傳感器觸發(fā)上限th觸發(fā)下限tl64位ro
23、m和單線接口電源檢測dqvdd圖3.6 ds18b20內部結構(2) 高速暫存存儲??梢栽O置ds18b20溫度轉換的精度,ds18b20溫度傳感器的內部存儲器還包括一個高速暫存ram和一個非易失性的可電擦除的e2pram。高速暫存ram的結構為8字節(jié)的存儲器,如表3.2所示,頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數(shù)字轉換分辨率。ds18b20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值表3.2 ds18b20內部存儲器結構byte0溫度測量值lsb(50h)byte1溫度測量值msb(5
24、0h)byte2th高溫寄存器byte3tl低溫寄存器byte4配位寄存器ybyte5預留(ffh)byte6預留(0ch)byte7預留(ioh)byte8循環(huán)冗余碼校驗(crc)(3) 非揮發(fā)的溫度報警觸發(fā)器th和tl??赏ㄟ^軟件寫入用戶報警上下限值。(4) crc的產(chǎn)生。在64 b rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗碼(crc)。主機根據(jù)rom的前56位來計算crc值,并和存入ds18b20中的crc值做比較,以判斷主機收到的rom數(shù)據(jù)是否正確。3.2.2 ds18b20的操作時序ds18b20的一線工作協(xié)議流程是:初始化rom操作指令存儲器操作指令數(shù)據(jù)傳輸。其工作時序包括初始化時
25、序、寫時序和讀時序。主機控制ds18b20完成任何操作之前必須先初始化,即主機發(fā)一復位脈沖(最短為480us的低電平),接著主機釋放總線進入接收狀態(tài),ds18b20在檢測到i/o引腳上的上升沿之后,等待15-60us然后發(fā)出存在脈沖(60-240us的低電平)。 寫時間片:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫起始信號。在15us之內將所需寫的位送到數(shù)據(jù)線上,在15us到60us之間對數(shù)據(jù)線進行采樣,如果采樣為高電平,就寫1,如果為低電平,寫0就發(fā)生。在開始另一個寫周期前必須有1us以上的高電平恢復期。讀時間片:主機將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號。主機
26、在讀時間片下降沿之后15us內完成讀位。每個讀周期最短的持續(xù)期為60us,各個讀周期之間也必須有1us以上的高電平恢復期。ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線接在單片機的p2.0,3腳接電源另一種是寄生電源供電方式,單片機端口接單線總線3,為保證在有效的ds18b20時鐘周期內提供足夠的電流,可用一個mosfet管來完成對總線的上拉。當ds18b20處于寫存儲器操作和溫度a/d轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。3.3
27、 繼電器輸出電路繼電器有常開觸點,常閉觸點。常開觸點在線圈不通電的情況下是斷開的,當線圈中有電流經(jīng)過時,常開觸點閉合;常閉觸點在線圈不通電的情況下是閉合的,當線圈中有電流經(jīng)過時斷開。本設計用到的是繼電器的常開觸點,即在繼電器線圈沒有電流經(jīng)過時是斷開的狀態(tài),當繼電器線圈中有電流經(jīng)過時閉合導通。繼電器實現(xiàn)的是弱電控制強電,單片機是弱電器件,一般情況下它的工作電壓為5v,而本實驗所用的熱得快工作所需電壓為220v屬于強電,強電不能和弱電有任何電器接觸,防止強電進入到單片機內,繼電器起到隔離作用。由于單片機是一個弱電器件,它的工作電壓是5v,驅動電流在ma級以下,而現(xiàn)在要把它用于一些大功率場合,控制熱
28、得快,顯然是不行的。所以,就要有一個環(huán)節(jié)來銜接,這個環(huán)節(jié)就是所謂的“功率驅動”,繼電器驅動就是一個典型的、簡單的功率驅動環(huán)節(jié)。繼電器驅動就是單片機與其他大功率負載接口,起到控制作用,三極管起到放大作用。當外部溫度大于預設溫度時,繼電器輸出電路一工作,驅動電風扇工作,使環(huán)境的溫度降低,直到外部溫度降低到預設的溫度,此時繼電器輸出電路一停止工作,電路圖如圖3.7所示;當外部溫度小于預設溫度時,繼電器輸出電路二工作,驅動加熱器工作,使環(huán)境的溫度升高,當外部的溫度升高到預設的溫度時,繼電器輸出電路二停止工作,電路圖如圖3.8所示。圖3.7 繼電器輸出電路一 圖3.8 繼電器輸出電路二3.4 電源電路本
29、次設計中既有需要5v供電的電路也有需要220v供電的電路,直接接入220v即可,其中有變壓器10可將220v的電壓變?yōu)?v,此外電源與電路之間有一個開關,當短時間內系統(tǒng)不需要工作,可斷開開關,不必要切斷電源,這樣設計更加人性化,用發(fā)光二極管作為電源指示燈。4 軟件設計4.1 系統(tǒng)流程圖是否開始初始化ds18b20設定溫度上、下限顯示當前溫度值判斷當前溫度值超過設定溫度上限低于設定溫度下限燈亮啟動加熱器升高溫度燈亮啟動風扇降低溫度否是圖4.1 系統(tǒng)流程圖4.2 系統(tǒng)程序模塊的設計系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。溫控系統(tǒng)采用模塊化1
30、1程序結構,可以分成以下程序模塊:系統(tǒng)初始化程序:首先完成變量的設定、中斷入口的設定、堆棧、輸入輸出口及外部部件的初始化工作。主程序main:完成鍵盤掃描、溫度值采集及轉換、溫度值的顯示。當溫度值高于設定最高限時,驅動風扇工作,蜂鳴器報警;當溫度值低于設定最低限時,驅動熱得快,蜂鳴器報警。鍵盤掃描程序keyscan:完成鍵盤的掃描并根據(jù)確定的鍵值執(zhí)行相應的功能,主要完成最高溫度、最低溫度的設定。溫度采集程序:完成ds18b20的初始化并發(fā)出溫度轉換命令,經(jīng)過指定時間后讀取轉換的溫度值。4.3 db18b20測量溫度的程序設計ds18b20的一線工作協(xié)議流程是:初始化rom操作指令存儲器操作指令
31、數(shù)據(jù)傳輸。初始化:單線總線上的所有操作均從初始化開始。初始化過程如下:主機通過拉低單線480us以上,產(chǎn)生復位脈沖,然后釋放該線,進入rx接收模式,主機釋放總線時,會產(chǎn)生一個上升沿。單線期間ds18b20檢測到該上升沿后,延時15-60us,通過拉低總線60-240us來產(chǎn)生應答脈沖。rom操作命令:一旦總線主機檢測到應答脈沖,便可以發(fā)起rom操作命令。共有5位rom操作命令。內存操作命令:在成功執(zhí)行了rom操作命令之后,才可以使用內存操作命令。主機可以提供6種內存操作命令。數(shù)據(jù)處理:ds18b20要有嚴格的時序來保證數(shù)據(jù)的完整性。在單線dq上,存在復位脈沖、應答脈沖、寫“0”、寫“1”、讀“
32、0”和讀“1”幾種信號類型。其中,除了應答脈沖之外,均由主機產(chǎn)生。數(shù)據(jù)位的讀和寫則是通過使用讀、寫時隙實現(xiàn)的。當ds18b20接收到溫度轉換命令后,開始啟動轉換,轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當符號位s0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。部分溫度對應值如表4.1所示。表4.1 一部分溫度對應值表溫度/二進制表示十六進制表示+12500
33、00 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h4.4 溫度轉換命令子程序溫度轉換
34、命令子程序主要是溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法,來等待轉換的完成。溫度轉換命令子程序流程圖如圖4.2所示發(fā)ds18b20復位命令發(fā)跳過rom命令發(fā)溫度轉換開始命令結束圖4.2 溫度轉換流程圖5 調試連接好電路后,設置溫度,用打火機在溫度傳感器ds18b20附近使溫度升高,當溫度超過預設溫度上限時,此時電風扇開始工作,滅掉打火機,當溫度回到預設溫度上限以下時,電風扇停止工作;當用冰塊在溫度傳感器ds18b20附近使溫度降低,當溫度低于預設溫度下限時,此時加熱器工作,拿開冰塊,使溫度升高,當溫度達到預設溫度下限以上時,加熱器停止加
35、熱,經(jīng)多次實驗,與設想的結果一致,誤差為±2。但是讀取溫度值時,出現(xiàn)的現(xiàn)象是溫度在判斷時出現(xiàn)錯誤,使風扇存在忽快忽慢的變化,蜂鳴器也不斷的蜂鳴報警。解決的方法是在讀取溫度判斷時加延時,并且多次判斷,防止跳變。6 總結本次設計使用的溫度控制器結構簡單、測溫比較準確,具有一定的實際應用價值。該溫度控制器只是ds18b20在溫度控制領域的一個簡單實例,還有許多需要完善的地方,在做實物的時候,也出現(xiàn)不少問題,剛開始我使用的是腐蝕電路板法,這種辦法雖然美觀,但不利于改進,所以我第二次用的是直接焊接的方法,可以在電路板上進行改裝,另外還有一個不足的地方的是,我加熱設備用的是熱的快,加熱時必須放在
36、水中,在封閉的環(huán)境中,加熱時會生成水珠,影響溫度的測量,本想用電熱爐的,但是成本太高;本設計還可以進一步的改進,讓它更加智能,就是將測得的溫度通過單片機與通訊模塊相連接,以手機短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進行監(jiān)控。此外,還能廣泛地應用于其他一些工業(yè)生產(chǎn)領域,如建筑,倉儲等行業(yè),也可以應用于多種場合,像的溫度、育嬰房的溫度、水溫的控制。用戶可靈活選擇本設計的用途,有很強的實用價值。此外,在本次設計的過程中,我發(fā)現(xiàn)很多的問題,這次設計真的讓我長進了很多,我真正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經(jīng)常的寫與讀的過
37、程中才能提高,這就是我在這次課程設計中的最大收獲。參考文獻1 李光飛,樓然苗,胡佳文等.單片機課程設計實例指導m.北京:北京航空航天大學出版社,2004:105125.2 余錫存,曹國華.單片機原理及接口技術(第二版)m.西安:西安電子科技大學出版社,2007:2735.3 馬云峰.單片機與數(shù)字溫度傳感器ds18b20的接口設計j.計算機測量與控制,2002:278280.4 高吉祥.模擬電子技術(第二版)m. 北京:電子工業(yè)出版社,2007:1442.5 沙占友. 單片機外圍電路設計m. 北京:電子工業(yè)出版社,2003:3748.6 譚浩強,c程序設計(第三版) m. 北京:清華大學出版社,
38、2006:1725.7 鄭阿奇.visual c+ 使用教程 m. 北京:電子工業(yè)出版社,2007:2343.8 吳瑋瑋,protel 99簡明應用教程m.西安:陜西國防學院電子教研室,2006:1544.9 程路,鄭毅,向先波.protel 99se 電路板設計與制作m.北京:人民郵電出版,2007:1527.10 袁小平.電子技術綜合設計教程(第一版)m.北京:機械工業(yè)出版社,2008:15-31.11 嚴蔚敏,吳偉民.數(shù)據(jù)結構 m.北京:清華大學出版社 ,2007:90115.致 謝附錄a:設計電路原理圖 電路圖附錄b:設計程序#include <stc12c5a60s2.h>
39、;#include <intrins.h>#define unchar unsigned char#define uint unsigned intcode unsigned char seg7code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf; /不帶小數(shù)點的共陽數(shù)碼管段碼code unsigned charseg7codeb=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff,0xbf; /帶小數(shù)點的共陽數(shù)碼管段碼sbit key_up=p16
40、; /上調溫度sbit key_down=p17; /下調溫度sbit key_set=p15; /設定鍵(溫度設定,長按開電源) sbit ledonec=p26; /led ds1控制(百位)sbit ledtwoc=p25; /led ds2控制(十位)sbit ledthreec=p24; /led ds3控制(個位)sbit dq=p20; sbit hout=p37; /繼電器輸出器輸出sbit hled=p36;sbit lout=p35;sbit lled=p34;sbit bell=p33;unsigned int shangxian; /上限報警溫度,默認值為38unsig
41、ned int xiaxian; /下限報警溫度,默認值為5uchar data wendu3;uchar user_set4;unsigned char l,h,j,k,fuhao,fg,fg1;unsigned int temp,num;/*ds18b20延時函數(shù)*/void delay(unsigned int i)while(i-);/*初始化ds18b20*/void ds18b20_init(void)unsigned char i;bit flag;while(flag=0)dq=1;delay(20);dq=0;delay(200);dq=1;delay(10);while(1
42、)i=dq;if(i=0)flag=1;delay(50);break;flag=0;/*主機發(fā)送一個字節(jié)的數(shù)據(jù)到ds18b20的子程序*/void ds18b20_write(unsigned char date)unsigned char i;for(i=8;i>0;i-)dq=0;dq=date&0x01;delay(20);dq=1;date>>=1;delay(15);/*主機從ds18b20讀取一個字節(jié)子程序*/unsigned char ds18b20_read(void)unsigned char i,date;for(i=8;i>0;i-)dq
43、=0;date>>=1;dq=1;if(dq=1) / 檢測總線當前位的高低,如果為低就跳過,繼續(xù)下一個循環(huán) date=date|0x80;/如果為高,就把date的當前位也置高,繼續(xù)下一個循環(huán) delay(15);return(date);/*溫度顯示*/ void temp_read(void)ea=0; ds18b20_init(); ds18b20_write(0xcc);ds18b20_write(0x44);delay(300);ds18b20_init();ds18b20_write(0xcc);ds18b20_write(0xbe);l=ds18b20_read()
44、;h=ds18b20_read();delay(200);k=h&0x08;/提取h的第4位if(k=0x08)/檢測h的第4位是否為1 fuhao=1;/負溫度符號的掃描位碼 temp=(h*256)+l);/把h左移8位,加上l后再按位取反temp=temp+1; temp=temp*0.625;/把取反后的值乘以0.625得到10進制實際溫度值再擴大100倍,精確到小數(shù)點后面2位數(shù)(h和l的值計算的時候由軟件自動轉換成10進制)else fuhao=0;/如果溫度為正值,符號位就不顯示 temp=(h*256)+l)*0.625;/把h左移8位,加上l后的值乘以0.625得到10
45、進制實際溫度值再擴大100倍,精確到小數(shù)點后面2位數(shù) ea=1; /*顯示函數(shù)*void wendu_display(void) if(fuhao=0) if(temp>=1000)temp=99.9; /設置顯示最大值 ledonec=0; p0=seg7codetemp%1000/100; delay(120); ledonec=1; p0=0xff; ledtwoc=0; p0=seg7codebtemp%100/10; delay(120); ledtwoc=1; p0=0xff; ledthreec=0; p0=seg7codetemp%10; delay(120); ledt
46、hreec=1; p0=0xff; if(fuhao=1) /溫度為負時顯示的數(shù)據(jù) ledonec=0; p0=seg7code11; delay(120); ledonec=1; p0=0xff; ledtwoc=0; p0=seg7codetemp/10; delay(120); ledtwoc=1; p0=0xff; ledthreec=0; p0=seg7codetemp%10; delay(120); ledthreec=1; p0=0xff; /*進入設置顯示畫面*/void xiaxian_disp(void) /下限設置界面 ledonec=0; p0=0xc7; delay(
47、50); ledonec=1; p0=0xff; ledtwoc=0; p0=seg7codexiaxian/10; delay(50); ledtwoc=1; p0=0xff; ledthreec=0; p0=seg7codexiaxian%10; delay(50); ledthreec=1; p0=0xff; void shangxian_disp(void) /上限設置界面 ledonec=0; p0=0x89; delay(50); ledonec=1; p0=0xff; ledtwoc=0; p0=seg7codeshangxian/10; delay(50); ledtwoc=1
48、; p0=0xff; ledthreec=0; p0=seg7codeshangxian%10; delay(50); ledthreec=1; p0=0xff; /*eeprom部份*/* 關閉 ispiap 功能 *void isp_iap_disable(void)iap_contr = 0x00;iap_cmd = 0x00; iap_trig = 0x00;iap_addrh=0x00;iap_addrl=0x00;ea = 1; /開中斷/*字節(jié)讀*uchar byte_read(uint byte_addr)iap_contr = 0x85; /開啟isp/iap;并送等待時間
49、iap_cmd = 0x01; /送字節(jié)讀命令字 iap_addrh = (uchar)(byte_addr >>8); /送地址高字節(jié)iap_addrl = (uchar)(byte_addr &0x00ff); /送地址低字節(jié)ea = 0; /關中斷iap_trig = 0x5a; /送觸發(fā)命令字 0x46、0xb9iap_trig = 0xa5;_nop_();isp_iap_disable(); /關閉isp/iap功能ea = 1; /開中斷return (iap_data);/*字節(jié)編程*void byte_program(uint byte_addr ,uch
50、ar isp_iap_data)iap_contr = 0x85; /開啟isp/iap;并送等待時間iap_cmd = 0x02; /送字節(jié)編程命令字 iap_addrh = (uchar)(byte_addr >>8); /送地址高字節(jié)iap_addrl = (uchar)(byte_addr &0x00ff); /送地址低字節(jié) iap_data = isp_iap_data; /送數(shù)據(jù)進isp_dataea = 0; /關中斷iap_trig = 0x5a; /送觸發(fā)命令字 0x46、0xb9iap_trig = 0xa5;_nop_();isp_iap_disable(); /關閉isp/iap功能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寧波工程學院《古典油畫技法》2023-2024學年第二學期期末試卷
- 復旦大學《證券投資技術分析》2023-2024學年第二學期期末試卷
- 河北大學《建筑工程質量與安全》2023-2024學年第二學期期末試卷
- 長春師范大學《JavaScrpt應用技術》2023-2024學年第二學期期末試卷
- 懷化師范高等??茖W?!队變航處煂I(yè)發(fā)展與研究》2023-2024學年第二學期期末試卷
- 曲靖師范學院《證券投資技術分析》2023-2024學年第二學期期末試卷
- 鐘山職業(yè)技術學院《電路與電子技術B1》2023-2024學年第二學期期末試卷
- 四川美術學院《建筑類專業(yè)寫作》2023-2024學年第二學期期末試卷
- 平頂山工業(yè)職業(yè)技術學院《太陽能及其利用技術》2023-2024學年第二學期期末試卷
- 重慶電信職業(yè)學院《企業(yè)理論》2023-2024學年第二學期期末試卷
- 心臟解剖演示文稿
- GB∕T 28575-2020 YE3系列(IP55)三相異步電動機技術條件(機座號63~355)
- 2022醫(yī)院設備科工作制度
- 【23精品】蘇少小學美術三下教案全冊
- 房屋租賃(出租)家私清單
- 倉儲貨架ppt課件
- 《保健按摩師》(五級)理論知識鑒定要素細目表
- 陳日新腧穴熱敏化艾灸新療法上篇
- PID烙鐵恒溫控制器設計與制作_圖文
- wincc全套腳本總結
- 簡易瞬態(tài)工況法1
評論
0/150
提交評論