基于單片機的溫度采集系統畢業(yè)論文_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設 計(論 文)</p><p>  題 目: 基于單片機的溫度采集系統 </p><p>  學 院: 電子工程學院 </p><p>  系 部: 光電子技術系 </p><p>  專

2、業(yè): 光電信息工程 </p><p>  班 級: </p><p>  學生姓名: </p><p>  導師姓名: 職稱: 工程師 </p><p>  

3、起止時間:2011年 3月 28日至2011年 7月1日</p><p>  畢業(yè)設計(論文)任務書</p><p><b>  任務與要求</b></p><p>  畢 業(yè) 設 計 (論文) 工 作 計 劃</p><p>  畢業(yè)設計(論文)開題報告</p><p>  電子工程 學院

4、 光電子技術 系</p><p>  光電信息工程 專業(yè) 2007級 光電0703 班</p><p>  課題名稱:基于單片機的溫度采集系統研制</p><p>  學生姓名: 學號: </p><p>  指導教師: </p><p>  報告日期:

5、 2011年3月25日 </p><p><b>  說明:</b></p><p>  本報告必須由承擔畢業(yè)論文(設計)課題任務的學生在畢業(yè)論文(設計) 正式開始的第1周周五之前獨立撰寫完成,并交指導教師審閱。</p><p><b>  目錄</b></p><p><b&g

6、t;  摘 要I</b></p><p>  AbstractII</p><p><b>  引 言1</b></p><p><b>  第一章、緒論2</b></p><p>  1.1整個任務的背景與目的2</p><p><b>

7、  1.2方案分析2</b></p><p>  1.3 論文內容安排3</p><p>  第二章 硬件設計4</p><p>  2.1 系統框圖4</p><p>  2.2 模塊簡介5</p><p>  第三章 系統中選用的幾種器件的介紹9</p><p>  

8、3.1 AT89S52單片機9</p><p>  3.1.1 AT89S52特性9</p><p>  3.1.2 MCS-51單片機中斷系統10</p><p>  3.2 DS18B20溫度轉換芯片12</p><p>  3.3 數碼管16</p><p>  第四章 軟件設計17</p&

9、gt;<p>  4.1 整體功能概述17</p><p>  4.2 DS18B20復位子程序18</p><p>  4.3寫命令子程序19</p><p>  4.4讀操作子程序20</p><p>  4.5讀溫度子程序22</p><p>  4.6 DS18B20模式選擇23<

10、;/p><p>  第五章 問題及解決方法24</p><p>  5.1 調試中出現的問題及解決方法:24</p><p>  5.2 最終結果24</p><p><b>  第六章 結論26</b></p><p><b>  致 謝27</b></p>

11、;<p><b>  參考文獻28</b></p><p><b>  摘 要</b></p><p>  溫度測量在物理、醫(yī)療、食品生產等諸多領域,尤其在熱學實驗中,有非常重要的意義?,F在所使用的溫度計通常都是精度為1℃和0.1℃的水銀、煤油或酒精溫度計。這些溫度計的刻度間隔通常都很密,不容易準確分辨,而且它們的熱容量還比較大

12、,達到熱平衡所需的時間較長,因此很難讀準,并且使用非常不方便。而基于單片機的溫度采集系統可以解決這些問題。</p><p>  本文介紹了一種溫度采集系統的設計思路,以AT89S52單片機為核心,控制DS18B20芯片進行溫度數據采集處理,采用四位數碼管顯示的硬件設計方案。系統通過DS18B20芯片的復位,讀寫時序進行溫度數據的轉換處理,再通過數碼管的顯示完成溫度數據的采集。由獨立按鍵進行模式轉換,并由中斷按鍵完

13、成報警溫度上下限的設置,利用定時器進行采集溫度的報警檢測。整個系統硬件設計包括獨立按鍵電路、數碼管顯示電路、DS18B20溫度采集電路;軟件設計包括溫度轉換,數據處理,復位,讀寫時序,顯示,中斷,定時器等模塊。 </p><p>  關鍵詞: AT89S52單片機 DS18B20芯片 溫度采集 </p><p><b>  Abstract</b><

14、;/p><p>  Temperature measurement in physical experiment, medical and health, food production, etc, especially in thermal experiment, have very important significance.Today the thermometer we use are usually ac

15、curacy of 1 ℃ and 0.1 ℃ of mercury, kerosene or alcohol thermometer. The thermometer calibration interval are normally very close, not easy accurate resolution, and they have larger heat capacity. The time needed to reac

16、h thermal equilibrium is long. So it is difficult to read accurately, and the us</p><p>  This paper introduces a kind of temperature gathering system design ideas, with AT89S52 SCM as the core, controlling

17、DS18B20 chip to acquire and process temperature data, and using four digital pipe display hardware design. System has processing of temperature data transformation through the reset, reading and writing timing sequence o

18、f DS18B20 chip, and again through digital tube display complete temperature data collection. A model transfor mation is by independent buttons, And ups and collars</p><p>  Keywords: SCM AT89S52 DS18B20

19、Temperature gathering</p><p><b>  引 言</b></p><p>  在日常生活及工業(yè)生產過程中,經常要用到溫度的檢測及控制,溫度是生產過程和科學實驗中普遍而且重要的物理參數之一。在生產過程中,為了高效地進行生產,必須對它的主要參數,如溫度、壓力、流量等進行有效的控制。溫度控制在生產過程中占有相當大的比例。溫度測量是溫度控制的基

20、礎,技術已經比較成熟。傳統的測溫元件有熱電偶和二電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,這些方法相對比較復雜,需要比較多的外部硬件支持。我們用一種相對比較簡單的方式來測量。</p><p>  我們采用美國DALLAS半導體公司繼DS18B20之后推出的一種改進型智能溫度傳感器DS18B20作為檢測元件,溫度范圍為-55~125 ºC,最高分辨率可達0.0625 ºC。D

21、S18B20可以直接讀出被側溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點</p><p>  本次設計以Keil C51開發(fā)環(huán)境為編程平臺進行代碼的編譯和運行。最后在硬件上調試成功。</p><p><b>  第一章、緒論</b></p><p>  1.1整個任務的背景與目的</p>&l

22、t;p>  現代信息技術的三大基礎是信息采集(即傳感器技術)、信息傳輸(通信技術)和信息處理(計算機技術)。傳感器屬于信息技術的前沿尖端產品,尤其是溫度傳感器被廣泛用于工農業(yè)生產、科學研究和生活等領域,數量高居各種傳感器之首。溫度傳感器的發(fā)展大致經歷了以下三個階段;(1)傳統的分立式溫度傳感器(含敏感元件);(2)模擬集成溫度傳感器/控制器;(3)智能溫度傳感器。國際上新型溫度傳感器正從模擬式向數字式、由集成化向智能化、網絡化的方

23、向發(fā)展。在20世紀90年代中期最早推出的智能溫度傳感器,采用的是8位A/D轉換器,其測溫精度較低,分辨力只能達到1°C。國外已相繼推出多種高精度、高分辨力的智能溫度傳感器,所用的是9~12位A/D轉換器,分辨力一般可達0.5~0.0625°C。</p><p>  由美國DALLAS半導體公司新研制的DS1624型高分辨力智能溫度傳感器,能輸出13位二進制數據,其分辨力高達0.03125

24、76;C,測溫精度為±0.2°C。為了提高多通道智能溫度傳感器的轉換速率,也有的芯片采用高速逐次逼近式A/D轉換器。以AD7817型5通道智能溫度傳感器為例,它對本地傳感器、每一路遠程傳感器的轉換時間分別僅為27us、9us。進入21世紀后,智能溫度傳感器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發(fā)虛擬傳感器和網絡傳感器、研制單片測溫系統等高科技的方向迅速發(fā)展。</p><p> 

25、 目前,智能溫度傳感器的總線技術也實現了標準化、規(guī)范化,所采用的總線主要有單線(1-wire)總線、I2C總線、SMBus總線和spI總線。溫度傳感器作為從機可通過專用總線接口與主機進行通信。</p><p><b>  1.2方案分析</b></p><p>  目前基于此課題的設計方案主要有兩種,主要是溫度傳感器的選擇,分別是LM94022數字溫度傳感器和DS18

26、B20數字溫度傳感器 </p><p>  LM94022數字溫度傳感器優(yōu)點: 傳感器主要特點包括工作電壓低,可在1.5V電壓下工作;工作電壓范圍寬-1.5~5.5V;末級為推挽輸出,有±50μA輸出電流的能力;有四種靈敏度供用戶選擇;測量范圍為-50~+150℃;靜態(tài)電流低,典型值為5.4μA;精度(與測量范圍有關):20~40℃為 ±1.5℃;-70~-50℃為&

27、#177;1.8℃;-50~90℃為±2.1℃;-50~150℃為±2.7℃;采用小尺寸SO70封裝缺點: </p><p>  LM94022數字溫度傳感器缺點:結構復雜,連線較多,需要A/D轉換,編程較為復雜,并且測量溫度范圍較窄,制作成本高昂。</p><p>  DS18B20數字溫度傳感器優(yōu)點:DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,

28、減少了外部的硬件電路,具有低成本和易使用的特點。</p><p>  DS18B20數字溫度傳感器缺點:單片機所掛芯片數量有限(少于8個),單片機與溫度傳感芯片連線距離受限(少于10米)。 </p><p>  由于本課題屬于小型項目,信息處理量不大,要求簡潔易行,如果選擇LM94022數字溫度傳感器顯然不太合適,同時成本較高,開發(fā)過程復雜等情況,本項目也不能發(fā)揮該芯片的有效功能?;谝陨?/p>

29、優(yōu)缺點的分析我選擇了第2種設計方案。選用美國DALLAS半導體公司的DS18B20作為溫度傳感芯片,成本低,開發(fā)周期短,設計簡單易行,并且能較好的完成設計所需的功能。</p><p>  1.3 論文內容安排</p><p>  在參閱相關資料的基礎上完成溫度采集系統的基本功能。硬件設計方面,有溫度轉換芯片外圍電路實現對溫度的轉換和存儲,單片機、數碼管、獨立按鍵共同實現對采集溫度的顯示和報

30、警設置;軟件設計方面,采用C語言編寫了DS18B20的溫度轉換讀取,數碼管顯示和中斷按鍵報警溫度設置模塊。論文主要分為六個章節(jié):</p><p>  第一章緒論主要闡述了題目的背景及現狀、論文的構思,對比各種方案的優(yōu)缺點,點明論文的設計方向;</p><p>  第二章硬件設計闡述了溫度采集系統的硬件設計和各個模塊的簡介;</p><p>  第三章對DS18B20

31、芯片做了詳細的介紹,包括管腳的功能說明和內部結構以及硬件連接圖;</p><p>  第四章主要介紹了AT89S52單片機控制DS18B20芯片的軟件設計流程;</p><p>  第五章闡述了在設計中遇到的問題和解決的方案,以及最總結果;</p><p><b>  第六章結論。</b></p><p><b&g

32、t;  第二章 硬件設計</b></p><p>  目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業(yè)自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀

33、表、醫(yī)療器械以及各種智能機械了。因此,學好并熟練掌握單片機的開發(fā)與應用就顯得尤為重要,也是后續(xù)學習嵌入式系統的基礎。</p><p>  本次設計的課題是“基于單片機的溫度采集系統”, 設計中利用DS18B20及數碼管顯示模塊實現即時采集溫度的顯示,AT89S52單片機是通過對中斷的設置,利用獨立按鍵,控制報警溫度的上下限,并由定時器檢測采集溫度。 </p><p>  本次設計以Keil

34、 S52開發(fā)環(huán)境為編程平臺進行代碼的編譯和運行,并最終AT89S52單片機上調試成功。</p><p><b>  2.1 系統框圖</b></p><p>  本電路系統的內容主要包括AT89S52單片機控制模塊,獨立按鍵控制,顯示電路和DS18B20芯片等部分。系統框圖如圖2-1:</p><p><b>  圖2-1 系統框圖&

35、lt;/b></p><p>  整個電路工作流程是:當系統加上工作電壓后,首先初始化單片機和DS18B20芯片,然后啟動溫度轉換器DS18B20,接著讀取采集溫度數據,通過獨立按鍵設置工作模式(三種工作模式),模式一為采集即時溫度,模式二為設置報警上限溫度,模式三為設置報警下限溫度,通過定時器檢測采集溫度是否達到報警溫度,由中斷按鍵完成上下限報警溫度值的增加或減少。</p><p>

36、;<b>  2.2 模塊簡介</b></p><p>  電路原理圖是利用Protel 99 SE繪制完成的。整個電路原理圖應用到的器件有DS18B20溫度傳感芯片、AT89S52單片機、按鍵、晶振、三極管以及電阻電容數碼管等。</p><p>  整個硬件電路細分為四個部分:1.單片機控制部分;2.DS18B20芯片電路;3.數碼管顯示部分;4.外圍部分(包括獨立

37、按鍵和蜂鳴器部分等)??傇韴D如圖2-2所示。</p><p><b>  圖2-2 總原理圖</b></p><p>  電源部分:系統所需電源為5V左右,由AT89S52單片機USB接電腦I/O口供電。</p><p>  主控部分:此部分由AT89S52單片機及其外圍電路組成。具體電路圖如圖2-3所示。此部分的設計思路是單片機的P0口連接

38、數碼管段選,顯示系統的溫度數據由DS18B20高速暫存RAM存儲,需要單片機從中讀取,然后進行處理再送到數碼管顯示。單片機的P3.4到P3.7連接數碼管的片選。單片機P2.7,P2.1,P1.2,P3.2,P3.3分別連接DS18B20溫度輸入口,蜂鳴器,模式轉換按鍵,調下限,跳上限按鍵。</p><p>  圖2-3 AT89S52單片機原理圖</p><p>  DS18B20可以采用

39、兩種方式供電:一種是采用電源供電方式,此時DS18B20的第1腳接地,第2腳作為信號線,第3腳接電源;另一種是寄生電源供電方式,如圖2-4所示。</p><p>  獨特的一線接口,只需要一條口線通信多點能力,簡化了分布式溫度傳感應用 無需外部元件 可用數據總線供電,電壓范圍為3.0 V至5.5 V 無需備用電源 測量溫度范圍為-55 °C至+125 ℃ 。華氏相當于是-67 °F到257華氏

40、度 -10 °C至+85 °C范圍內精度為±0.5 °C。</p><p>  溫度傳感器可編程的分辨率為9~12位 溫度轉換為12位數字格式最大值為750毫秒 用戶可定義的非易失性溫度報警設置 應用范圍包括恒溫控制,工業(yè)系統,消費電子產品溫度計,或任何熱敏感系統</p><p>  描述該DS18B20的數字溫度計提供9至12位(可編程設備溫度讀數

41、。信息被發(fā)送到DS18B20 通過1線接口,所以中央為處理器與DS18B20只有一個一條口線連接。為讀寫以及溫度轉換可以從數據線本身獲得能量,不需要外接電源。 因為每一個DS18B20的包含一個獨特的序號,多個DS18B20可以同時存在于一條總線。這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調環(huán)境控制,感測建筑物內溫設備或機器,并進行過程監(jiān)測和控制。DS18B20溫度轉換電路如圖2-4所示。</p><

42、p>  圖2-4 DS18B20溫度轉換電路</p><p>  數碼管顯示部分。此部分由數碼管和PNP型三極管組成。數碼管為共陽數碼管,基極輸出低電平,發(fā)射極和集電極為高電平,可增加數碼管輸入端的電流強度。圖2-5為數碼管顯示的原理圖:</p><p>  圖2-5數碼管顯示原理圖</p><p>  外圍部分。外圍部分包括獨立按鍵電路(左圖)和蜂鳴器電路(

43、右圖),如圖2-6所示。SW19為降低報警溫度上下限值按鍵,JPDL中1管腳接P3.2管腳(外部中斷0),當檢測到SW19鍵按下(及P3.2管腳有低電平時),響應外部中斷0(及降低報警溫度上下限值);SW20為增加報警溫度上下限值按鍵,JPDL中3管腳接P3.3管腳(外部中斷1),當檢測到SW20鍵按下(及P3.3管腳有低電平時),響應外部中斷1(及增加報警溫度上下限值);SW21為調整工作模式按鍵,當按下SW21鍵時,增加標記變量的值

44、,當為3時將其置0(共三種工作模式,對應標記變量0,1,2三種值)。蜂鳴器為低電平有效,在定時器0中對采集溫度進行報警檢測。</p><p>  圖2-6外圍部分電路原理圖</p><p>  第三章 系統中選用的幾種器件的介紹</p><p>  單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器 RAM、只讀存儲

45、器ROM、多種I/O口和中斷系統、定時器/定時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統。目前電子元器件產業(yè)除了微處理器、嵌入式系統器件外,大多是圍繞現代電子系統配套的元器件產業(yè),例如滿足人機交互用的按鍵,LED/LCD顯示驅動、LED/LCD顯示單元、語音集成器件等,滿足數據采集通道要求的數字傳感器、ADC、數據采集模塊、信號調理模塊等。 <

46、/p><p>  本次設計是以AT89S52為控制核心,采用DS18B20芯片實現溫度采集和轉換,由數碼管顯示模塊進行采集溫度的顯示,并由中斷獨立按鍵實現報警溫度的設置,以下是對各個器件的詳細介紹。</p><p>  3.1 AT89S52單片機</p><p>  AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統可編程Flash 存儲器。

47、使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得AT89S52在眾多嵌入式控制應用系統中得到廣泛應用。</p><p>  3.1.1 AT89S52特性</p><p> ?。?)與MCS-51單片機產品兼容;<

48、/p><p> ?。?)8K字節(jié)在系統可編程Flash存儲器;</p><p> ?。?)1000次擦寫周期;</p><p> ?。?)全靜態(tài)操作:0Hz-33MHz;</p><p> ?。?)三級加密程序存儲器;</p><p> ?。?)32個可編程I/O口線;</p><p> ?。?)三

49、個16位定時器/計數器;</p><p><b>  (8)六個中斷源;</b></p><p> ?。?)全雙工UART串行通道;</p><p> ?。?0)低功耗空閑和掉電模式;</p><p>  (11)掉電后中斷可喚醒;</p><p>  (12)看門狗定時器;</p>

50、<p> ?。?3)雙數據指針;</p><p>  (14)掉電標識符 。</p><p>  3.1.2 MCS-51單片機中斷系統</p><p>  a.中斷系統的內部結構</p><p>  MCS-51單片機的中斷系統由與中斷有關的特殊功能寄存器、中斷入口、順序查詢邏輯電路組成。中斷系統的內部結構圖如圖3-1

51、所示。</p><p>  圖3-1 中斷系統的內部結構圖</p><p><b>  b.中斷源</b></p><p>  MCS-51中斷系統提供了5個中斷源,其中INT0、INT1為外中斷,T0、T1、串行口中斷(RXD、TXD)為內中斷。 5個中斷源的符號、名稱及產生的條件如下。</p><p>  INT0:

52、外部中斷0,由P3.2端口線引入,低電平或下跳沿引起。</p><p>  INT1:外部中斷1,由P3.3端口線引入,低電平或下跳沿引起。</p><p>  T0:定時器/計數器0中斷,由T0計滿回零引起。</p><p>  T1:定時器/計數器l中斷,由T1計滿回零引起。</p><p>  TI/RI:串行I/O中斷,串行端口完成一

53、幀字符發(fā)送/接收后引起。</p><p><b>  c.中斷控制寄存器</b></p><p>  MCS-51中斷系統在4個特殊功能寄存器控制下工作。這4個特殊功能寄存器是定時/計數器控制寄存器(TCON)、串行口控制寄存器(SCON)、中斷允許控制寄存器(IE)和中斷優(yōu)先級控制寄存器(IP)。通過對這4個特殊功能寄存器的相應位進行置位或復位操作,可實現各種中斷控

54、制功能。</p><p>  TCON定時/計數器控制寄存器??刂贫〞r/計數器T0和T1的溢出中斷、外中斷的觸發(fā)方式和鎖存外中斷請求標志位。TCON寄存器如圖3-2所示。</p><p>  圖3-2 TCON寄存器</p><p>  IT0(TCON.0)外部中斷INT0觸發(fā)方式控制位。當IT0=0時,低電平觸發(fā)方式。有效信號至少一個機器周期有效。當IT0=1時

55、,為邊沿觸發(fā)方式(下降沿有效)。有效信號至少兩個機器周期。</p><p>  IE0(TCON.1),外部中斷0中斷請求標志位。當INT0引腳輸入有效中斷信號時IE0由硬件置1。CPU響應中斷后自動清零。</p><p>  IT1:外部中斷INT1中斷方式控制位。與IT0類同。</p><p>  IE1:外部中斷INT1的中斷請求標志。與IE0類似。</

56、p><p>  TF0:片內定時/計數器T0溢出中斷請求標志。定時/計數器的核心為加法計數器,當定時/計數器T0發(fā)生定時或計數溢出時,由硬件置位TF0或TF1,向CPU申請中斷,CPU響應中斷后,會自動清零TF0或TF1。</p><p>  TF1:片內定時/計數器1溢出中斷請求標志。與TF0類同</p><p>  SCON中的中斷請求標志位,如下圖3-3 SCON

57、寄存器。</p><p>  圖3-3 SCON寄存器</p><p>  TI:串行口發(fā)送中斷請求標志位。CPU將一個數據寫入發(fā)送緩沖器SBUF時,就啟動發(fā)送,每發(fā)送完一幀串行數據后,硬件置位TI。但CPU響應中斷時,并不清除TI中斷標志,必須在中斷服務程序中由軟件對TI清0。</p><p>  RI:串行口接收中斷請求標志位。在串行口允許接收時,每接收完一幀數

58、據,由硬件自動將RI位置為1。CPU響應中斷時,并不清除RI中斷標志,也必須在中斷服務程序中由軟件對TI標志清0。</p><p>  IE中斷允許寄存器,如下圖3-4 IE寄存器。</p><p>  圖3-4 IE寄存器</p><p>  EA:總中斷允許控制位。當EA=0時,屏蔽所有的中斷;當EA=1時,開放所有的中斷。</p><p&g

59、t;  ES:串行口中斷允許控制位。當ES=0時,屏蔽串行口中斷;當ES=1,開放串行口中斷。</p><p>  ET1:定時/計數器T1的中斷允許控制位。當ET1=0時,屏蔽T1的溢出中斷;當ET1=1,開放T1的溢出中斷。</p><p>  EX1:外中斷1的中斷允許控制位。EX1=0時,屏蔽外部中斷1的中斷;EX1=1 ,開放外部中斷1的中斷。</p><p&

60、gt;  ET0:T0中斷允許控制位。功能與ET1相同。</p><p>  EX0:INT0中斷允許控制位。功能與EX1相同。</p><p>  3.2 DS18B20溫度轉換芯片</p><p>  a. 數字溫度傳感器DS18B20介紹</p><p>  DS18B20是美國DALLAS半導體公司繼DS1820之后推出的一種改進型

61、智能溫度傳感器,作為檢測元件,測溫范圍為-55~125℃,最高分辨率可達0.0625℃。與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。</p><p>  b. DS18B20內部結構</p><p>  DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器

62、。該裝置信號線高的時候,內部電容器 儲存能量通由1線通信線路給片子供電,而且在低電平期間為片子供電直至下一個高電平的到來重新充電。 DS18B20的電源也可以從外部3V-5 .5V的電壓得到。</p><p>  數據存儲在DS18B20的存儲器。一個控制功能指揮指示DS18B20的演出測溫。測量結果將被放置在DS18B20內存中,并可以讓閱讀發(fā)出記憶功能的指揮,閱讀內容的片上存儲器。溫度報警觸發(fā)器TH和TL都有

63、一字節(jié)EEPROM 的數據。如果DS18B20不使用報警檢查指令,這些寄存器可作為一般的用戶記憶用途。在片上還載有配置字節(jié)以理想的解決溫度數字轉換。寫TH,TL指令以及配置字節(jié)利用一個記憶功能的指令完成。通過緩存器讀寄存器。所有數據的讀,寫都是從最低位開始。</p><p>  DS18B20內部結構圖如圖3-2所示。</p><p>  圖3-2 DS18B20內部結構圖</p&g

64、t;<p>  c. DS18B20引腳定義</p><p>  (1) DQ為數字信號輸入/輸出端;(2)GND為電源地; (3)VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。DS18B20有3個管腳,每個管腳對應相應的功能,具體見下表對各個管腳的描述,DS18B20的管腳圖如圖3-1所示。</p><p>  圖3-1 DS18B20管腳</p>

65、<p>  d. DS18B20工作原理</p><p>  DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。 DS18B20測溫原理如圖3所示。圖中低溫度系數晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數器1。高溫度系數晶振 隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計

66、數器1和溫度寄存器被預置在-55℃所對應的一個基數值。計數器1對 低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即 為所測溫度。圖3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數器1的預置值。如圖3-3所示。&l

67、t;/p><p>  圖3-3 DS18B20工作原理圖</p><p>  e. DS18B20溫度值格式</p><p>  DS18B20溫度值格式表:這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1

68、,測到的數值需要取反加1再乘于0.0625即可得到實際 溫度。 例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為FE6FH,-55℃的數字輸出為FC90H 。如圖3-4 DS18B20溫度值格式表。</p><p>  圖3-4 DS18B20溫度值格式表</p><p>  f. DS18B20暫存寄存器</p>

69、<p>  高速暫存存儲器由9個字節(jié)組成。當溫度轉換命令發(fā)布后,經轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后。對應的溫度計算: 當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變?yōu)樵a,再計算十進制值。DS18B20暫存寄存器如圖3-5所示。</p><p>  圖3-5 DS18B20暫存寄存器&

70、lt;/p><p>  g. 1-wire單總線數據傳送ROM,RAM命令</p><p>  根據DS18B20的通訊協議,主機(單片機)控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行 復位操作,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,當DS18B20收

71、到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。ROM,RAM指令表見下圖3-6,圖3-7所示。</p><p>  圖3-6 ROM指令表</p><p>  圖3-7 RAM指令表</p><p><b>  3.3 數碼管</b></p><p>  數碼管按段數

72、分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發(fā)光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;</p><p>  按發(fā)光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數碼管。共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極

73、為高電平時,相應字段就不亮。。共陰數碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。共陽數碼管電路連接如下圖3-8所示</p><p><b>  圖3-8共陽數碼管</b></p><p><

74、;b>  第四章 軟件設計</b></p><p>  本設計采用C語言編程完成,由于C語言的模塊化設計思路,教容易完成本設計,且8051單片機教多用C語言編寫完成,用匯編編寫較為復雜,并且C語言也是程序語言的基礎,是學好后續(xù)更多高級語言的基礎。C語言是一種面向過程的計算機程序設計語言,它是目前眾多計算機語言中舉世公認的優(yōu)秀的結構程序設計語言之一。它由美國貝爾研究所的D.M.Ritchie于19

75、72年推出。1978后,C語言已先后被移植到大、中、小及微型機上。</p><p>  C語言發(fā)展如此迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。許多著名的系統軟件,如DBASE Ⅳ都是由C 語言編寫的。用C 語言加上一些匯編語言子程序,就更能顯示C 語言的優(yōu)勢了,像PC- DOS、WORDSTAR等就是用這種方法編寫的。</p><p>  4.1 整體功能概述</

76、p><p>  本系統是溫度采集系統,所實現的功能主要分為以下幾部分:1.采集即時溫度并顯示2.調整工作模式3.設置報警溫度。 </p><p>  這個系統軟件編寫使用C語言,由于C比較簡單,邏輯算法易于表示。圖4-1為系統總流程圖。</p><p>  4-1 系統總流程圖</p><p>  4.2 DS18B2

77、0復位子程序</p><p>  DS18B20的初始化</p><p> ?。?) 先將數據線置高電平“1”。</p><p>  (2) 延時(該時間要求的不是很嚴格,但是盡可能的短一點)</p><p> ?。?) 數據線拉到低電平“0”。</p><p> ?。?) 延時750微秒(該時間的時間范圍可以從480

78、到960微秒)。</p><p> ?。?) 數據線拉到高電平“1”。</p><p>  (6) 延時等待(如果初始化成功則在15到60毫秒時間之內產生一個由DS18B20所返回的低電平“0”。據該狀態(tài)可以來確定它的存在,但是應注意不能無限的進行等待,不然會使程序進入死循環(huán),所以要進行超時控制)。</p><p> ?。?) 若CPU讀到了數據線上的低電平“0”后

79、,還要做延時,其延時的時間從發(fā)出的高電平算起(第(5)步的時間算起)最少要480微秒。</p><p> ?。?) 將數據線再次拉高到高電平“1”后結束。</p><p>  圖4-2為DS18B20復位子程序流程圖。</p><p>  圖4-2 DS18B20復位子程序流程圖</p><p>  DS18B20復位子程序如下:</p

80、><p>  ow_reset(void)</p><p>  {char FLAG1=1;</p><p>  while(FLAG1)</p><p><b>  {</b></p><p>  while(FLAG1)</p><p>  {DQ=1;delay(5);/

81、/從高拉倒低</p><p>  DQ=0; </p><p>  delay(50); //550 us</p><p>  DQ=1; </p><p>  dela

82、y(6); //66 us</p><p>  FLAG1=DQ; //FLAG1=0 復位成功,繼續(xù)下一步</p><p><b>  } </b></p><p>  delay(45); //延時500 us</p><p>  FLAG1=~DQ;

83、 //FLAG1=1 等待從機應答完畢</p><p><b>  }</b></p><p>  DQ=1; //拉高電平</p><p><b>  4.3寫命令子程序</b></p><p>  DS18B20的寫操作</p><

84、;p>  (1) 數據線先置低電平“0”。</p><p> ?。?) 延時確定的時間為15微秒。</p><p> ?。?) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。</p><p> ?。?) 延時時間為45微秒。</p><p> ?。?) 將數據線拉到高電平。</p><p> ?。?) 重復上(

85、1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。</p><p> ?。?) 最后將數據線拉高。寫命令子程序流程圖如下:</p><p>  圖4-3寫命令子程序流程圖</p><p><b>  寫命令子程序代碼:</b></p><p>  void write_byte(uchar val)</p>

86、<p>  { uchar i;</p><p>  for(i=8;i>0;i--)</p><p>  {DQ=1;_nop_();_nop_(); //從高拉倒低</p><p>  DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us</p><p&g

87、t;  DQ=val&0x01; //最低位移出</p><p>  delay(6); //66 us</p><p>  val=val/2; //右移1位</p><p><b>

88、;  }</b></p><p><b>  DQ=1;</b></p><p><b>  delay(1);</b></p><p><b>  }</b></p><p><b>  4.4讀操作子程序</b></p>&l

89、t;p>  DS18B20的讀操作</p><p>  (1)將數據線拉高“1”。</p><p><b> ?。?)延時2微秒。</b></p><p> ?。?)將數據線拉低“0”。</p><p>  (4)延時15微秒。</p><p> ?。?)將數據線拉高“1”。</p&g

90、t;<p>  (6)延時15微秒。</p><p> ?。?)讀數據線的狀態(tài)得到1個狀態(tài)位,并進行數據處理。</p><p>  (8)延時30微秒。讀操作子程序流程圖如下:</p><p>  圖4-4讀操作子程序流程圖</p><p><b>  讀操作子程序代碼:</b></p>&l

91、t;p>  uchar read_byte(void)</p><p><b>  {uchar i;</b></p><p>  uchar value=0;</p><p>  for(i=8;i>0;i--)</p><p>  {DQ=1;_nop_();_nop_();</p><

92、;p>  value>>=1;</p><p>  DQ=0;_nop_();_nop_();_nop_();_nop_(); //4 us 讀時隙由主機發(fā)起,拉低總線至少1us</p><p>  DQ=1;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p>  if(

93、DQ)value|=0x80;</p><p>  delay(6); }</p><p><b>  DQ=1;</b></p><p>  return(value);}</p><p><b>  4.5讀溫度子程序</b></p><p>  當DS18B20接收到溫

94、度轉換命令后,開始啟動轉換。轉換完成后的溫度就以16位帶符號擴展的二進制補碼形式存儲在高速暫存RAM的第1.2字節(jié)中。如圖4-5所示。</p><p>  圖4-5讀溫度子程序流程圖</p><p><b>  讀溫度子程序代碼:</b></p><p>  read_temp()</p><p>  {ow_reset

95、(); //總線復位</p><p>  delay(200);</p><p>  write_byte(0xcc); //發(fā)跳過ROM命令</p><p>  write_byte(0x44); //發(fā)轉換命令</p><p>  ow_reset(); <

96、;/p><p><b>  delay(1);</b></p><p>  write_byte(0xcc); //發(fā)跳過ROM命令</p><p>  write_byte(0xbe); //發(fā)讀溫度命令</p><p>  a=read_byte(); //讀溫度值的低

97、字節(jié)</p><p>  b=read_byte(); }//讀溫度值的高字節(jié)</p><p>  4.6 DS18B20模式選擇</p><p>  通過獨立按鍵設置工作模式(三種工作模式),模式一為采集即時溫度,模式二為設置報警上限溫度,模式三為設置報警下限溫度。如圖4-6。</p><p>  圖4-6 DS18B20模式選擇</

98、p><p>  DS18B20模式選擇代碼如下:</p><p><b>  mode()</b></p><p>  {switch(set_st)</p><p>  { case 0 : EX0=0; //關閉外部中斷0 //溫度采集模式</p><p>  EX1=0;

99、 //關閉外部中斷1</p><p>  read_temp();</p><p>  work_temp();</p><p>  scan();break;</p><p>  case 1: BEEP=1; //關閉蜂鳴器 //調上限模式</p><p>  EX0=1;

100、//開啟外部中斷0</p><p>  EX1=1; //開啟外部中斷1</p><p><b>  if(x>=10)</b></p><p>  {shanshuo_st=~shanshuo_st;x=0;}</p><p>  if(shanshuo_st) </p><p> 

101、 {scan_alarm(shangxian);}break;</p><p>  case 2: BEEP=1; //關閉蜂鳴器 //調下限模式</p><p>  EX0=1; //開啟外部中斷0</p><p>  EX1=1; //開啟外部中斷1</p><p><b>  if

102、(x>=10)</b></p><p>  {shanshuo_st=~shanshuo_st;x=0;}</p><p>  if(shanshuo_st)</p><p>  {scan_alarm(xiaxian);} break;</p><p>  default: break;}}</p>&l

103、t;p>  第五章 問題及解決方法</p><p>  本次設計,看似簡單,只用到一塊芯片,但考慮到實際溫度采集的過程卻并非易事,要在充分了解DS18B20芯片和51單片機硬件的基礎上才能進行編程,DS18B20復位,讀寫要嚴格按照1-wire總線協議的要求,對暫存器RAM讀取的數據要進行處理,尤其是讀取低八數據中低四位小數位數據的處理,起初并未考慮到小數位,只是顯示個位,十位和百位,這樣就會影響到采集溫度

104、數據的精度,在查閱了相關資料后,利用查表法二進制小數位數和十進制對應關系后解決了這個問題。再如,對采集溫度負數補碼轉換為原碼的處理,要對低位溫度數據分情況處理。</p><p>  5.1 調試中出現的問題及解決方法:</p><p>  1.蜂鳴器一直響,不能達到預定的發(fā)出“嘟嘟”聲</p><p>  原因:未設置間隔變量</p><p>

105、;  解決方法:設置間隔變量,在定時器中將其不斷取反處理。</p><p>  結果:蜂鳴器達到預定要求的響聲,報警功能完成。</p><p>  2.當處于調整溫度模式是按溫度值增減件,溫度值未發(fā)生變化</p><p>  原因:中斷獨立按鍵P3.2和P3.3管腳接線觸碰在一起</p><p>  解決方法:將兩管腳接線分開后,軟件上加上去

106、按鍵前端抖動 </p><p>  結果:調溫度增減按鍵反應靈敏,達到預定要求。</p><p><b>  5.2 最終結果</b></p><p>  這次畢業(yè)設計總共歷時兩個多月,從前期的查資料,選擇單片機型號和溫度采集芯片,到了解芯片和單片機硬件結構,數據處理和芯片時序1-wire總線協議,再到用ProtelSE99畫原理圖和程序設計,

107、一直到總后在單片機上調試成功。該系統具備采集溫度并顯示的功能,能夠對報警溫度進行設置。最終結果圖見下圖5-1。</p><p>  圖5-1 最終結果圖</p><p><b>  第六章 結論</b></p><p>  本次設計,是在查閱了大量資料之后,反復修改調試才最終調試成功,也是對大學四年所學知識的一次回顧和總結,將理論所學知識應用

108、于解決實際問題。調試中遇到許多問題,經過潛心研覺和思考之后逐一解決。通過本次畢業(yè)設計我感覺受益匪淺,這將對我以后的工作和學習產生深遠的影響。 </p><p>  在調試程序時遇到許多問題,起初,在將編寫程序下載到單片機之后蜂鳴器不停</p><p>  的響,在查閱了相關資料之后才發(fā)現是下載軟件的問題,在重新安裝了下載軟件</p><p>  之后程序被成功的燒寫

109、進單片機中,但是中斷按鍵設置報警溫度卻不起作用,在</p><p>  檢查了軟件和硬件連接之后,才發(fā)現問題是將兩中斷按鍵管腳連線相觸碰,分離</p><p>  連線之后,問題得到解決。</p><p>  這次畢業(yè)設計,我的收獲不只是學到了單片機的理論知識,更重要的是我鍛煉了動手能力。</p><p>  本次畢業(yè)設計雖然完成了溫度采集的

110、基本功能,但是還存在一些可改進的地方,在實際應用中往往還需要連接上位機,將所采集的溫度數據傳遞給上位機,以便完成</p><p><b>  對溫度的控制。</b></p><p>  溫度采集系統必將朝著越來越智能的方向發(fā)展,溫度采集智能分析和溫度控制將是溫度采集未來的主流方向。</p><p><b>  致 謝</b>

111、;</p><p>  本次畢業(yè)設計,我要感謝的人有很多,但是我最要感謝的人還是xx老師,</p><p>  她在這兩個月里給予了我莫大的幫助。起初,當我看到畢設題目時,腦袋一片空白,不知該從何做起,而xx老師卻不辭勞苦,仔細認真的一點一點輔導我,給我提供了大量的畢設相關資料。當我遇到問題時xx老師循循善誘,幫我拓寬了思維。在提供資料時,她精挑細選,不遺漏任何一點相關的文獻資料,在我身上

112、她花費了大量的時間和精力,在這里我要非常的感謝她。</p><p>  再次我要感謝實驗室的同學,當xx老師不在時,他們也給我提供了一些幫助,幫我解決了相關問題。</p><p>  最后,我還要感謝大學期間曾辛勤教導過我的老師們,正是他們的孜孜教誨,才使我學到了這么多的知識,為本次畢業(yè)設計打下了堅實的理論基礎。在這里我對他們表示最誠摯的感謝!</p><p>&l

113、t;b>  參考文獻</b></p><p>  [1] 何立民,單片機應用系統設計,北京:航天航空大學出版社;</p><p>  [2] 郭天詳,新概念51單片機C語言教程,北京:電子工業(yè)出版社,2009;</p><p>  [3] 焦峰超,基于51單片機的小型溫度測量系統,宿州學院學報,Vol.23 No.2,2008年4月;</p&

溫馨提示

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

評論

0/150

提交評論