基于單片機實現的溫度控制器課程設計_第1頁
基于單片機實現的溫度控制器課程設計_第2頁
基于單片機實現的溫度控制器課程設計_第3頁
基于單片機實現的溫度控制器課程設計_第4頁
基于單片機實現的溫度控制器課程設計_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西華大學課程設計說明書目錄1前言12總體方案23單元模塊設計33.1 DS18B20溫度檢測電路33. 2單片機電路43. 3顯示電路53. 4報警電路53. 5 DS18B20溫度傳感器簡介63.5.1溫度的采集和轉換635. 2 DS18B20的工作原理74軟件設計10第0頁114.1系統調試寫入子程序124.1系統調試讀出溫度子程序5系統調試136總結與體會147參考文獻15附錄:設計程序161前言社會在發展,科技在進步,測溫儀器在各個領域的應用,各種溫度控制系統迅速發 展。近年來,溫度控制系統已廣泛應用各個方面,然而溫度控制一直是一個未開發的領 域,卻乂是與人們息息相關的一個實際問題。

2、針對這種實際情況,設計一個溫度控制系 統,具有廣泛的應用前景與實際意義。溫度是一個重要的物理量,它反映了物體的冷熱程度,與自然界中的各種物理與化 學過程相聯系,再生產過程中,各個環節都與溫度有緊密聯系,因此人們非常重視溫度 的測量。溫度概念的產生及溫度的測量都是以熱平衡為基礎,當兩個冷熱程度不同的物 體接觸后就會產生導熱,換熱,換熱結束后兩物體處于平衡狀態,因此他們具有最本質 的性質。溫度控制系統對溫度進行檢測和控制,任何工廠在生產過程中如果沒有合適的溫度 環境,很多的器件祺至是電子設備都不能正常的工作,從而多生產的產品質量有很大的 影響,所以各行各業對溫度的要求的愈來愈高,所以,溫度控制系統

3、的作用非常重要。溫度控制系統的控制系統是溫度,在我們日常生活中,溫度控制使非常重要的,在 溫室、水池、電源等場所不能對溫度有效的控制,則會出現很多事故,所以為了避免此 類事故的發生,溫度控制應當受到重視。本設訃不僅實現了對溫度的檢測,還實現了溫度控制、顯示功能,當溫度大于設定 的溫度時,報警器報警;當溫度小于設定的值時,報警器不報警,從而實現對溫度的控 制,并且還可以實現按鍵復位功能。2總體方案方案一溫度測量的設汁,可以釆用熱敬溫度傳感器等對溫度進行測量,在將被測溫度變化 的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數據的處理,在顯示液 晶顯示屏上,就可以將被測溫度顯示出來,這種

4、設計需要用到A/D轉換電路,感溫電路 比較麻煩。運用這種方案時模擬信號在傳輸過程中存在損耗并且容易受到外界的干擾, 導致測量溫度不準確。圖2.1溫度檢測流程圖方案二使用溫度傳感器DS18B20直接對溫度進行檢測和轉換,在結合89C52單片機與1602 液晶顯示器就能對溫度進行顯示。比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計容易實現, 故實際設計中擬釆用方案二。本設計方框圖如圖1. 1所示,它曲四部分組成:控制部分主芯片采用單片機 89C52;顯示部分采用LCD1602液晶顯示器實現溫度顯示;溫度采集部分采用 DS18B20溫度傳感器。報警裝置DS18B2O89C52單片機

5、LCD1602液晶顯示報警裝置圖2. 2溫度控制電路總體設計方案DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳 感器,完成對溫度信號的采集和轉換工作,數字溫度傳感器DS18B20把采集到的溫度通 過P1. 7引腳傳到單片機,單片機接受溫度并存儲并通過P0 口連接LCD160數字液晶顯 示器顯示。通過P1.0 口接報警裝置,實現報警功能。3單元模塊設計 3. 1 DS18B20溫度檢測電路5VU2VCC DQ GND27.0DS18B2O圖3. 1溫度檢測電路溫度檢測電路采用智能溫度傳感器DS18B20,它與單片機相連只需要3線,減少了 外部的硬件電路。DS1

6、8B20主要性能特點如下:(1) 測溫的范圉為一55125°C,最大分辨率可以達到0. 0625°C;(2) 電源電壓范圍為3. 05. 5V;(3) 供電模式:寄生供電和外部供電;(4) 封裝形式有兩種:3腳的T0-92封裝和8腳的S0IC封裝;(5) 可編程的溫度轉換分辨率,分辨率為912位(包括1位符號位),山配置寄存器決 定具體位數,配置寄存器的格式如表3-1所示。表3-1配置寄存器格式TMR1R011111其中R1 R0是用來設定分辨率的,分辨率的定義如表3-2所示。表3-2 DS18B20分辨率的怎義R1R0分辨率/位溫度最大轉換時間/ms00993. 7501

7、10187.510113751112750山表3-2可以看出,分辨率設定得越高,溫度轉換所需要的時間就越長,因此應根據實際應用的需要來選擇合適的分辨率。本文中選取12位分辨率,每隔1秒檢測一次溫度。3. 2單片機電路單片機電路如圖3. 2所示,U1圖3. 2單片機電路AT89C52是一款超強抗干擾/高速/低功耗的單片機,AT89C52是一個低電壓,高性能 CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 byte s的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生 產,兼容標準MCS-51指令系統,片內置通用8位中央處

8、理器和Flash存儲單元,功能 強大的AT89C52單片機可為您提供許多較復雜系統控制應用場合。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中 斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C52可 以按照常規方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微 處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開 發成本。3. 3顯示電路顯示模塊釆用的是LCD1602液晶顯示如圖3. 3o單片機微控制器通過對當前溫度傳 感器進行讀取獲得當前溫度值,通過一定的運算后經LCD1

9、602液晶顯示屏顯示出來。芯 片的工作電壓是4. 5-5. 5V,能顯示兩行,每行顯示16個字符。除電壓、背光引腳及8 個I/O引腳外,主要的控制引腳還有數據/命令選擇RS引腳,該引腳為高電平時表示I/O 引腳出現的是數據,該引腳為低電平時表示I/O引腳出現的是命令;讀/寫選擇R顱引腳 及使能引腳E(該引腳為高電平時對LCD1602的操作才有效)。LCDLM016Ls a lu=I CM C3970<=>0.2 9p03 100-4 11T0.5 1211圖3.3 LCD1602液晶顯示3. 4報警電路報警電路采用蜂鳴器作為發生裝置,當溫度高于設定的上限值時,蜂鳴器發出報 警聲作為

10、提醒,蜂鳴器會一直發出聲音直到溫度低于設定上限值。3. 5 DS18B20溫度傳感器簡介3. 5.1溫度的采集和轉換DS18B20的測溫原理如圖3. 4所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響 很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其 震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門, 當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完 成溫度測量。計數門的開啟時間山高溫度系數振蕩器來決定,每次測量前,首先將-55 °C 所對應的基數分別置入減法計數器1和溫度寄存器中,減法訃數器1和

11、溫度寄存器被預 置在-55 °C所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行 減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的 預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數, 如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中 的數值即為所測溫度。斜坡式累加器用于補償和修正測溫過程中的非線性,其輸出用于 修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達 到被測溫度值。圖3. 4溫度測量電路DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的

12、溫度值就以16位帶 符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節。單片機可以通過單 線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625C/LSB形式表 示。當符號位s=o時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制; 當符號位S = 1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數 值,表3-3是一部分溫度值對應的二進制溫度數據。表3-3溫度與數拯的關系溫度廠C數據輸出(二進制)數據輸出(十六進制)+125000000001111101000FA+2500000000001100100032+1/200000000000000010

13、00100000000000000000000-1/21111111111111111FFFF-251111111111001110FFCE1111111110010010FF923. 5. 2 DS18B20的工作原理DS18B20的共做時序(1)初始化時序i?待控別器RX X K4S0uslS0us-960us圖3.5初始化時序圖總線上的所有傳輸過程都是以初始化開始的,主機響應應答脈沖。應答脈沖使主機 知道,總線上有從機設備,且準備就緒。主機輸出低電平,保持低電平時間至少480us, 以產生復位脈沖。接著主機釋放總線,上拉電阻將總線拉高,延時1560us,并進入接 受模式,以產生低電平應答

14、脈沖,若為低電平,再延時480us。亠擰制器寫時間間* PJ;(60vi3< TX< 12012 亠擰制器寫“1" “寸們川可亠*PJ;(luS< TREC亠1If(2 )寫時序15u a-VC、7 vz ul 二當主機把數據線從邏輯高電平拉到低電平的時候,寫時序開始。有兩種惜況,寫1 時間間隙和寫0時間間隙,所以寫時間間隙最少持續60us,包括兩個寫周期至少lus 的恢復時間,I/O線電平變低后,DS18B20在一個5us到60us的窗口內對I/O線釆樣, 如果線上時高電平,就是寫1,如果線上是低電平,就是寫0。(3)讀時序圖3. 7讀時序圖總線器件僅在主機發出讀

15、時序是,才向主機傳輸數據,所以,在主機發出讀數據命 令后,必須馬上產生讀時序,以便從機能夠傳輸數據。所有讀時序至少需要60us。當主 機把高電平拉到低電平時寫時間開始,在2次獨立的讀時序之間至少需要lus的恢復時 間。每個時序都山主機發起,至少拉低總線lus。主機在讀時序期間必須釋放總線,并 且在時序起始后的13us之內采樣總線狀態。主機輸出低電平延時2us,然后主機轉入輸 入模式延時12us,然后讀取總線當前電平,然后延時50uso西華大學課程設計說明書DS18B20溫度流程圖38 DS18B20溫度流程圖ROM操作命令表3-4 ROM操作命令指令約定代碼功能讀ROH33H讀DS18B20R

16、0M中的編碼符合ROM55H發岀此命令之后,接著發出64位ROM編碼,訪問單線總線與改 變碼相對應得DS18B20使之做出響應,為下一步對該DS18B20 的讀寫做準備搜索ROMOFOH讀ROM跳過ROMOCCH忽略64位ROM地址,直接向DS18B20發溫度變換命令,適用于 單片工作告警搜索ROMOECH執行后,只有溫度超過設定值上限或者下限的片子才做出響應溫度變換14H啟動DS18B20進行溫度轉換,轉換時間最長為500MS,結果存 入內部9字節RAM中讀暫存器OBEH讀內部RAM中9字節的內容寫暫存器1EH發出向內部RAM的第3, 4字節寫上、下限溫度數據命令,緊跟 讀命令之后,是傳送兩

17、字節的數據復制暫存器18H將E:PRAM中第3, 4字節內容復制到E2PRAM中重調E2PRAMOBBH將于PRAM中內容恢復到RAM中的第3, 4字節讀供電方式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發送“0”,外接 電源供電DS18B20發送“1”第0頁西華大學課程設計說明書4軟件設計高級語言是面向問題和汁算過程的語言,它可通過于各種不同的計算機,用戶編程 時不必仔細了解所用的計算機的具體性能與指令系統,而且語句的功能強,常常一個語 句已相當于很多條計算機指令,于是用高級語言編制程序的速度比較快,也便于學習和 交流,而MCS-52指令系統的指令長度較短,它在存儲空間和執

18、行時間方面具有較高的 效率,編成的程序占用內存單元少,執行也非常的快捷,與本系統的應用要求很適合。 而且MCS-52指令系統有豐富的位操作(或稱位處理)指令,可以形成一個相當完整的 位操作指令子集,這是MCS-52指令系統主要的優點之一。對于要求反應靈敏與控制及 時的工控、檢測等實時控制系統以及要求體積小、系統小的許多“電腦化”產品,可以 充分體現出匯編語言簡明、整齊、執行時間短和易于使用的特點。圖4. 1系統總流程圖系統程序主要有主程序和LCD1602初始化子程序及讀寫時序程序、DS18B20復位及 讀寫時序子程序溫度數字處理子程。4. 1系統調試讀出溫度子程序圖42讀岀溫度子程序讀出溫度子

19、程序的主要功能是讀出RAM中的9字節,在讀出時需進行CRC校驗,校 驗有錯時不進行溫度數據的改寫。DS18B20的各個命令對時序的要求特別嚴格,所以必 須按照所要求的時序才能達到預期的U的,同時,要注意讀進來的是高位在后低位在前, 共有12位數,小數4位,整數7位,還有一位符號位。第0頁4. 2系統調試寫入子程序P1.0涪零卩延時口帶進位右移QP1.01零圖4. 3寫入子程序流程圖西華大學課程設計說明書5系統調試硬件調試是對溫度顯示器LCD1602進行調試,溫度顯示器通電后不顯示溫度,使用 示波器對LCD1602、單片機的每個管腳進行測試,對其進行分析是由于電阻值過大,調 節滑動變阻器減小其阻

20、值,液晶顯示器顯示溫度為0。軟件調試是在溫度大于31°C,而報警器不報警,經檢查,發現是溫度寫成31000o 多寫了兩個0,改正過后乂發現報警器在溫度大于31°C時,只響一次。把如下程序的二 改為就排出了這個異常。void main()init_play() ;/初始化顯示while (1)read_temp() ;/讀取溫度dsl820disp() ;/顯示if(tvalue>310)Beef二0;elseBeef二1;第o頁西華大學課程設計說明書6總結與體會本設計使用的溫度控制器結構簡單、測溫準確,具有一定的實際應用價值。該溫度 控制器只是DS18B20在溫度控制

21、領域的一個簡單實例,還有許多需要完善的地方,例如 可以將測得的溫度通過單片機與通訊模塊相連接,以手機短消息的方式發送給用戶,使 用戶能夠隨時對溫度進行監控。此外,還能廣泛地應用于其他一些工業生產領域,如建 筑,倉儲等行業。本溫度控制系統可以應用于多種場合,像育嬰房的溫度、水溫的控制。 用戶可靈活選擇本設計的用途,有很強的實用價值。通過這次課程設訃,讓我對單片機有了進一步的了解、鞏固和加深,并且對所學知 識的得以實際應用。與我所學芯片再一次零距離接觸,進一步加深我對各個芯片的功能 和特性的了解。微機控制與接口技術課程設計是培養學生綜合運用所學知識,發現、提出、分析和 解決實際問題,鍛煉實踐能力的

22、重要環節,是對學生實際工作能力的具體訓練和考察過 程.回顧起此次課程設訃,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐, 在短短的兩個星期的日子里,可以說得是苦多于甜,但是可以學到很多很多的的東西, 同時不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。 通過這次微機控制與接口技術的課程設計使我懂得了理論與實際相結合是很重要的,只 有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結 論,從而提高自己的實際動手能力和獨立思考的能力。在此次溫度控制器的設計過程中,讓我了解到了現代電子產品的設計和工作原理。 以前在實際生活中看到的電子產品例如彩燈

23、、交通燈、電磁爐、電飯煲等,就只會用他 們并不知道他們的工作原理,通過這次課程設計對這些產品的原理有了深入的了解。同時這次課程設計大大提高了我的動手能力,為我以后的工作和學習奠定了基礎, 在以后的生活中我也可以用我所學的知識和對芯片功能的了解來設計一些日常生活所 需的電子產品。實訓時間很短,但是通過這次實訓可以學到很多書本沒有的東西,有了這一次的實 踐經驗,我們的動手能力和思維能力也相應的得到了的提高,這次實訓進一步鍛煉了自 己的邏輯思維能力,并從中總結出寶貴的經驗。最后,在此感謝陳老師的細心指導,也同樣謝謝其他各位同學的無私幫助!7參考文獻11.張毅剛主編.單片機原理及應用.北京:高等教育出

24、版社.2003;2 .曹承志 等主編.微型汁算機控制技術.北京:化學工業出版社.2008;3 .康華光主編.電子技術基礎模擬部分(第五版).北京:高等教育出版社.2006;4 .譚浩強著.C程序設計.北京:清華大學出版社.2005;51.王心水主編.一種基于單片機的多功能溫度控制器額設計.曲阜師范大學信息技術與傳播學院;61.胡學海主編.單片機原理及應用系統設計M.北京:京電子工業出版社.2005:71.李廣弟.單片機基礎M.北京:北航出版社.2010。第0頁附錄:設計程序#include<reg52 h>#include"dsl820. h"#include&

25、quot;1602 h" sbit Beef二Pl;extern uchar disdata5;extern uint tvalue;/溫度值extern uchar tflag;/溫度正負標志功 能:將18B20采集的溫度數據在1602顯示出來*輸入參數:無*返回值:無*void dsl820disp()/溫度值顯示uchar flagdat; disdata0Z=tvalue/1000+0x30;/d 位數 disdatal=tvalue%1000/100+0x30;/十位數 disdata 2 =tvalue%100/10+0x30; /個位數 di sdata 3 j =tv

26、alue%10+0x30; / / 小數位 if(tflag=0)flagdat=0x20;/正溫度不顯示符號else flagdat=0x2d;/負溫度顯示負號:-if(disdata0=0x30)disdata01=0x20;/如果百位為0,不顯示if(disdata1=0x30)disdata1二0x20;/如果百位為0,十位為0也不顯示 wr_com(OxcO);wr_dat (flagdat) ;/顯示符號位wr_com(Oxcl);wr_dat (disdataOJ) ;/顯示百位wr_com(0xc2);wr_dat (disdatafll) ;/顯示十位wr_com(0xc3)

27、;wr_dat (disdata2j) ;/顯示個位wr_com(0xc4);wr_dat (0x2e) ;/顯示小數點wr_com(0xc5);wr_dat (disdata31) :/顯示小數位/* 上程序*/ void main()init_play() ;/初始化顯示while (1)read_temp() ;/讀取溫度dsl820disp() ;/顯示if(tvalue>310)Beef二0;elseBeef二1;/* DS1820. C*/#include<reg52. h> #include"dsl820.h" uchar disdatd5;

28、 uint tvalue;/溫度值 uchar tflag;/溫度正負標志 void delay_18B20(unsigned int i)/延時 1 微秒 while(i);功 能:dsl820復位 * 輸入參數:無返回值:無*void ds 1820rst () /*ds 1820 復位*/unsigned char x=0;DQ = 1;/'DQ 復位delay_18B20(4) ;/延時DQ = 0;/DQ 拉低delay_18B20 (100) ; /精確延時大于 480usDQ - 1;/拉咼delay_18B20(40);功 能:dsl820讀數據*輸入參數:無返回值:d

29、at*uchar dsl820rd()/*讀數據*/unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i)DQ = 0; /給脈沖信號 dat»=l;DQ = 1; 給脈沖信號辻(DQ)dat 二0x80; delay_18B20(10);return(dat);功能:dsl820寫數據*輸入參數:wdata 返回值:無 *歡*歡*歡*歡*歡*歡*void dsl820wr (uchar wdata)數據*/unsigned char i=0;for (i二8; i>0; i)DQ = 0;DQ = wdata&am

30、p;OxOl;delay_18B20(10);DQ = 1; wdata»=l;功 能:dsl820讀取溫度*輸入參數:無 返回值:tvalueuint read_temp ()/ *讀取溫度值并轉換*/uchar a, b;dsl820rst();dsl820wr (Oxcc) ;/*跳過讀序列號*/ 西華大學課程設計說明書dsl820wr (0x44) ;/*啟動溫度轉換*/ dsl820rst();dsl820wr (Oxcc) ;/*跳過讀序列號*/ dsl820wr(0xbe) ;/*讀取溫度*/ a=dsl820rd();b=dsl820rd();tvalue=b;tva

31、lue«=8;tvalue=tvalue a;if(tvalue<OxOfff)tflag=O;elsetvalue=tvalue+l;tflag=l;tvalue=tvalue* (0. 625);/溫度值擴大10倍,精確到1位小數 return(tvalue);/*15Q2. c*/#include/z1602. h" unsigned char code str 1 = z,temperature: "unsigned char code str2 = z,"void delaylms(unsigned int ms)/延時 1 毫秒(不夠精確的)unsigned int i,j;for (i=0; i<ms; i

溫馨提示

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

評論

0/150

提交評論