版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 學(xué)號: *********</p><p> 基于AT89C51單片機的</p><p> 蔬菜大棚多點溫度測試</p><p> 學(xué)院名稱: 物理與信息工程學(xué)院 </p><p> 專業(yè)名稱: ************ </p><p> 年級班別: 20
2、11級1班 </p><p> 姓 名: ****** </p><p> 指導(dǎo)教師: ****** </p><p><b> 2015年04月</b></p><p><b> 摘要</b></p>&l
3、t;p> 通過運用DS18B20數(shù)字溫度傳感器的測溫原理和特性,利用它獨特的單線總線接口方式,與AT89C51單片機相結(jié)合實現(xiàn)多點測溫。并給出了測溫系統(tǒng)中對DS18B20操作的C51編程實例。實現(xiàn)了系統(tǒng)接口簡單、精度高、抗干擾能力強、工作穩(wěn)定等特點。</p><p> 本文介紹基于AT89C51單片機、C語言和DS18B20傳感器的多點溫度測量系統(tǒng)設(shè)計及其在Proteus平臺下的仿真。利用51單片機的并
4、行口,同步快速讀取8支DS18B20溫度,實現(xiàn)了在多點溫度測量系統(tǒng)中對多個傳感器的快速精確識別和處理,并給出了具體的編程實例和仿真結(jié)果。</p><p> 關(guān)鍵詞 單片機;DS18B2;Proteus仿真;C51編程</p><p><b> Abstract</b></p><p> With using the measuring p
5、rinciple and characteristics of the numerical temperature sensor of DS18B20,making use of special characteristics of single line as the total line, and combine together with AT89C51 to realize several points temperature
6、measuring. Also this paper gives the example of the C51 program which is used to operate to the DS18B20. Make system have characteristics of simple, high accuracy, strong anti- interference ability, stable work etc.</
7、p><p> This design introduced AT89C51 monolithic integrated circuit temperature control system design from the hardware and the software two aspects. A multipoint temperature measurement system based on DS18B2
8、0 and AT89C51 microcontroller is designed and simulated by Proteus in this paper, including software and hardware design of this system. The system has such advantages as novel circuit design, quick measurement speed, hi
9、gh measurement accuracy, and good practicality.</p><p> Key words MCU;DS18B20;Proteus simulation;C51 program</p><p><b> 目錄</b></p><p><b> 摘要II</b></p&
10、gt;<p> AbstractIII</p><p><b> 第一章緒論1</b></p><p> 1.1溫度智能測控系統(tǒng)的研究背景與現(xiàn)狀分析1</p><p> 1.2溫度智能測控系統(tǒng)的工作原理2</p><p> 第二章 方案論證3</p><p>&
11、lt;b> 2.1方案設(shè)計3</b></p><p> 2.1.1方案一3</p><p> 2.1.2方案二3</p><p><b> 2.2方案選擇4</b></p><p> 第三章 AT89C51單片機簡介5</p><p> 3.1單片機的發(fā)展
12、5</p><p> 3.2單片機定義及 AT89C51單片機5</p><p> 3.3單片機的基本結(jié)構(gòu)5</p><p> 第四章 DS18B20單線數(shù)字溫度計的原理8</p><p><b> 4.1 概述8</b></p><p><b> 4.2主要特性8&
13、lt;/b></p><p> 4.3工作原理及應(yīng)用9</p><p> 4.4單片機對DS18B20操作流程10</p><p> 4.5 DS18B20與單片機的接口11</p><p> 4.6 DS18B20芯片ROM指令表11</p><p> 4.7 DS18B20芯片存儲器操作指令
14、表12</p><p> 4.8 DS18B20復(fù)位及應(yīng)答關(guān)系及讀寫13</p><p> 4.9 工作時序圖13</p><p> 第五章 硬件設(shè)計17</p><p> 5.1 系統(tǒng)結(jié)構(gòu)設(shè)計思路17</p><p> 5.2 系統(tǒng)框圖19</p><p> 5.3
15、系統(tǒng)硬件設(shè)計19</p><p> 第六章 系統(tǒng)軟件設(shè)計22</p><p> 6.1系統(tǒng)軟件設(shè)計思路22</p><p> 第七章 系統(tǒng)運行結(jié)果29</p><p><b> 結(jié)束語35</b></p><p><b> 致謝36</b></p&
16、gt;<p><b> 參考文獻(xiàn)37</b></p><p> 附錄 溫度控制程序38</p><p><b> 緒論</b></p><p> 1.1蔬菜大棚溫度溫度測試的目的</p><p> 本設(shè)計的內(nèi)容是蔬菜大棚溫度測試控制系統(tǒng),控制對象是溫度。植物在生長發(fā)育的過
17、程中,溫度的高低,直接影響到花卉的生理活動,如酶的活性、光合作用、呼吸作用、蒸騰作用,這是在原產(chǎn)地已形成固有的特殊性能。因溫度周期的變化,可直接影響植物的生長,果實以及果實的數(shù)量大小等方面。生物正常的生命活動一般是在相對狹窄的溫度范圍內(nèi)進(jìn)行,大致在零下幾度到50℃左右之間。溫度對生物的作用可分為最低溫度、最適溫度和最高溫度,即生物的三基點溫度。當(dāng)環(huán)境溫度在最低和最適溫度之間時,生物體內(nèi)的生理生化反應(yīng)會隨著溫度的升高而加快,代謝活動加強,
18、從而加快生長發(fā)育速度;當(dāng)溫度高于最適溫度后,參與生理生化反應(yīng)的酶系統(tǒng)受到影響,代謝活動受阻,勢必影響到生物正常的生長發(fā)育。當(dāng)環(huán)境溫度低于最低溫度或高于最高溫度,生物將受到嚴(yán)重危害,甚至死亡。 </p><p> 蔬菜大棚是開發(fā)日光資源、充分利用太陽光能的主要形式之一,能避光、增產(chǎn)、保濕,為蔬菜生長創(chuàng)造一個良好環(huán)境。蔬菜大棚作為一個相對封閉的環(huán)境,其內(nèi)部形成了一個小氣候環(huán)境,良好的空氣環(huán)境是蔬菜正常生長
19、的重要條件。為了增產(chǎn)、增收,要注意大棚內(nèi)部的氣體、溫度和濕度3個要因素。氣體主要是指棚內(nèi)的二氧化碳的含量。當(dāng)空氣中的二氧化碳濃度提高到0.1%時,可使蔬菜光合作用速率增加1倍以上,增產(chǎn)20%~80%;若使二氧化碳濃度降至0.005%時,光合作用幾乎停止。蔬菜生長的適宜溫度為20°~30℃。大棚內(nèi)白天增溫快,當(dāng)棚外平均氣溫為15℃時,棚內(nèi)可達(dá)40℃~50℃。因此,要適時調(diào)節(jié)棚內(nèi)溫度,避免高溫危害。塑料大棚經(jīng)常處于密閉狀態(tài),蒸發(fā)量
20、大大減小,內(nèi)部濕度一般在80%~90%,濕度過大極易導(dǎo)致病蟲害的發(fā)生。現(xiàn)在對大棚內(nèi)氣體、溫度和濕度的有效調(diào)節(jié),主要是通過適時的通風(fēng)來實現(xiàn)。二氧化碳含量過大和濕度過大都會導(dǎo)致溫度升高。 </p><p> 而以往溫度控制是由人工完成的而且不夠重視,其實在很多場所溫度都需要監(jiān)控以防止發(fā)生意外。針對此問題,本系統(tǒng)設(shè)計的目的是實現(xiàn)一種可連續(xù)高精度調(diào)溫的溫度控制系統(tǒng),它應(yīng)用廣泛,功能強大,小巧美觀,便于攜帶,是
21、一款既</p><p> 實用又廉價的控制系統(tǒng)。</p><p> 1.2溫度智能測控系統(tǒng)的工作原理</p><p> 課題采用由Dallas公司生產(chǎn)的智能數(shù)字溫度傳感器DS18B20和Atmel公司推出的單片機AT89C51以及相關(guān)外圍電路實現(xiàn)高精度、多點溫度測量系統(tǒng)。同時本設(shè)計在單片機系統(tǒng)設(shè)計主流EDA軟件Proteus環(huán)境下完成,能夠及時觀察效果和修改軟
22、硬件。</p><p> 本系統(tǒng)采用8片DS18B20構(gòu)成小型溫度傳感器網(wǎng)絡(luò),通過并行連接方式連接至單片機AT89C51的8個通用I/O端口。單片機獲得溫度信息后,通過特定的算法,將處理后的溫度信息通過LED顯示出來,同時通過串行口送上位機處理。每個端口只連接一個溫度傳感器件,也即一條一線制總線上僅有一個DS18B20。并在Keil環(huán)境下編輯應(yīng)用軟件程序,通過Proteus和Keil的聯(lián)合實現(xiàn)該多點溫度測量系統(tǒng)
23、的設(shè)計、調(diào)試和仿真。</p><p><b> 第二章 方案論證</b></p><p> 溫度測量的方案有很多種,可以采用傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對于控制系統(tǒng)可以采用計算機、單片機等。</p><p><b> 2.1方案設(shè)計</b></p><p><
24、;b> 2.1.1方案一</b></p><p> 測溫電路的設(shè)計,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,電路設(shè)計比較麻煩。</p><p><b> 2.1.2方案二</b></p
25、><p> DS18B20一對一連接方案,就是一個I/O口連接一個DS18B20,這種方案雖然占用單片機的三個I/O口,但采用這種方案大大的簡化了編程難度,縮短了設(shè)計周期,同時也能保證系統(tǒng)的穩(wěn)定,方案二的框圖如圖2.1所示。</p><p><b> 圖2-1系統(tǒng)框圖</b></p><p><b> 2.2方案選擇</b&g
26、t;</p><p> 考慮使用DS18B20,結(jié)合單片機電路設(shè)計,用八只DS18B20,直接讀取多點被測溫度值,之后進(jìn)行轉(zhuǎn)換,依次完成設(shè)計要求。 </p><p> 比較以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計容易實現(xiàn),故實際設(shè)計中擬采用方案二。</p><p> 第三章 AT89C51單片機簡介</p><
27、p><b> 3.1單片機的發(fā)展</b></p><p> 單片微型計算機自20世紀(jì)70年代問世以來,以對人類社會產(chǎn)生了巨大的影響。尤其是美國Intel公司生產(chǎn)的MCS-51系列單片機,由于其具有集成度高、處理功能強、可靠性高、系統(tǒng)結(jié)構(gòu)簡單、價格低廉、易于使用等優(yōu)點,在世界范圍內(nèi)已經(jīng)得到廣泛的普及和應(yīng)用。而且隨著以MCS-51單片機基本內(nèi)核為核心的各種擴(kuò)展型、增強型的新型單片機不斷
28、推出,MCS-51系列仍是我國單片機應(yīng)用領(lǐng)域的主流機型。目前在工業(yè)控制、智能儀器儀表、辦公室自動化、家用電器等諸多領(lǐng)域,到處都可看見單片機的蹤影,單片機技術(shù)開發(fā)和應(yīng)用高水平已成為一個國家工業(yè)化水平的標(biāo)志之一。</p><p> 3.2單片機定義及 AT89C51單片機</p><p> 單片機(Microcontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處
29、理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時的4位、8位單片機,發(fā)展到現(xiàn)在的300M的高速單片機。</p><p> AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能 C
30、MOS 8位單片機,片內(nèi)含4K bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128 bytes 的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和 Flash 存儲單元。功能強大AT89C51單片機可提供高性價比的應(yīng)用場合,可靈活運用與各種控制領(lǐng)域。</p><p> 3.3單片機的基本結(jié)構(gòu)</p&g
31、t;<p> 微處理器(CPU)MCS-51單片機中有1個8位的CPU,包括運算器和控制器兩大部分,不僅可處理字節(jié)數(shù)據(jù),還可以進(jìn)行位變量的處理。例如:位處理、查表、狀態(tài)檢測、中斷處理等。</p><p> 內(nèi)部數(shù)據(jù)存儲器(RAM)單片機芯片共有256個RAM單元,其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前
32、128單元,簡稱內(nèi)部RAM。地址范圍為00H~FFH(256B)。片外最多可外擴(kuò)64KB。RAM是一個多用多功能數(shù)據(jù)存儲器,有數(shù)據(jù)存儲、通用工作寄存器、堆棧、位地址等空間。</p><p> 內(nèi)部程序存儲器(ROM)</p><p> 單片機內(nèi)部有4KB的ROM,用于存放程序、原始數(shù)據(jù)或表格。因此稱之為程序存儲器,簡稱內(nèi)部RAM。地址范圍為0000H~FFFFH(64KB)。片外最多可
33、外擴(kuò)64KB。</p><p><b> 定時器/計數(shù)器</b></p><p> 單片機共有2個16位的定時器/計數(shù)器,具有4種工作方式,以實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)結(jié)果對計算機進(jìn)行控制。定時時靠內(nèi)部分頻時鐘頻率計數(shù)實現(xiàn),做計數(shù)器時,對P3.4(T0)或P3.5(T1)端口的低電平脈沖計數(shù)。</p><p><b>
34、 并行I/O口</b></p><p> MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3)以實現(xiàn)數(shù)據(jù)的輸入輸出。</p><p><b> 串行口</b></p><p> MCS-51單片機有一個全雙工的串行口,具有4種工作方式,以實現(xiàn)單片機和其它設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強,既可作為全雙工
35、異步通信</p><p> 收發(fā)器使用,也可作為移位器使用。RXD( P3.0)腳為接收端口,TXD(P3.1)腳為發(fā)送端口。</p><p><b> 中斷控制系統(tǒng)</b></p><p> MCS-51單片機的中斷功能較強,以滿足不同控制應(yīng)用的需要。共有5個中斷源,即外中斷2個,定時中斷2個,串行中斷1個,全部中斷分為高級和低級共二個
36、優(yōu)先級別。</p><p><b> 時鐘電路</b></p><p> MCS-51單片機芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機產(chǎn)生時鐘脈沖序列。系統(tǒng)允許的晶振頻率為12MHZ等。</p><p> 特殊功能寄存器(SFR)</p><p> 特殊功能寄存器共有21個,用于CPU對片
37、內(nèi)各功能部件進(jìn)行管理、控制、監(jiān)視。實際上是片內(nèi)各功能部件的控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。</p><p> 綜觀單片機幾十年的發(fā)展歷程,單片機今后將向多功能、高性能、高速度、低電壓、低功耗、低價格、外圍電路內(nèi)裝化以及片內(nèi)存儲器容量增加和Flash存儲器化方向發(fā)展??梢灶A(yù)言,今后的單片機將是功能更強、集成的和可靠性更高而功耗更低,以及使用更方便。此外,專用化也是單片機的一個發(fā)展方向,針對單
38、一用途的專用單片機將會越來越多。</p><p> 第四章 DS18B20單線數(shù)字溫度計的原理</p><p><b> 4.1 概述</b></p><p> 溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場合時DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器[2]當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附
39、加功能強,使得DS18B20更受歡迎。對于我們普通的電子愛好者來說,DS18B20的優(yōu)勢更是我們學(xué)習(xí)單片機技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬您對單片機開發(fā)的思路。DS18B20器件具體的封裝形式與管腳說明如圖3-1所示</p><p> 圖4-1 DS18B20封裝形式與管腳說明</p><p><b> 4.2主要特性</b>&l
40、t;/p><p> 獨特的單線接口僅需一個端口引腳進(jìn)行通訊</p><p><b> 簡單的多點分布應(yīng)用</b></p><p> 64位光刻ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接</p><p><b> 可通過數(shù)據(jù)線供電</b></p><p><b> 零
41、待機功耗</b></p><p> 測溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F 遞增</p><p> 溫度以9 位數(shù)字量讀出</p><p> 溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值)</p><p> 用戶可定義的非易失性溫度報警設(shè)置</p><p>
42、 內(nèi)置EEPROM,報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條</p><p><b> 件)的器件</b></p><p> 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng)</p><p> 4.3工作原理及應(yīng)用</p><p> DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個芯片之上,
43、從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲器資源。18B20共有三種形態(tài)的存儲器資源,它們分別是:ROM 只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改。DS18B20共64位ROM。RAM 數(shù)據(jù)暫存
44、器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個字節(jié)RAM,每個字節(jié)為8位。第1、2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個字節(jié)是用戶EEPROM(常用于溫度報警值儲存)的鏡像。在上電復(fù)位時其值將被刷新。第5個字節(jié)則是用戶第3個EEPROM的鏡像。第6、7、8個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第9個字節(jié)為前8個字節(jié)的CRC碼。EEPROM 非易失性記憶
45、體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),</p><p> 我們在每一次讀溫度之前都必須進(jìn)行復(fù)雜的且精準(zhǔn)時序的處理,因為DS18B20的硬件簡單結(jié)果就會導(dǎo)致軟件的巨大開消,也是盡力減少有形資產(chǎn)轉(zhuǎn)化為無形資產(chǎn)的投入,是一種較好的節(jié)約之道。</p><p> 4.4單片機對DS18B20操作流程</p><p> 復(fù)位:首先我們必須對DS18B
46、20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。</p><p> 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會是控制器與18B20間的數(shù)據(jù)通信。如果復(fù)
47、位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計時要注意意外情況的處理。</p><p> 控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進(jìn)行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單
48、總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。</p><p> 控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到
49、EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關(guān)鍵。</p><p> 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單</p><p> 片機)必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)
50、據(jù)讀寫指令則需要嚴(yán)格遵循18B20的讀寫時序來操作。</p><p> 單支DS18B20若要讀出當(dāng)前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為:復(fù)位、跳過ROM指令[CCH]、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令[44H]、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為:復(fù)位、跳過ROM指令[CCH]、執(zhí)行讀RAM的存儲器操作指令[BEH]、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可
51、)。</p><p> 4.5 DS18B20與單片機的接口</p><p> DS18B20只需要接到控制器(單片機)的一個I/O口上,由于單總線為開漏所以需要外接一個4.7K的上拉電阻。如要采用寄生工作方式,只要將VDD電源引腳與單總線并聯(lián)即可。但在程序設(shè)計中,寄生工作方式將會對總線的狀態(tài)有一些特殊的要求。</p><p> 4.6 DS18B20芯片RO
52、M指令表</p><p> Read ROM(讀ROM)[33H] (方括號中的為16進(jìn)制的命令字)</p><p> 這個命令允許總線控制器讀到DS18B20的64位ROM。只有當(dāng)總線上只存在</p><p> 一個DS18B20的時候才可以使用此指令,如果掛接不止一個,當(dāng)通信時將會發(fā)生數(shù)據(jù)沖突。</p><p> Match RO
53、M(指定匹配芯片)[55H]</p><p> 這個指令后面緊跟著由控制器發(fā)出了64位序列號,當(dāng)總線上有多只DS18B20時,只有與控制發(fā)出的序列號相同的芯片才可以做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適應(yīng)單芯片和多芯片掛接。</p><p> Skip ROM(跳躍ROM指令)[CCH]</p><p> 這條指令使芯片不對ROM編碼做出反應(yīng),在單芯片
54、的情況之下,為了節(jié)省時間則可以選用此指令。如果在多芯片掛接時使用此指令將會出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯誤出現(xiàn)。</p><p> Search ROM(搜索芯片)[F0H]</p><p> 在芯片初始化后,搜索指令允許總線上掛接多芯片時用排除法識別所有器件</p><p><b> 的64位ROM。</b></p><p&g
55、t; Alarm Search(報警芯片搜索)[ECH]</p><p> 在多芯片掛接的情況下,報警芯片搜索指令只對符合溫度高于TH或小于TL報警條件的芯片做出反應(yīng)。只要芯片不掉電,報警狀態(tài)將被保持,直到再一次測得溫度達(dá)不到報警條件為止。</p><p> 4.7 DS18B20芯片存儲器操作指令表</p><p> Write Scratchpad (向
56、RAM中寫數(shù)據(jù))[4EH]</p><p> 這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址2(報警RAM之TH)和地址3(報警RAM之TL)。寫入過程中可以用復(fù)位信號中止寫入。</p><p> Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH]</p><p> 此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地
57、址9,完成整個RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時間。</p><p> Copy Scratchpad (將RAM數(shù)據(jù)復(fù)制到EEPROM中)[48H]</p><p> 此指令將RAM中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲存處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成
58、時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻</p><p> 超用強上拉并至少保持10MS,來維持芯片工作。</p><p> Convert T(溫度轉(zhuǎn)換)[44H]</p><p> 收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第1、2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存
59、工作完成時,總線將輸出“1”。在寄生工作方式時必須在發(fā)出此指令后立刻超用強上拉并至少保持500MS,來維持芯片工作。</p><p> Recall EEPROM(將EEPROM中的報警值復(fù)制到RAM)[B8H]</p><p> 此指令將EEPROM中的報警值復(fù)制到RAM中的第3、4個字節(jié)里。由于芯片忙于復(fù)制處理,當(dāng)控制器發(fā)一個讀時間隙時,總線上輸出“0”,當(dāng)儲存工作完成</p
60、><p> 時,總線將輸出“1”。另外,此指令將在芯片上電復(fù)位時將被自動執(zhí)行。這樣RAM中的兩個報警字節(jié)位將始終為EEPROM中數(shù)據(jù)的鏡像。</p><p> Read Power Supply(工作方式切換)[B4H]</p><p> 此指令發(fā)出后發(fā)出讀時間隙,芯片會返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),“1”為外部電源狀態(tài)。</p><
61、;p> 4.8 DS18B20復(fù)位及應(yīng)答關(guān)系及讀寫</p><p> 每一次通信之前必須進(jìn)行復(fù)位,復(fù)位的時間、等待時間、回應(yīng)時間應(yīng)嚴(yán)格按時序編程。</p><p> DS18B20的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認(rèn)信息交換的。</p><p><b> 寫時間隙:</b></p><p> 寫時間
62、隙分為寫“0”和寫“1”,時序如圖7。在寫數(shù)據(jù)時間隙的前15uS總線需要是被控制器拉置低電平,而后則將是芯片對總線數(shù)據(jù)的采樣時間,采樣時間在15~60uS,采樣時間內(nèi)如果控制器將總線拉高則表示寫“1”,如果控制器將總線拉低則表示寫“0”。每一位的發(fā)送都應(yīng)該有一個至少15uS的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在45uS內(nèi)完成。整個位的發(fā)送時間應(yīng)該保持在60~120uS,否則不能保證通信的正常。</p><p&
63、gt;<b> 讀時間隙:</b></p><p> 讀時間隙時控制時的采樣時間應(yīng)該更加的精確才行,讀時間隙時也是必須先由主機產(chǎn)生至少1uS的低電平,表示讀時間的起始。隨后在總線被釋放后的15uS中DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位,這時控制如果發(fā)現(xiàn)總線為高電平表示讀出“1”,如果總線為低電平則表示讀出數(shù)據(jù)“0”。每一位的讀取之前都由控制器加一個</p><p>
64、起始信號。注意:必須在讀間隙開始的15uS內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確。</p><p> 在通信時是以8位“0”或“1”為一個字節(jié),字節(jié)的讀或?qū)懯菑母呶婚_始的,即A7到A0.字節(jié)的讀寫順序也是自上而下的。</p><p><b> 4.9 工作時序圖</b></p><p> 初始化時序如圖3-2</p><p&
65、gt; 圖4-2初始化時序圖</p><p> 先將數(shù)據(jù)線置高電平1。</p><p> 延時(該時間要求不是很嚴(yán)格,但是要盡可能短一點)。</p><p> 數(shù)據(jù)線拉到低電平0。</p><p> 延時750us(該時間范圍可以在480us~960us)。</p><p> 數(shù)據(jù)線拉到高電平1。</
66、p><p> 延時等待。如果初始化成功則在15~60us內(nèi)產(chǎn)生一個有DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意,不能無限地等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時判斷。</p><p> 若CPU讀到數(shù)據(jù)線上的低電平0后,還要進(jìn)行延時,其延時的時間從發(fā)出高電平算起(第5)步的時間算起)最少要480us。</p><p> 將數(shù)據(jù)線再次拉
67、到高電平1后結(jié)束。</p><p> ?、?DS18B20寫數(shù)據(jù)時序圖如圖4-3</p><p> 圖4-3DS18B20寫數(shù)據(jù)時序圖</p><p> 延時確定的時間為15us。</p><p> 按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。</p><p> 延時時間為45us。</p>
68、<p> 將數(shù)據(jù)線拉高到高電平1。</p><p> 重復(fù)1)~5)步驟,直到發(fā)送完整個字節(jié)。</p><p> 最后將數(shù)據(jù)線拉高到1。</p><p> ?、?DS18B20讀數(shù)據(jù)時序圖如圖4-4</p><p> 圖4-4DS18B20讀數(shù)據(jù)時序圖</p><p><b> 將數(shù)據(jù)線拉
69、高到1。</b></p><p><b> 延時2us。</b></p><p><b> 將數(shù)據(jù)線拉低到0。</b></p><p><b> 延時6us。</b></p><p><b> 將數(shù)據(jù)線拉高到1。</b></p&g
70、t;<p><b> 延時4us。</b></p><p> 讀數(shù)據(jù)線的狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。</p><p><b> 延時30us。</b></p><p> 重復(fù)1)~7)步驟,直到讀取完一個字節(jié)。</p><p><b> 第五章 硬件設(shè)計</b&
71、gt;</p><p> 5.1 系統(tǒng)結(jié)構(gòu)設(shè)計思路</p><p> 當(dāng)一線制總線上僅有一個DS18B20器件時,可以用skip ROM操作(即跳過ROM匹配)命令來代替64位序列號的匹配過程,這點也是使用單個DS18B20器件的系統(tǒng)常用的方法。所以,要想節(jié)省掉64位序列號匹配的時間開銷,就必需設(shè)計成一個一線制總線上僅有一個DS18B20器件的系統(tǒng)。</p><p&
72、gt; DS18B20的一線制總線在時序上的嚴(yán)格要求,也從另一方面意味著在一定的彈性范圍內(nèi),不同DS18B20器件的時序細(xì)節(jié)上的一致性應(yīng)該是非常好,所以可以將系統(tǒng)設(shè)計成利用MCU的并行端口同時對多個DS18B20進(jìn)行統(tǒng)一的操作,不過這時候并行端口上的每一個端口連接著一個DS18B20器件而已。</p><p> 本文所述的解決方案正是以端口的消耗為代價,換取對多點DS18B20溫度查詢的速度,并在程序結(jié)構(gòu)的設(shè)
73、計上采用一些巧妙的處理方法,使得系統(tǒng)對DS18B20的操作上花更少的時間。此外,采用本設(shè)計實現(xiàn)的快速多點溫度查詢系統(tǒng),可以省掉煩瑣的總線上器件序列號的查詢操作,并可節(jié)省大量的存儲空間(原用于存儲總線上器件的序列號所用的空間)。</p><p> 從理論上分析,本設(shè)計方案的采用,查詢多個DS18B20器件操作所消耗的時間與查詢一個DS18B20器件操作所消耗的時間是等量的。</p><p>
74、; 本系統(tǒng)方案8個DS18B20器件連接在MCU的一組端口的8個I/O口上,連線示意圖4-1所示:</p><p> 圖5-1 單片機與DS18B20連線示意圖</p><p> 當(dāng)然,上圖中的示意圖并沒有考慮諸如端口驅(qū)動能力、抗干擾處理等,僅表明一個邏輯的連接示意,具體在產(chǎn)品級的設(shè)計時會根據(jù)產(chǎn)品的應(yīng)用做必要的處理,比如增加一些必要的電路等,此處不作為討論的重點。</p>
75、<p> 從上圖可見,每個端口連接有一個DS18B20器件,也即一條一線制總線上僅有一個DS18B20器件,符合了前面所述的解決方法。實際在對DS18B20器件進(jìn)行操作時,只需統(tǒng)一地對這一組并行端口進(jìn)行操作(每個端口在同一時間輸出相同的電平狀態(tài))即可。</p><p> 一個端口對應(yīng)一個DS18B20器件,也就表示每組端口的某一個位的讀回數(shù)據(jù)狀態(tài)也就是該端口所對應(yīng)的器件的輸出狀態(tài),所以,這樣的系
76、統(tǒng)里面是不需要進(jìn)行每個器件的序列號搜索、匹配的操作的??芍?,在對DS18B20器件進(jìn)行操作時,</p><p> 可以使用skip ROM命令來跳過ROM序列號匹配的操作,也即在所有的DS18B20器件的ROM操作時可以使用相同的端口輸出時序。</p><p><b> 5.2 系統(tǒng)框圖</b></p><p><b> 圖5-
77、2</b></p><p><b> 系統(tǒng)框圖簡介:</b></p><p> 系統(tǒng)的核心是AT89C51單片機,系統(tǒng)通過控制選擇某一個DS18B20,并把</p><p> 其檢測到的溫度數(shù)據(jù)送到單片機進(jìn)行處理,在把處理后的溫度送到數(shù)碼管顯示,</p><p> 并顯示是那個點的溫度,系統(tǒng)也可以多點
78、溫度循環(huán)掃描顯示。</p><p> 5.3 系統(tǒng)硬件設(shè)計</p><p><b> 模塊介紹</b></p><p> 圖5-3 為單片機AT89C51仿真模塊圖</p><p><b> 圖5-3仿真模塊圖</b></p><p> 圖5-4 為四位數(shù)碼管的仿真
79、模塊圖</p><p> 圖5-4四位數(shù)碼管的仿真模塊圖</p><p> 圖5-5 為數(shù)字溫度傳感器DS18B20的仿真模塊圖</p><p> 圖5-5數(shù)字溫度傳感器DS18B20的仿真模塊圖</p><p> 在 Keil,Proteus環(huán)境下設(shè)計多點測溫系統(tǒng)硬軟件,進(jìn)行驗證,硬件電路圖5-6如下</p><
80、p><b> 圖5-6硬件電路圖</b></p><p> 第六章 系統(tǒng)軟件設(shè)計</p><p> 6.1系統(tǒng)軟件設(shè)計思路</p><p> 軟件設(shè)計從最底層的與DS18B20時序相關(guān)的驅(qū)動,到與一線制總線器件處理過程控制/協(xié)議的接口函數(shù),再上升到應(yīng)用API接口函數(shù)的關(guān)系如下圖5-1所示:</p><p>
81、 圖6-1API接口函數(shù)</p><p> 在對連在一組8位端口上的8個DS18B20操作時,是同時對該組端口進(jìn)行操作,也即同時對8個DS18B20器件進(jìn)行同步的操作。</p><p> 下面詳細(xì)介紹一下以MCS51系列單片機的應(yīng)用為例的范例程序,其中約定與8個DS18B20器件進(jìn)行連接的是P1端口。</p><p> 底層時序驅(qū)動[8]程序與DS18B20
82、的一線制總線的協(xié)議保持一致,根據(jù)一線制</p><p> 總線時序的特點,設(shè)計了四個基本的函數(shù):</p><p> 總線寫1時序控制函數(shù):</p><p> void DS18B20_Write_1(void) </p><p><b> {</b></p><p> P1 = 0x00
83、; //8個DQ 線全部設(shè)置為低電平 </p><p> Delay_1us(10); //延時10us左右 </p><p> P1 = 0xff; //8個DQ線全部輸出高電平 </
84、p><p> Delay_1us(30); //延時30us左右 </p><p><b> } </b></p><p> 總線寫0時序控制函數(shù): </p><p> void DS18B20_Write_0(void)</p><p&
85、gt;<b> { </b></p><p> P1 = 0x00; //8個DQ 線全部設(shè)置為低電平 </p><p> Delay_1us(40); //延時 </p><p> P1 =
86、 0xff; //端口恢復(fù)高電平</p><p> Delay_1us(1); } </p><p> 總線讀取一個數(shù)據(jù)位時序控制函數(shù): </p><p> unsigned char DS18B20_ReadDQ(void)</p><p><
87、b> { </b></p><p> unsigned char DQ_S=0;</p><p> P1 = 0x00; //8個DQ 線全部設(shè)置為低電平 </p><p> Delay_1us(10); </p><p> P1 = 0xf
88、f; //端口置1,準(zhǔn)備讀取 </p><p> Delay_1us(1); //延時待總線準(zhǔn)備好數(shù)據(jù) </p><p> DQ_S = P1; //
89、一次性讀取8條DQ線的數(shù)據(jù)狀態(tài) </p><p> P1 = 0xff; //恢復(fù)端口電平 </p><p> Delay_1us(30); //延時 </p><p> retu
90、rn DQ_S; //返回讀取的值 </p><p><b> } </b></p><p> 在讀取一個總線狀態(tài)數(shù)據(jù)位的函數(shù)中,將會返回一個byte的數(shù)據(jù),該數(shù)據(jù)的8個位正好與連接在P2端口上的8個I/O口對應(yīng),如下圖5-2所示:</p><p><b>
91、 圖6-2</b></p><p> 總線復(fù)位時序控制函數(shù): </p><p> void DS18B20_Reset(void) </p><p><b> { </b></p><p> unsigned char Error_Counter=0; </p><p>
92、 P1 = 0x00; //8個DQ 線全部設(shè)置為低電平 </p><p> Delay_1us(500); //保持總線低電平500us </p><p> P1 = 0xff; </p><p> Delay_
93、1us(100); </p><p> if(P1!=0x00) B20_Error = P1;//如檢測到DS18B20總線響應(yīng)了回復(fù)信號,則讀取當(dāng)前8條 //總線的狀態(tài) </p><p> Delay_1us(50); </p><p> P1=0xff; </p><p> for(
94、Error_Counter=0;Error_Counter<200;Error_Counter++) </p><p><b> { </b></p><p> if((P1&(~B20_Error))==(~B20_Error)) break; </p><p> Delay_1us(1); &
95、lt;/p><p><b> } </b></p><p> P1 = 0xff; //恢復(fù)端口電平 </p><p> Delay_1us(200); //延時 200us </p><p
96、><b> }</b></p><p> 在復(fù)位時序控制的函數(shù)中,使用了B20_Error全局變量,它將會傳遞給上一層的數(shù)據(jù)處理函數(shù)作為判斷當(dāng)前8個I/O口所接的DS18B20是否正常工作,或者是否在各自的總線上。</p><p> 分析DS18B20的一線制總線控制命令,可以提煉出兩個最基本的操作函數(shù),一個是寫一個byte數(shù)據(jù)至DS18B20器件,另一為
97、讀取DS18B20器件的數(shù)據(jù)。而在本文的范例程序當(dāng)中,僅僅為了提取DS18B20器件的轉(zhuǎn)換完后的溫度值,所以在讀取DS18B20的數(shù)據(jù)時,僅讀取存放在數(shù)據(jù)地址前兩個字節(jié)的溫度數(shù)據(jù),而不讀取其它字節(jié)的數(shù)據(jù),包括CRC校驗值也沒有進(jìn)行讀取。</p><p><b> 寫字節(jié)操作函數(shù):</b></p><p> void DS18B20_WriteByte(unsign
98、ed char Com)</p><p> { </p><p> unsigned char I;</p><p> for(i=0;i<8;i++) </p><p><b> { </b&g
99、t;</p><p> if(Com&0x01) </p><p> DS18B20_Write_1(); </p><p><b> else </b></p><p> DS18B20_Write_0(); &
100、lt;/p><p> Com = Com>>1; </p><p><b> } </b></p><p><b> }</b></p><p> 調(diào)用DS18B20_WriteByte函數(shù),連在8個I/O口上的一線制總線上的8個DS18B20器件,將都會
101、接收到同樣的一個字節(jié)的數(shù)據(jù):</p><p><b> 讀數(shù)據(jù)操作函數(shù):</b></p><p> unsigned char Read_buf_8ch[16]; //buffer of Read DS18B20 </p><p> void DS18B20_Read2Byte(void) </p
102、><p><b> { </b></p><p> unsigned int i; </p><p> for(i=0;i<16;i++) </p><p><b> { </b></p><p> Read_buf_8
103、ch[i] = DS18B20_ReadDQ();</p><p><b> }</b></p><p><b> }</b></p><p> 在本范例中,只讀取位到DS18B20內(nèi)部數(shù)據(jù)區(qū)域的前兩節(jié)字的溫度值數(shù)據(jù),所以數(shù)據(jù)讀取函數(shù)設(shè)計成讀取兩個字節(jié)的函數(shù),即需要連續(xù)讀取16個位(對應(yīng)于每一個DS18B20器件來說
104、是連續(xù)的16個位)。而將讀回的數(shù)據(jù)保存于一個Read_buf_8ch(簡寫:Rb)的數(shù)組中,可以根據(jù)系統(tǒng)的接線圖對讀回的16個字節(jié)的數(shù)據(jù)進(jìn)行分析。</p><p> 讀取DS18B20的數(shù)據(jù)時,先讀高位再讀低位;所以可以從上圖看到,以TM2的DS18B20的數(shù)據(jù)為例,TM2的兩個字節(jié)的數(shù)據(jù)由Read_buf_8ch數(shù)組的16個字節(jié)數(shù)據(jù)中的每個字節(jié)的bit2位組成??芍?,完成一次數(shù)據(jù)讀取的操作后,可以同時讀回8個
105、DS18B20器件的數(shù)據(jù),在數(shù)據(jù)處理時,只需針對上圖的數(shù)據(jù)結(jié)構(gòu)對Read_buf_8ch數(shù)組的數(shù)據(jù)進(jìn)行處理即可得到每個DS18B20器件的測溫值。</p><p> 啟動溫度轉(zhuǎn)換控制函數(shù): </p><p> void DS18B20_Conver(void) </p><p><b> { </b></p>
106、<p> DS18B20_Reset(); </p><p> DS18B20_WriteByte(0xcc); //Skip ROM </p><p> DS18B20_WriteByte(0x44); //啟動測溫 } </p><p> 讀取溫度值函數(shù): </p><
107、p> void DS18B20_ReadTemp(void) </p><p><b> { </b></p><p> DS18B20_Reset(); </p><p> DS18B20_WriteByte(0xcc); //Skip ROM </p>
108、;<p> DS18B20_WriteByte(0xbe); //送入讀取數(shù)據(jù)命令 </p><p> DS18B20_Read2Byte(); </p><p><b> } </b></p><p> 調(diào)用讀取溫度值函數(shù)后,8個DS18B20器件的測溫數(shù)據(jù)將保存在數(shù)R
109、ead_buf_8ch的16個字節(jié)單元當(dāng)中,還有待進(jìn)行下一步的處理,方可得到對應(yīng)每個DS18B20器件的測溫值。</p><p> 下面介紹簡單的處理代碼片斷: </p><p> char i,j; </p><p> unsigned int uiData[8]; </p><p> unsigned char Mask;
110、 //OS the resoult of Temperature </p><p> for(i=15;i>=0;i--) </p><p><b> { </b></p><p> Mask = 0x01; </p><p> for(j=0;j<8;j++) </p&g
111、t;<p><b> { </b></p><p> uiData[j] = uiData[j]<<1; </p><p> if(Read_buf_8ch[i]&Mask) uiData[j]++; </p><p> Mask = Mask<<1
112、; </p><p><b> } </b></p><p><b> } </b></p><p> 經(jīng)過上述簡單的處理,8個DS18B20器件的測溫數(shù)據(jù)將保存在數(shù)組uiData當(dāng)中的8個單元里,就可以根據(jù)自身程序設(shè)計的需求來對這些數(shù)據(jù)進(jìn)行具體的處理了。</p>&l
113、t;p><b> 注:系統(tǒng)軟件見附錄</b></p><p> 第七章 系統(tǒng)運行結(jié)果</p><p><b> 仿真效果圖</b></p><p> 編號為0~7的數(shù)字溫度傳感器DS18B20所采集的溫度將輪流顯示在四位數(shù)碼管上</p><p> 編號為0的數(shù)字溫度傳感器所測溫度如下
114、圖</p><p> 圖7-1編號為0的數(shù)字溫度傳感器所測溫度</p><p> 編號為1的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-2編號為1的數(shù)字溫度傳感器所測溫度</p><p> 編號為2的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-3編號為2的數(shù)字溫度傳感器所測溫度</p
115、><p> 編號為3的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-4編號為3的數(shù)字溫度傳感器所測溫度</p><p> 編號為4的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-5編號為4的數(shù)字溫度傳感器所測溫度</p><p> 編號為5的數(shù)字溫度傳感器所測溫度如下圖</p>&l
116、t;p> 圖7-6編號為5的數(shù)字溫度傳感器所測溫度</p><p> 編號為6的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-7編號為6的數(shù)字溫度傳感器所測溫度</p><p> 編號為7的數(shù)字溫度傳感器所測溫度如下圖</p><p> 圖7-8編號為7的數(shù)字溫度傳感器所測溫度</p><p>
117、<b> 結(jié)束語</b></p><p> 本次設(shè)計的基于單片機的蔬菜大棚的多點溫度測量系統(tǒng)是一種分布式的溫度測量系統(tǒng),它可以遠(yuǎn)程對溫度實現(xiàn)測量和監(jiān)控。系統(tǒng)采用單總線技術(shù),按照DS18B20的通信協(xié)議,由主機向DS18B20發(fā)送命令,讀取DS18B20轉(zhuǎn)換的溫度,從而實現(xiàn)對多個環(huán)境的溫度的測量。</p><p> 本文介紹了用單片機AT89C51控制DS18B2
118、0,著重分析各單元電路的設(shè)計,以及各電路與單片機的接口技術(shù)。最后還給出系統(tǒng)的軟件的設(shè)計過程,使用了C語言進(jìn)行程序設(shè)計。本文是采用模塊化的方式進(jìn)行敘述,對各模塊的設(shè)計進(jìn)行了比較詳細(xì)地闡述。</p><p> 經(jīng)過這一次畢業(yè)設(shè)計,我學(xué)了不少的知識,學(xué)會了怎樣查閱資料和利用工具書,以及熟練地使用PROTEUS仿真軟件和KEIL開發(fā)工具。通過這次畢業(yè)設(shè)計,我更加深刻地認(rèn)識到只有將書本與具體的實踐相結(jié)合,才會有真正的收獲
119、,才能鞏固自已的所學(xué),認(rèn)識到自己的不足。</p><p><b> 致謝</b></p><p> 通過這一階段的努力,我的畢業(yè)論文終于完成了,這意味著大學(xué)生活即將結(jié)束。回首既往,自己一生最寶貴的時光能于這樣的校園之中,能在眾多學(xué)富五車、才華橫溢的老師們的熏陶下度過,實是榮幸之極。在這四年的時間里,我在學(xué)習(xí)上和思想上都受益非淺。這除了自身努力外,與各位老師、同學(xué)和
120、朋友的關(guān)心、支持和鼓勵是分不開的</p><p> 在本論文的寫作過程中,從最初的選題,到資料收集,到寫作、修改,到論文定稿,指導(dǎo)老師李明老師給予我極大的幫助,在此我表示衷心感謝。同時我還要感謝在我學(xué)習(xí)期間給我極大關(guān)心和支持的各位老師以及關(guān)心我的同學(xué)和朋友。正是由于他們,我才能在各方面取得顯著的進(jìn)步,在此向他們表示我由衷的謝意,并祝所有的老師培養(yǎng)出越來越多的優(yōu)秀人才,桃李滿天下!也祝愿我的同學(xué)的在以后的道路上越
121、走越寬,前程似錦!</p><p> 時間的倉促及自身專業(yè)水平的不足,整篇論文肯定存在尚未發(fā)現(xiàn)的缺點和錯誤。懇請閱讀此篇論文的老師、同學(xué),多予指正,不勝感激!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:清華大學(xué)出版社,2005.</p><p> [2]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89c51單片機的蔬菜大棚溫度控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---基于at89c51單片機的大棚環(huán)境測控系統(tǒng)
- 畢業(yè)設(shè)計(論文)基于at89c51單片機數(shù)控電源
- at89c51單片機控制溫度
- at89c51單片機控制溫度
- 畢業(yè)設(shè)計(論文)基于單片機at89c51電子血壓計的設(shè)計
- 畢業(yè)設(shè)計---基于at89c51單片機溫度控制系統(tǒng)設(shè)計
- 單片機畢業(yè)設(shè)計外文翻譯單片機at89c51
- 單片機at89c51
- 2017畢業(yè)論文-基于at89c51單片機的蔬菜大棚溫室溫度自動控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計(論文)-基于at89c51單片機電子時鐘的設(shè)計
- at89c51基于單片機溫度控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計---基于at89c51單片機的新型多功能電子鬧鐘
- 基于at89c51單片機的電子時鐘設(shè)計
- 畢業(yè)設(shè)計-基于at89c51單片機的數(shù)字時鐘設(shè)計
- 基于at89c51單片機紅外遙控系統(tǒng)畢業(yè)設(shè)計
- 基于at89c51單片機的電子表設(shè)計
- 基于單片機at89c51數(shù)字溫度計的設(shè)計
- 基于單片機的畢業(yè)設(shè)計--基于at89c51單片機倒車防撞系統(tǒng)的設(shè)計
- 畢業(yè)設(shè)計---基于at89c51單片機紅外遙控系統(tǒng)設(shè)計
評論
0/150
提交評論