版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p> 題 目: 基于單片機(jī)的溫度采集系統(tǒng) </p><p> 學(xué) 院: 電子工程學(xué)院 </p><p> 系 部: 光電子技術(shù)系 </p><p> 專
2、業(yè): 光電信息工程 </p><p> 班 級(jí): </p><p> 學(xué)生姓名: </p><p> 導(dǎo)師姓名: 職稱: 工程師 </p><p>
3、起止時(shí)間:2011年 3月 28日至2011年 7月1日</p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p><b> 任務(wù)與要求</b></p><p> 畢 業(yè) 設(shè) 計(jì) (論文) 工 作 計(jì) 劃</p><p> 畢業(yè)設(shè)計(jì)(論文)開題報(bào)告</p><p> 電子工程 學(xué)院
4、 光電子技術(shù) 系</p><p> 光電信息工程 專業(yè) 2007級(jí) 光電0703 班</p><p> 課題名稱:基于單片機(jī)的溫度采集系統(tǒng)研制</p><p> 學(xué)生姓名: 學(xué)號(hào): </p><p> 指導(dǎo)教師: </p><p> 報(bào)告日期:
5、 2011年3月25日 </p><p><b> 說(shuō)明:</b></p><p> 本報(bào)告必須由承擔(dān)畢業(yè)論文(設(shè)計(jì))課題任務(wù)的學(xué)生在畢業(yè)論文(設(shè)計(jì)) 正式開始的第1周周五之前獨(dú)立撰寫完成,并交指導(dǎo)教師審閱。</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整個(gè)任務(wù)的背景與目的2</p><p><b>
7、 1.2方案分析2</b></p><p> 1.3 論文內(nèi)容安排3</p><p> 第二章 硬件設(shè)計(jì)4</p><p> 2.1 系統(tǒng)框圖4</p><p> 2.2 模塊簡(jiǎn)介5</p><p> 第三章 系統(tǒng)中選用的幾種器件的介紹9</p><p>
8、3.1 AT89S52單片機(jī)9</p><p> 3.1.1 AT89S52特性9</p><p> 3.1.2 MCS-51單片機(jī)中斷系統(tǒng)10</p><p> 3.2 DS18B20溫度轉(zhuǎn)換芯片12</p><p> 3.3 數(shù)碼管16</p><p> 第四章 軟件設(shè)計(jì)17</p&
9、gt;<p> 4.1 整體功能概述17</p><p> 4.2 DS18B20復(fù)位子程序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> 第五章 問(wèn)題及解決方法24</p><p> 5.1 調(diào)試中出現(xiàn)的問(wèn)題及解決方法:24</p><p> 5.2 最終結(jié)果24</p><p><b> 第六章 結(jié)論26</b></p><p><b> 致 謝27</b></p>
11、;<p><b> 參考文獻(xiàn)28</b></p><p><b> 摘 要</b></p><p> 溫度測(cè)量在物理、醫(yī)療、食品生產(chǎn)等諸多領(lǐng)域,尤其在熱學(xué)實(shí)驗(yàn)中,有非常重要的意義?,F(xiàn)在所使用的溫度計(jì)通常都是精度為1℃和0.1℃的水銀、煤油或酒精溫度計(jì)。這些溫度計(jì)的刻度間隔通常都很密,不容易準(zhǔn)確分辨,而且它們的熱容量還比較大
12、,達(dá)到熱平衡所需的時(shí)間較長(zhǎng),因此很難讀準(zhǔn),并且使用非常不方便。而基于單片機(jī)的溫度采集系統(tǒng)可以解決這些問(wèn)題。</p><p> 本文介紹了一種溫度采集系統(tǒng)的設(shè)計(jì)思路,以AT89S52單片機(jī)為核心,控制DS18B20芯片進(jìn)行溫度數(shù)據(jù)采集處理,采用四位數(shù)碼管顯示的硬件設(shè)計(jì)方案。系統(tǒng)通過(guò)DS18B20芯片的復(fù)位,讀寫時(shí)序進(jìn)行溫度數(shù)據(jù)的轉(zhuǎn)換處理,再通過(guò)數(shù)碼管的顯示完成溫度數(shù)據(jù)的采集。由獨(dú)立按鍵進(jìn)行模式轉(zhuǎn)換,并由中斷按鍵完
13、成報(bào)警溫度上下限的設(shè)置,利用定時(shí)器進(jìn)行采集溫度的報(bào)警檢測(cè)。整個(gè)系統(tǒng)硬件設(shè)計(jì)包括獨(dú)立按鍵電路、數(shù)碼管顯示電路、DS18B20溫度采集電路;軟件設(shè)計(jì)包括溫度轉(zhuǎn)換,數(shù)據(jù)處理,復(fù)位,讀寫時(shí)序,顯示,中斷,定時(shí)器等模塊。 </p><p> 關(guān)鍵詞: AT89S52單片機(jī) 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è)生產(chǎn)過(guò)程中,經(jīng)常要用到溫度的檢測(cè)及控制,溫度是生產(chǎn)過(guò)程和科學(xué)實(shí)驗(yàn)中普遍而且重要的物理參數(shù)之一。在生產(chǎn)過(guò)程中,為了高效地進(jìn)行生產(chǎn),必須對(duì)它的主要參數(shù),如溫度、壓力、流量等進(jìn)行有效的控制。溫度控制在生產(chǎn)過(guò)程中占有相當(dāng)大的比例。溫度測(cè)量是溫度控制的基
20、礎(chǔ),技術(shù)已經(jīng)比較成熟。傳統(tǒng)的測(cè)溫元件有熱電偶和二電阻。而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,這些方法相對(duì)比較復(fù)雜,需要比較多的外部硬件支持。我們用一種相對(duì)比較簡(jiǎn)單的方式來(lái)測(cè)量。</p><p> 我們采用美國(guó)DALLAS半導(dǎo)體公司繼DS18B20之后推出的一種改進(jìn)型智能溫度傳感器DS18B20作為檢測(cè)元件,溫度范圍為-55~125 ºC,最高分辨率可達(dá)0.0625 ºC。D
21、S18B20可以直接讀出被側(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)</p><p> 本次設(shè)計(jì)以Keil C51開發(fā)環(huán)境為編程平臺(tái)進(jìn)行代碼的編譯和運(yùn)行。最后在硬件上調(diào)試成功。</p><p><b> 第一章、緒論</b></p><p> 1.1整個(gè)任務(wù)的背景與目的</p>&l
22、t;p> 現(xiàn)代信息技術(shù)的三大基礎(chǔ)是信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng)歷了以下三個(gè)階段;(1)傳統(tǒng)的分立式溫度傳感器(含敏感元件);(2)模擬集成溫度傳感器/控制器;(3)智能溫度傳感器。國(guó)際上新型溫度傳感器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方
23、向發(fā)展。在20世紀(jì)90年代中期最早推出的智能溫度傳感器,采用的是8位A/D轉(zhuǎn)換器,其測(cè)溫精度較低,分辨力只能達(dá)到1°C。國(guó)外已相繼推出多種高精度、高分辨力的智能溫度傳感器,所用的是9~12位A/D轉(zhuǎn)換器,分辨力一般可達(dá)0.5~0.0625°C。</p><p> 由美國(guó)DALLAS半導(dǎo)體公司新研制的DS1624型高分辨力智能溫度傳感器,能輸出13位二進(jìn)制數(shù)據(jù),其分辨力高達(dá)0.03125
24、76;C,測(cè)溫精度為±0.2°C。為了提高多通道智能溫度傳感器的轉(zhuǎn)換速率,也有的芯片采用高速逐次逼近式A/D轉(zhuǎn)換器。以AD7817型5通道智能溫度傳感器為例,它對(duì)本地傳感器、每一路遠(yuǎn)程傳感器的轉(zhuǎn)換時(shí)間分別僅為27us、9us。進(jìn)入21世紀(jì)后,智能溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展。</p><p>
25、 目前,智能溫度傳感器的總線技術(shù)也實(shí)現(xiàn)了標(biāo)準(zhǔn)化、規(guī)范化,所采用的總線主要有單線(1-wire)總線、I2C總線、SMBus總線和spI總線。溫度傳感器作為從機(jī)可通過(guò)專用總線接口與主機(jī)進(jìn)行通信。</p><p><b> 1.2方案分析</b></p><p> 目前基于此課題的設(shè)計(jì)方案主要有兩種,主要是溫度傳感器的選擇,分別是LM94022數(shù)字溫度傳感器和DS18
26、B20數(shù)字溫度傳感器 </p><p> LM94022數(shù)字溫度傳感器優(yōu)點(diǎn): 傳感器主要特點(diǎn)包括工作電壓低,可在1.5V電壓下工作;工作電壓范圍寬-1.5~5.5V;末級(jí)為推挽輸出,有±50μA輸出電流的能力;有四種靈敏度供用戶選擇;測(cè)量范圍為-50~+150℃;靜態(tài)電流低,典型值為5.4μA;精度(與測(cè)量范圍有關(guān)):20~40℃為 ±1.5℃;-70~-50℃為&
27、#177;1.8℃;-50~90℃為±2.1℃;-50~150℃為±2.7℃;采用小尺寸SO70封裝缺點(diǎn): </p><p> LM94022數(shù)字溫度傳感器缺點(diǎn):結(jié)構(gòu)復(fù)雜,連線較多,需要A/D轉(zhuǎn)換,編程較為復(fù)雜,并且測(cè)量溫度范圍較窄,制作成本高昂。</p><p> DS18B20數(shù)字溫度傳感器優(yōu)點(diǎn):DS18B20可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,
28、減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。</p><p> DS18B20數(shù)字溫度傳感器缺點(diǎn):?jiǎn)纹瑱C(jī)所掛芯片數(shù)量有限(少于8個(gè)),單片機(jī)與溫度傳感芯片連線距離受限(少于10米)。 </p><p> 由于本課題屬于小型項(xiàng)目,信息處理量不大,要求簡(jiǎn)潔易行,如果選擇LM94022數(shù)字溫度傳感器顯然不太合適,同時(shí)成本較高,開發(fā)過(guò)程復(fù)雜等情況,本項(xiàng)目也不能發(fā)揮該芯片的有效功能?;谝陨?/p>
29、優(yōu)缺點(diǎn)的分析我選擇了第2種設(shè)計(jì)方案。選用美國(guó)DALLAS半導(dǎo)體公司的DS18B20作為溫度傳感芯片,成本低,開發(fā)周期短,設(shè)計(jì)簡(jiǎn)單易行,并且能較好的完成設(shè)計(jì)所需的功能。</p><p> 1.3 論文內(nèi)容安排</p><p> 在參閱相關(guān)資料的基礎(chǔ)上完成溫度采集系統(tǒng)的基本功能。硬件設(shè)計(jì)方面,有溫度轉(zhuǎn)換芯片外圍電路實(shí)現(xiàn)對(duì)溫度的轉(zhuǎn)換和存儲(chǔ),單片機(jī)、數(shù)碼管、獨(dú)立按鍵共同實(shí)現(xiàn)對(duì)采集溫度的顯示和報(bào)
30、警設(shè)置;軟件設(shè)計(jì)方面,采用C語(yǔ)言編寫了DS18B20的溫度轉(zhuǎn)換讀取,數(shù)碼管顯示和中斷按鍵報(bào)警溫度設(shè)置模塊。論文主要分為六個(gè)章節(jié):</p><p> 第一章緒論主要闡述了題目的背景及現(xiàn)狀、論文的構(gòu)思,對(duì)比各種方案的優(yōu)缺點(diǎn),點(diǎn)明論文的設(shè)計(jì)方向;</p><p> 第二章硬件設(shè)計(jì)闡述了溫度采集系統(tǒng)的硬件設(shè)計(jì)和各個(gè)模塊的簡(jiǎn)介;</p><p> 第三章對(duì)DS18B20
31、芯片做了詳細(xì)的介紹,包括管腳的功能說(shuō)明和內(nèi)部結(jié)構(gòu)以及硬件連接圖;</p><p> 第四章主要介紹了AT89S52單片機(jī)控制DS18B20芯片的軟件設(shè)計(jì)流程;</p><p> 第五章闡述了在設(shè)計(jì)中遇到的問(wèn)題和解決的方案,以及最總結(jié)果;</p><p><b> 第六章結(jié)論。</b></p><p><b&g
32、t; 第二章 硬件設(shè)計(jì)</b></p><p> 目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀
33、表、醫(yī)療器械以及各種智能機(jī)械了。因此,學(xué)好并熟練掌握單片機(jī)的開發(fā)與應(yīng)用就顯得尤為重要,也是后續(xù)學(xué)習(xí)嵌入式系統(tǒng)的基礎(chǔ)。</p><p> 本次設(shè)計(jì)的課題是“基于單片機(jī)的溫度采集系統(tǒng)”, 設(shè)計(jì)中利用DS18B20及數(shù)碼管顯示模塊實(shí)現(xiàn)即時(shí)采集溫度的顯示,AT89S52單片機(jī)是通過(guò)對(duì)中斷的設(shè)置,利用獨(dú)立按鍵,控制報(bào)警溫度的上下限,并由定時(shí)器檢測(cè)采集溫度。 </p><p> 本次設(shè)計(jì)以Keil
34、 S52開發(fā)環(huán)境為編程平臺(tái)進(jìn)行代碼的編譯和運(yùn)行,并最終AT89S52單片機(jī)上調(diào)試成功。</p><p><b> 2.1 系統(tǒng)框圖</b></p><p> 本電路系統(tǒng)的內(nèi)容主要包括AT89S52單片機(jī)控制模塊,獨(dú)立按鍵控制,顯示電路和DS18B20芯片等部分。系統(tǒng)框圖如圖2-1:</p><p><b> 圖2-1 系統(tǒng)框圖&
35、lt;/b></p><p> 整個(gè)電路工作流程是:當(dāng)系統(tǒng)加上工作電壓后,首先初始化單片機(jī)和DS18B20芯片,然后啟動(dòng)溫度轉(zhuǎn)換器DS18B20,接著讀取采集溫度數(shù)據(jù),通過(guò)獨(dú)立按鍵設(shè)置工作模式(三種工作模式),模式一為采集即時(shí)溫度,模式二為設(shè)置報(bào)警上限溫度,模式三為設(shè)置報(bào)警下限溫度,通過(guò)定時(shí)器檢測(cè)采集溫度是否達(dá)到報(bào)警溫度,由中斷按鍵完成上下限報(bào)警溫度值的增加或減少。</p><p>
36、;<b> 2.2 模塊簡(jiǎn)介</b></p><p> 電路原理圖是利用Protel 99 SE繪制完成的。整個(gè)電路原理圖應(yīng)用到的器件有DS18B20溫度傳感芯片、AT89S52單片機(jī)、按鍵、晶振、三極管以及電阻電容數(shù)碼管等。</p><p> 整個(gè)硬件電路細(xì)分為四個(gè)部分:1.單片機(jī)控制部分;2.DS18B20芯片電路;3.數(shù)碼管顯示部分;4.外圍部分(包括獨(dú)立
37、按鍵和蜂鳴器部分等)。總原理圖如圖2-2所示。</p><p><b> 圖2-2 總原理圖</b></p><p> 電源部分:系統(tǒng)所需電源為5V左右,由AT89S52單片機(jī)USB接電腦I/O口供電。</p><p> 主控部分:此部分由AT89S52單片機(jī)及其外圍電路組成。具體電路圖如圖2-3所示。此部分的設(shè)計(jì)思路是單片機(jī)的P0口連接
38、數(shù)碼管段選,顯示系統(tǒng)的溫度數(shù)據(jù)由DS18B20高速暫存RAM存儲(chǔ),需要單片機(jī)從中讀取,然后進(jìn)行處理再送到數(shù)碼管顯示。單片機(jī)的P3.4到P3.7連接數(shù)碼管的片選。單片機(jī)P2.7,P2.1,P1.2,P3.2,P3.3分別連接DS18B20溫度輸入口,蜂鳴器,模式轉(zhuǎn)換按鍵,調(diào)下限,跳上限按鍵。</p><p> 圖2-3 AT89S52單片機(jī)原理圖</p><p> DS18B20可以采用
39、兩種方式供電:一種是采用電源供電方式,此時(shí)DS18B20的第1腳接地,第2腳作為信號(hào)線,第3腳接電源;另一種是寄生電源供電方式,如圖2-4所示。</p><p> 獨(dú)特的一線接口,只需要一條口線通信多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用 無(wú)需外部元件 可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無(wú)需備用電源 測(cè)量溫度范圍為-55 °C至+125 ℃ 。華氏相當(dāng)于是-67 °F到257華氏
40、度 -10 °C至+85 °C范圍內(nèi)精度為±0.5 °C。</p><p> 溫度傳感器可編程的分辨率為9~12位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的非易失性溫度報(bào)警設(shè)置 應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng)</p><p> 描述該DS18B20的數(shù)字溫度計(jì)提供9至12位(可編程設(shè)備溫度讀數(shù)
41、。信息被發(fā)送到DS18B20 通過(guò)1線接口,所以中央為處理器與DS18B20只有一個(gè)一條口線連接。為讀寫以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。 因?yàn)槊恳粋€(gè)DS18B20的包含一個(gè)獨(dú)特的序號(hào),多個(gè)DS18B20可以同時(shí)存在于一條總線。這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測(cè)建筑物內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過(guò)程監(jiān)測(cè)和控制。DS18B20溫度轉(zhuǎn)換電路如圖2-4所示。</p><
42、p> 圖2-4 DS18B20溫度轉(zhuǎn)換電路</p><p> 數(shù)碼管顯示部分。此部分由數(shù)碼管和PNP型三極管組成。數(shù)碼管為共陽(yáng)數(shù)碼管,基極輸出低電平,發(fā)射極和集電極為高電平,可增加數(shù)碼管輸入端的電流強(qiáng)度。圖2-5為數(shù)碼管顯示的原理圖:</p><p> 圖2-5數(shù)碼管顯示原理圖</p><p> 外圍部分。外圍部分包括獨(dú)立按鍵電路(左圖)和蜂鳴器電路(
43、右圖),如圖2-6所示。SW19為降低報(bào)警溫度上下限值按鍵,JPDL中1管腳接P3.2管腳(外部中斷0),當(dāng)檢測(cè)到SW19鍵按下(及P3.2管腳有低電平時(shí)),響應(yīng)外部中斷0(及降低報(bào)警溫度上下限值);SW20為增加報(bào)警溫度上下限值按鍵,JPDL中3管腳接P3.3管腳(外部中斷1),當(dāng)檢測(cè)到SW20鍵按下(及P3.3管腳有低電平時(shí)),響應(yīng)外部中斷1(及增加報(bào)警溫度上下限值);SW21為調(diào)整工作模式按鍵,當(dāng)按下SW21鍵時(shí),增加標(biāo)記變量的值
44、,當(dāng)為3時(shí)將其置0(共三種工作模式,對(duì)應(yīng)標(biāo)記變量0,1,2三種值)。蜂鳴器為低電平有效,在定時(shí)器0中對(duì)采集溫度進(jìn)行報(bào)警檢測(cè)。</p><p> 圖2-6外圍部分電路原理圖</p><p> 第三章 系統(tǒng)中選用的幾種器件的介紹</p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器 RAM、只讀存儲(chǔ)
45、器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/定時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。目前電子元器件產(chǎn)業(yè)除了微處理器、嵌入式系統(tǒng)器件外,大多是圍繞現(xiàn)代電子系統(tǒng)配套的元器件產(chǎn)業(yè),例如滿足人機(jī)交互用的按鍵,LED/LCD顯示驅(qū)動(dòng)、LED/LCD顯示單元、語(yǔ)音集成器件等,滿足數(shù)據(jù)采集通道要求的數(shù)字傳感器、ADC、數(shù)據(jù)采集模塊、信號(hào)調(diào)理模塊等。 <
46、/p><p> 本次設(shè)計(jì)是以AT89S52為控制核心,采用DS18B20芯片實(shí)現(xiàn)溫度采集和轉(zhuǎn)換,由數(shù)碼管顯示模塊進(jìn)行采集溫度的顯示,并由中斷獨(dú)立按鍵實(shí)現(xiàn)報(bào)警溫度的設(shè)置,以下是對(duì)各個(gè)器件的詳細(xì)介紹。</p><p> 3.1 AT89S52單片機(jī)</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。
47、使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。</p><p> 3.1.1 AT89S52特性</p><p> (1)與MCS-51單片機(jī)產(chǎn)品兼容;<
48、/p><p> (2)8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器;</p><p> ?。?)1000次擦寫周期;</p><p> (4)全靜態(tài)操作:0Hz-33MHz;</p><p> (5)三級(jí)加密程序存儲(chǔ)器;</p><p> (6)32個(gè)可編程I/O口線;</p><p> (7)三
49、個(gè)16位定時(shí)器/計(jì)數(shù)器;</p><p><b> (8)六個(gè)中斷源;</b></p><p> ?。?)全雙工UART串行通道;</p><p> ?。?0)低功耗空閑和掉電模式;</p><p> ?。?1)掉電后中斷可喚醒;</p><p> ?。?2)看門狗定時(shí)器;</p>
50、<p> ?。?3)雙數(shù)據(jù)指針;</p><p> ?。?4)掉電標(biāo)識(shí)符 。</p><p> 3.1.2 MCS-51單片機(jī)中斷系統(tǒng)</p><p> a.中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)</p><p> MCS-51單片機(jī)的中斷系統(tǒng)由與中斷有關(guān)的特殊功能寄存器、中斷入口、順序查詢邏輯電路組成。中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)圖如圖3-1
51、所示。</p><p> 圖3-1 中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)圖</p><p><b> b.中斷源</b></p><p> MCS-51中斷系統(tǒng)提供了5個(gè)中斷源,其中INT0、INT1為外中斷,T0、T1、串行口中斷(RXD、TXD)為內(nèi)中斷。 5個(gè)中斷源的符號(hào)、名稱及產(chǎn)生的條件如下。</p><p> INT0:
52、外部中斷0,由P3.2端口線引入,低電平或下跳沿引起。</p><p> INT1:外部中斷1,由P3.3端口線引入,低電平或下跳沿引起。</p><p> T0:定時(shí)器/計(jì)數(shù)器0中斷,由T0計(jì)滿回零引起。</p><p> T1:定時(shí)器/計(jì)數(shù)器l中斷,由T1計(jì)滿回零引起。</p><p> TI/RI:串行I/O中斷,串行端口完成一
53、幀字符發(fā)送/接收后引起。</p><p><b> c.中斷控制寄存器</b></p><p> MCS-51中斷系統(tǒng)在4個(gè)特殊功能寄存器控制下工作。這4個(gè)特殊功能寄存器是定時(shí)/計(jì)數(shù)器控制寄存器(TCON)、串行口控制寄存器(SCON)、中斷允許控制寄存器(IE)和中斷優(yōu)先級(jí)控制寄存器(IP)。通過(guò)對(duì)這4個(gè)特殊功能寄存器的相應(yīng)位進(jìn)行置位或復(fù)位操作,可實(shí)現(xiàn)各種中斷控
54、制功能。</p><p> TCON定時(shí)/計(jì)數(shù)器控制寄存器。控制定時(shí)/計(jì)數(shù)器T0和T1的溢出中斷、外中斷的觸發(fā)方式和鎖存外中斷請(qǐng)求標(biāo)志位。TCON寄存器如圖3-2所示。</p><p> 圖3-2 TCON寄存器</p><p> IT0(TCON.0)外部中斷INT0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),低電平觸發(fā)方式。有效信號(hào)至少一個(gè)機(jī)器周期有效。當(dāng)IT0=1時(shí)
55、,為邊沿觸發(fā)方式(下降沿有效)。有效信號(hào)至少兩個(gè)機(jī)器周期。</p><p> IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。當(dāng)INT0引腳輸入有效中斷信號(hào)時(shí)IE0由硬件置1。CPU響應(yīng)中斷后自動(dòng)清零。</p><p> IT1:外部中斷INT1中斷方式控制位。與IT0類同。</p><p> IE1:外部中斷INT1的中斷請(qǐng)求標(biāo)志。與IE0類似。</
56、p><p> TF0:片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。定時(shí)/計(jì)數(shù)器的核心為加法計(jì)數(shù)器,當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生定時(shí)或計(jì)數(shù)溢出時(shí),由硬件置位TF0或TF1,向CPU申請(qǐng)中斷,CPU響應(yīng)中斷后,會(huì)自動(dòng)清零TF0或TF1。</p><p> TF1:片內(nèi)定時(shí)/計(jì)數(shù)器1溢出中斷請(qǐng)求標(biāo)志。與TF0類同</p><p> SCON中的中斷請(qǐng)求標(biāo)志位,如下圖3-3 SCON
57、寄存器。</p><p> 圖3-3 SCON寄存器</p><p> TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志位。CPU將一個(gè)數(shù)據(jù)寫入發(fā)送緩沖器SBUF時(shí),就啟動(dòng)發(fā)送,每發(fā)送完一幀串行數(shù)據(jù)后,硬件置位TI。但CPU響應(yīng)中斷時(shí),并不清除TI中斷標(biāo)志,必須在中斷服務(wù)程序中由軟件對(duì)TI清0。</p><p> RI:串行口接收中斷請(qǐng)求標(biāo)志位。在串行口允許接收時(shí),每接收完一幀數(shù)
58、據(jù),由硬件自動(dòng)將RI位置為1。CPU響應(yīng)中斷時(shí),并不清除RI中斷標(biāo)志,也必須在中斷服務(wù)程序中由軟件對(duì)TI標(biāo)志清0。</p><p> IE中斷允許寄存器,如下圖3-4 IE寄存器。</p><p> 圖3-4 IE寄存器</p><p> EA:總中斷允許控制位。當(dāng)EA=0時(shí),屏蔽所有的中斷;當(dāng)EA=1時(shí),開放所有的中斷。</p><p&g
59、t; ES:串行口中斷允許控制位。當(dāng)ES=0時(shí),屏蔽串行口中斷;當(dāng)ES=1,開放串行口中斷。</p><p> ET1:定時(shí)/計(jì)數(shù)器T1的中斷允許控制位。當(dāng)ET1=0時(shí),屏蔽T1的溢出中斷;當(dāng)ET1=1,開放T1的溢出中斷。</p><p> EX1:外中斷1的中斷允許控制位。EX1=0時(shí),屏蔽外部中斷1的中斷;EX1=1 ,開放外部中斷1的中斷。</p><p&
60、gt; ET0:T0中斷允許控制位。功能與ET1相同。</p><p> EX0:INT0中斷允許控制位。功能與EX1相同。</p><p> 3.2 DS18B20溫度轉(zhuǎn)換芯片</p><p> a. 數(shù)字溫度傳感器DS18B20介紹</p><p> DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后推出的一種改進(jìn)型
61、智能溫度傳感器,作為檢測(cè)元件,測(cè)溫范圍為-55~125℃,最高分辨率可達(dá)0.0625℃。與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。</p><p> b. DS18B20內(nèi)部結(jié)構(gòu)</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器
62、。該裝置信號(hào)線高的時(shí)候,內(nèi)部電容器 儲(chǔ)存能量通由1線通信線路給片子供電,而且在低電平期間為片子供電直至下一個(gè)高電平的到來(lái)重新充電。 DS18B20的電源也可以從外部3V-5 .5V的電壓得到。</p><p> 數(shù)據(jù)存儲(chǔ)在DS18B20的存儲(chǔ)器。一個(gè)控制功能指揮指示DS18B20的演出測(cè)溫。測(cè)量結(jié)果將被放置在DS18B20內(nèi)存中,并可以讓閱讀發(fā)出記憶功能的指揮,閱讀內(nèi)容的片上存儲(chǔ)器。溫度報(bào)警觸發(fā)器TH和TL都有
63、一字節(jié)EEPROM 的數(shù)據(jù)。如果DS18B20不使用報(bào)警檢查指令,這些寄存器可作為一般的用戶記憶用途。在片上還載有配置字節(jié)以理想的解決溫度數(shù)字轉(zhuǎn)換。寫TH,TL指令以及配置字節(jié)利用一個(gè)記憶功能的指令完成。通過(guò)緩存器讀寄存器。所有數(shù)據(jù)的讀,寫都是從最低位開始。</p><p> DS18B20內(nèi)部結(jié)構(gòu)圖如圖3-2所示。</p><p> 圖3-2 DS18B20內(nèi)部結(jié)構(gòu)圖</p&g
64、t;<p> c. DS18B20引腳定義</p><p> (1) DQ為數(shù)字信號(hào)輸入/輸出端;(2)GND為電源地; (3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。DS18B20有3個(gè)管腳,每個(gè)管腳對(duì)應(yīng)相應(yīng)的功能,具體見下表對(duì)各個(gè)管腳的描述,DS18B20的管腳圖如圖3-1所示。</p><p> 圖3-1 DS18B20管腳</p>
65、<p> d. DS18B20工作原理</p><p> DS18B20的讀寫時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。 DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)
66、數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即 為所測(cè)溫度。圖3中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。如圖3-3所示。&l
67、t;/p><p> 圖3-3 DS18B20工作原理圖</p><p> e. DS18B20溫度值格式</p><p> DS18B20溫度值格式表:這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0, 這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1
68、,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際 溫度。 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FE6FH,-55℃的數(shù)字輸出為FC90H 。如圖3-4 DS18B20溫度值格式表。</p><p> 圖3-4 DS18B20溫度值格式表</p><p> f. DS18B20暫存寄存器</p>
69、<p> 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。對(duì)應(yīng)的溫度計(jì)算: 當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。DS18B20暫存寄存器如圖3-5所示。</p><p> 圖3-5 DS18B20暫存寄存器&
70、lt;/p><p> g. 1-wire單總線數(shù)據(jù)傳送ROM,RAM命令</p><p> 根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行 復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收
71、到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。ROM,RAM指令表見下圖3-6,圖3-7所示。</p><p> 圖3-6 ROM指令表</p><p> 圖3-7 RAM指令表</p><p><b> 3.3 數(shù)碼管</b></p><p> 數(shù)碼管按段數(shù)
72、分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;</p><p> 按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極
73、為高電平時(shí),相應(yīng)字段就不亮。。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。共陽(yáng)數(shù)碼管電路連接如下圖3-8所示</p><p><b> 圖3-8共陽(yáng)數(shù)碼管</b></p><p><
74、;b> 第四章 軟件設(shè)計(jì)</b></p><p> 本設(shè)計(jì)采用C語(yǔ)言編程完成,由于C語(yǔ)言的模塊化設(shè)計(jì)思路,教容易完成本設(shè)計(jì),且8051單片機(jī)教多用C語(yǔ)言編寫完成,用匯編編寫較為復(fù)雜,并且C語(yǔ)言也是程序語(yǔ)言的基礎(chǔ),是學(xué)好后續(xù)更多高級(jí)語(yǔ)言的基礎(chǔ)。C語(yǔ)言是一種面向過(guò)程的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它是目前眾多計(jì)算機(jī)語(yǔ)言中舉世公認(rèn)的優(yōu)秀的結(jié)構(gòu)程序設(shè)計(jì)語(yǔ)言之一。它由美國(guó)貝爾研究所的D.M.Ritchie于19
75、72年推出。1978后,C語(yǔ)言已先后被移植到大、中、小及微型機(jī)上。</p><p> C語(yǔ)言發(fā)展如此迅速,而且成為最受歡迎的語(yǔ)言之一,主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件,如DBASE Ⅳ都是由C 語(yǔ)言編寫的。用C 語(yǔ)言加上一些匯編語(yǔ)言子程序,就更能顯示C 語(yǔ)言的優(yōu)勢(shì)了,像PC- DOS、WORDSTAR等就是用這種方法編寫的。</p><p> 4.1 整體功能概述</
76、p><p> 本系統(tǒng)是溫度采集系統(tǒng),所實(shí)現(xiàn)的功能主要分為以下幾部分:1.采集即時(shí)溫度并顯示2.調(diào)整工作模式3.設(shè)置報(bào)警溫度。 </p><p> 這個(gè)系統(tǒng)軟件編寫使用C語(yǔ)言,由于C比較簡(jiǎn)單,邏輯算法易于表示。圖4-1為系統(tǒng)總流程圖。</p><p> 4-1 系統(tǒng)總流程圖</p><p> 4.2 DS18B2
77、0復(fù)位子程序</p><p> DS18B20的初始化</p><p> ?。?) 先將數(shù)據(jù)線置高電平“1”。</p><p> ?。?) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))</p><p> (3) 數(shù)據(jù)線拉到低電平“0”。</p><p> (4) 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480
78、到960微秒)。</p><p> ?。?) 數(shù)據(jù)線拉到高電平“1”。</p><p> ?。?) 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。</p><p> (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后
79、,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。</p><p> (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。</p><p> 圖4-2為DS18B20復(fù)位子程序流程圖。</p><p> 圖4-2 DS18B20復(fù)位子程序流程圖</p><p> DS18B20復(fù)位子程序如下:</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 復(fù)位成功,繼續(xù)下一步</p><p><b> } </b></p><p> delay(45); //延時(shí)500 us</p><p> FLAG1=~DQ;
83、 //FLAG1=1 等待從機(jī)應(yīng)答完畢</p><p><b> }</b></p><p> DQ=1; //拉高電平</p><p><b> 4.3寫命令子程序</b></p><p> DS18B20的寫操作</p><
84、;p> ?。?) 數(shù)據(jù)線先置低電平“0”。</p><p> ?。?) 延時(shí)確定的時(shí)間為15微秒。</p><p> ?。?) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。</p><p> ?。?) 延時(shí)時(shí)間為45微秒。</p><p> ?。?) 將數(shù)據(jù)線拉到高電平。</p><p> ?。?) 重復(fù)上(
85、1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。</p><p> ?。?) 最后將數(shù)據(jù)線拉高。寫命令子程序流程圖如下:</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> ?。?)將數(shù)據(jù)線拉高“1”。</p><p><b> ?。?)延時(shí)2微秒。</b></p><p> ?。?)將數(shù)據(jù)線拉低“0”。</p><p> ?。?)延時(shí)15微秒。</p><p> ?。?)將數(shù)據(jù)線拉高“1”。</p&g
90、t;<p> (6)延時(shí)15微秒。</p><p> (7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。</p><p> ?。?)延時(shí)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 讀時(shí)隙由主機(jī)發(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> 當(dāng)DS18B20接收到溫
94、度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存RAM的第1.2字節(jié)中。如圖4-5所示。</p><p> 圖4-5讀溫度子程序流程圖</p><p><b> 讀溫度子程序代碼:</b></p><p> read_temp()</p><p> {ow_reset
95、(); //總線復(fù)位</p><p> delay(200);</p><p> write_byte(0xcc); //發(fā)跳過(guò)ROM命令</p><p> write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p> ow_reset(); <
96、;/p><p><b> delay(1);</b></p><p> write_byte(0xcc); //發(fā)跳過(guò)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> 通過(guò)獨(dú)立按鍵設(shè)置工作模式(三種工作模式),模式一為采集即時(shí)溫度,模式二為設(shè)置報(bào)警上限溫度,模式三為設(shè)置報(bào)警下限溫度。如圖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; //關(guān)閉外部中斷0 //溫度采集模式</p><p> EX1=0;
99、 //關(guān)閉外部中斷1</p><p> read_temp();</p><p> work_temp();</p><p> scan();break;</p><p> case 1: BEEP=1; //關(guān)閉蜂鳴器 //調(diào)上限模式</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; //關(guān)閉蜂鳴器 //調(diào)下限模式</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> 第五章 問(wèn)題及解決方法</p><p> 本次設(shè)計(jì),看似簡(jiǎn)單,只用到一塊芯片,但考慮到實(shí)際溫度采集的過(guò)程卻并非易事,要在充分了解DS18B20芯片和51單片機(jī)硬件的基礎(chǔ)上才能進(jìn)行編程,DS18B20復(fù)位,讀寫要嚴(yán)格按照1-wire總線協(xié)議的要求,對(duì)暫存器RAM讀取的數(shù)據(jù)要進(jìn)行處理,尤其是讀取低八數(shù)據(jù)中低四位小數(shù)位數(shù)據(jù)的處理,起初并未考慮到小數(shù)位,只是顯示個(gè)位,十位和百位,這樣就會(huì)影響到采集溫度
104、數(shù)據(jù)的精度,在查閱了相關(guān)資料后,利用查表法二進(jìn)制小數(shù)位數(shù)和十進(jìn)制對(duì)應(yīng)關(guān)系后解決了這個(gè)問(wèn)題。再如,對(duì)采集溫度負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換為原碼的處理,要對(duì)低位溫度數(shù)據(jù)分情況處理。</p><p> 5.1 調(diào)試中出現(xiàn)的問(wèn)題及解決方法:</p><p> 1.蜂鳴器一直響,不能達(dá)到預(yù)定的發(fā)出“嘟嘟”聲</p><p> 原因:未設(shè)置間隔變量</p><p>
105、; 解決方法:設(shè)置間隔變量,在定時(shí)器中將其不斷取反處理。</p><p> 結(jié)果:蜂鳴器達(dá)到預(yù)定要求的響聲,報(bào)警功能完成。</p><p> 2.當(dāng)處于調(diào)整溫度模式是按溫度值增減件,溫度值未發(fā)生變化</p><p> 原因:中斷獨(dú)立按鍵P3.2和P3.3管腳接線觸碰在一起</p><p> 解決方法:將兩管腳接線分開后,軟件上加上去
106、按鍵前端抖動(dòng) </p><p> 結(jié)果:調(diào)溫度增減按鍵反應(yīng)靈敏,達(dá)到預(yù)定要求。</p><p><b> 5.2 最終結(jié)果</b></p><p> 這次畢業(yè)設(shè)計(jì)總共歷時(shí)兩個(gè)多月,從前期的查資料,選擇單片機(jī)型號(hào)和溫度采集芯片,到了解芯片和單片機(jī)硬件結(jié)構(gòu),數(shù)據(jù)處理和芯片時(shí)序1-wire總線協(xié)議,再到用ProtelSE99畫原理圖和程序設(shè)計(jì),
107、一直到總后在單片機(jī)上調(diào)試成功。該系統(tǒng)具備采集溫度并顯示的功能,能夠?qū)?bào)警溫度進(jìn)行設(shè)置。最終結(jié)果圖見下圖5-1。</p><p> 圖5-1 最終結(jié)果圖</p><p><b> 第六章 結(jié)論</b></p><p> 本次設(shè)計(jì),是在查閱了大量資料之后,反復(fù)修改調(diào)試才最終調(diào)試成功,也是對(duì)大學(xué)四年所學(xué)知識(shí)的一次回顧和總結(jié),將理論所學(xué)知識(shí)應(yīng)用
108、于解決實(shí)際問(wèn)題。調(diào)試中遇到許多問(wèn)題,經(jīng)過(guò)潛心研覺和思考之后逐一解決。通過(guò)本次畢業(yè)設(shè)計(jì)我感覺受益匪淺,這將對(duì)我以后的工作和學(xué)習(xí)產(chǎn)生深遠(yuǎn)的影響。 </p><p> 在調(diào)試程序時(shí)遇到許多問(wèn)題,起初,在將編寫程序下載到單片機(jī)之后蜂鳴器不停</p><p> 的響,在查閱了相關(guān)資料之后才發(fā)現(xiàn)是下載軟件的問(wèn)題,在重新安裝了下載軟件</p><p> 之后程序被成功的燒寫
109、進(jìn)單片機(jī)中,但是中斷按鍵設(shè)置報(bào)警溫度卻不起作用,在</p><p> 檢查了軟件和硬件連接之后,才發(fā)現(xiàn)問(wèn)題是將兩中斷按鍵管腳連線相觸碰,分離</p><p> 連線之后,問(wèn)題得到解決。</p><p> 這次畢業(yè)設(shè)計(jì),我的收獲不只是學(xué)到了單片機(jī)的理論知識(shí),更重要的是我鍛煉了動(dòng)手能力。</p><p> 本次畢業(yè)設(shè)計(jì)雖然完成了溫度采集的
110、基本功能,但是還存在一些可改進(jìn)的地方,在實(shí)際應(yīng)用中往往還需要連接上位機(jī),將所采集的溫度數(shù)據(jù)傳遞給上位機(jī),以便完成</p><p><b> 對(duì)溫度的控制。</b></p><p> 溫度采集系統(tǒng)必將朝著越來(lái)越智能的方向發(fā)展,溫度采集智能分析和溫度控制將是溫度采集未來(lái)的主流方向。</p><p><b> 致 謝</b>
111、;</p><p> 本次畢業(yè)設(shè)計(jì),我要感謝的人有很多,但是我最要感謝的人還是xx老師,</p><p> 她在這兩個(gè)月里給予了我莫大的幫助。起初,當(dāng)我看到畢設(shè)題目時(shí),腦袋一片空白,不知該從何做起,而xx老師卻不辭勞苦,仔細(xì)認(rèn)真的一點(diǎn)一點(diǎn)輔導(dǎo)我,給我提供了大量的畢設(shè)相關(guān)資料。當(dāng)我遇到問(wèn)題時(shí)xx老師循循善誘,幫我拓寬了思維。在提供資料時(shí),她精挑細(xì)選,不遺漏任何一點(diǎn)相關(guān)的文獻(xiàn)資料,在我身上
112、她花費(fèi)了大量的時(shí)間和精力,在這里我要非常的感謝她。</p><p> 再次我要感謝實(shí)驗(yàn)室的同學(xué),當(dāng)xx老師不在時(shí),他們也給我提供了一些幫助,幫我解決了相關(guān)問(wèn)題。</p><p> 最后,我還要感謝大學(xué)期間曾辛勤教導(dǎo)過(guò)我的老師們,正是他們的孜孜教誨,才使我學(xué)到了這么多的知識(shí),為本次畢業(yè)設(shè)計(jì)打下了堅(jiān)實(shí)的理論基礎(chǔ)。在這里我對(duì)他們表示最誠(chéng)摯的感謝!</p><p>&l
113、t;b> 參考文獻(xiàn)</b></p><p> [1] 何立民,單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),北京:航天航空大學(xué)出版社;</p><p> [2] 郭天詳,新概念51單片機(jī)C語(yǔ)言教程,北京:電子工業(yè)出版社,2009;</p><p> [3] 焦峰超,基于51單片機(jī)的小型溫度測(cè)量系統(tǒng),宿州學(xué)院學(xué)報(bào),Vol.23 No.2,2008年4月;</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)與無(wú)線技術(shù)的倉(cāng)庫(kù)溫度采集系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---基于單片機(jī)的溫度濕度采集顯示控制系統(tǒng)
- 基于單片機(jī)與無(wú)線技術(shù)的倉(cāng)庫(kù)溫度采集系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---基于單片機(jī)的溫度濕度采集顯示控制系統(tǒng)
- 基于單片機(jī)溫度采集系統(tǒng)的設(shè)計(jì)論文(
- 基于單片機(jī)溫度采集系統(tǒng)的設(shè)計(jì)論文(
- 基于單片機(jī)的溫度測(cè)量系統(tǒng)-畢業(yè)論文
- 關(guān)于單片機(jī)的畢業(yè)論文--基于單片機(jī)的時(shí)間溫度顯示系統(tǒng)
- 畢業(yè)論文--單片機(jī)數(shù)據(jù)采集系統(tǒng)
- 基于單片機(jī)的多參數(shù)采集系統(tǒng)—畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的溫度控制
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 基于at89s52單片機(jī)溫度采集設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)溫度控制系統(tǒng)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論