版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢 業(yè) 設 計</b></p><p> 基于DS18B20&AT89S51的</p><p><b> 數(shù)字溫控器設計</b></p><p> 系(中心) 信息工程系 </p><p> 專 業(yè) 電子信息工程 年級 通信504
2、1 </p><p> 論文答辯日期 年 月 日 </p><p><b> 摘 要</b></p><p> 在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開關量都是常用的主要被控參數(shù)。其中,溫度控制也越來越重要。在工業(yè)生產(chǎn)的很多領域中,人們都需要對各類加熱爐、熱處理爐、反應爐和鍋爐中的溫度進行檢
3、測和控制。采用單片機對溫度進行控制不僅具有控制方便、簡單和靈活性大等優(yōu)點,而且可以大幅度提高被控溫度的技術指標,從而能夠大大的提高產(chǎn)品的質量和數(shù)量。因此,單片機對溫度的控制問題是一個工業(yè)生產(chǎn)中經(jīng)常會遇到的控制問題。</p><p> 單片機是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實現(xiàn)對數(shù)字信息的處理和控制。因此,單片機廣泛用于現(xiàn)代工業(yè)控制中。</p&
4、gt;<p> 本論文側重介紹“單片機溫度控制系統(tǒng)”的軟件設計及相關內容。論文的主要內容包括:采樣、濾波、鍵盤、LED顯示和報警系統(tǒng),加熱控制系統(tǒng)等。作為控制系統(tǒng)中的一個典型實驗設計,單片機溫度控制系統(tǒng)綜合運用了微機原理、自動控制原理、模擬電子技術、數(shù)字控制技術、鍵盤顯示技術等諸多方面的知識,是對所學知識的一次綜合測試。</p><p> 關鍵詞:單片機;數(shù)字控制;溫度計;DS18B20;AT8
5、9S51</p><p> Design of digital temperature controller</p><p> based on DS18B20 & AT89S51 </p><p><b> Abstract</b></p><p> In industrial production,
6、current, voltage, temperature, pressure, and flow rate, velocity, and the switch quantity are common main accused of parameters. Among them, the temperature control is becoming more and more important. In many areas of i
7、ndustrial production, people need to all kinds of heating furnace, heat treatment furnace, reactor and boiler temperature of inspection and control. Adopts single-chip microcomputer control of temperature has not only co
8、ntrol convenient, simple and flexi</p><p> SCM is a kind of set the CPU, RAM, ROM, I/O interface and interrupt system parts in one of the devices, only require additional power and can be realized vibration
9、 of digital information processing and control. Therefore, microcontroller is widely used in modern industrial control.</p><p> This thesis focuses on introducing "single-chip microcomputer temperature
10、 control system" software design and related content. The main contents include: paper sampling, filtering, keyboard, LED display and alarm system, heating control system, etc. As a control system of a typical exper
11、iment design, Single-chip microcomputer temperature control system comprehensive using microcomputer principle, automatic control principle, analog electronic technology, digital control technology, keyboard disp</p&g
12、t;<p> Keywords: Microcontroller; Digital control; Thermometers; DS18B20; AT89S51</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 課題的背景及意義
13、1</p><p> 1.2 相關技術的發(fā)展概況1</p><p> 2 總體設計方案3</p><p> 2.2 設計思路3</p><p> 2.2 數(shù)字溫控器設計方案論證3</p><p> 2.3 方案選擇4</p><p> 2.4 總體設計框圖4</p&
14、gt;<p> 3 主要芯片概述5</p><p> 3.1 單片機AT89S515</p><p> 3.2 數(shù)字溫度傳感器DS18B206</p><p> 3.3 二四譯碼器8</p><p> 4 硬件電路設計9</p><p><b> 4.1主模塊9</
15、b></p><p> 4.2溫度采集模塊10</p><p> 4.3溫度傳感與單片機的連接10</p><p> 4.4 顯示模塊11</p><p> 4.5報警電路11</p><p> 4.6復位電路及電源電路12</p><p> 5 軟件程序分析13&
16、lt;/p><p> 5.1 系統(tǒng)軟件算法分析13</p><p> 5.2 主程序13</p><p> 5.3 讀出溫度子程序13</p><p> 5.4 溫度轉換命令子程序15</p><p> 5.5 計算溫度子程序15</p><p> 5.6 顯示數(shù)據(jù)刷新子程序
17、16</p><p><b> 結束語17</b></p><p><b> 參考文獻18</b></p><p><b> 致 謝19</b></p><p><b> 附 錄20</b></p><p><
18、b> 1 緒論</b></p><p> 1.1 課題的背景及意義</p><p> 溫度控制系統(tǒng)在國內各行各業(yè)的應用雖然己經(jīng)十分廣泛,但從國內生產(chǎn)的溫度控制器來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進國家相比,仍然有著較大的差距。成熟的溫控產(chǎn)品主要以“點位”控制及常規(guī)的PID控制器為主,它們只能適應一般溫度系統(tǒng)控制,而用于較高控制場合的智能化、自適應控
19、制儀表,國內技術還不十分成熟,形成商品化并廣泛應用的控制儀表較少.隨著我國經(jīng)濟的發(fā)展及加入WTO,我國政府及企業(yè)對此都非常重視,對相關企業(yè)資源進行了重組,相繼建立了一些國家,企業(yè)的研發(fā)中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。</p><p> 目前,溫度控制器產(chǎn)品從模擬、集成溫度控制器發(fā)展到智能數(shù)碼溫度控制器。智能溫控器(數(shù)字溫控器)是微電子技術、計算機技術和自動測試技術的結合,特點是能輸出溫度數(shù)
20、據(jù)及相關的溫度控制量,適配各種控制器,并且它是在硬件的基礎上通過軟件來實現(xiàn)控制功能的,其智能化程度也取決于軟件的開發(fā)水平,現(xiàn)階段正朝著高精度高質量的方向發(fā)展,相信以我國的實力,溫控技術在不久的將來一定會為于世界前列!</p><p> 本文重點對該系統(tǒng)的硬件、軟件進行分析設計。在硬件上對各部分電路一一進行了理論分析與方案論證進行了設計,介紹了DS18B20數(shù)字溫度傳感器在單片機下的硬件連接及軟件編程,并給出了軟
21、件流程圖,最終設計完成了該系統(tǒng)的硬件電路。在軟件設計上根據(jù)硬件電路和該溫度采集系統(tǒng)所需要實現(xiàn)的功能,經(jīng)過反復的模擬運行、調試、修改,最終完成了該系統(tǒng)的軟件設計。通過硬件與軟件的密切配合,最終設計完成達到了題目所要求的功能。本設計采用的是AT89S51單片機,對多點溫度進行采集。通過集成溫度傳感器DS18B20將溫度值轉換為電量輸出。通過鍵盤實現(xiàn)增加或減少溫度上下限模式的切換,可以利用小鍵盤設定溫度的最大值和最小值,當溫度高于設定的上限值
22、時,單片機停止加熱器加熱,同時點亮紅色發(fā)光二極管,當溫度低于設定的下限時,單片機啟動加熱器加熱,同時點亮綠色發(fā)光二極管。在軟件上進行主程序和子程序的編程,使該溫度控制系統(tǒng)實現(xiàn)智能化發(fā)展,精度更高。</p><p> 1.2 相關技術的發(fā)展概況</p><p> 單片機誕生于20世紀70年代,象fairchid公司研制的F8單片微型計算機。所謂單片機是利用大規(guī)模集成電路技術把中央處理單元
23、(Center Processing Unit,也即常稱的CPU)和數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口集成在一塊芯片上,構成一個最小的計算機系統(tǒng),而現(xiàn)代的單片機則加上了中斷單元,定時單元及A/D轉換等更復雜、更完善的電路,使得單片機的功能越來越強大,應用更廣泛。 20世紀70年代,微電子技術正處于發(fā)展階段,集成電路屬于中規(guī)模發(fā)展時期,各種新材料新工藝尚未成熟,單片機仍處在初級的發(fā)展階段,元件集成規(guī)模還比
24、較小,功能比較簡單,一般均把CPU、RAM有的還包括了一些簡單的I/O口集成到芯片上,象Farichild公司就屬于這一類型,它還需配上外圍的其他處理電路方才構成完整的計算系統(tǒng)。類似的單片機還有Zilog公司的Z80微處理器。 1976年INTEL公司推出了MCS-48單片機,這個時期的單片機才是真正的8位單片微型計算機,并推向市場。它以體積小,功能全,價格低贏得了廣泛的應用,為單片機的發(fā)展奠定了基礎,成為單片
25、機發(fā)展史上重要</p><p><b> 2 總體設計方案</b></p><p> 2.2 設計思路:</p><p> AT89S51為核心、DS18B20為溫度傳感元件。只要在所設定的上下溫度界限內,就會在顯示設備中精確的顯示出來,如果溫度超過了所設定的溫度上下限,就會自動發(fā)出報警信號。另外此溫度控制器操作簡單,靈敏度高,測溫范
26、圍寬,一般能滿足日常測溫的需求,用四位7段數(shù)碼管顯示故具有直觀的特點。</p><p> 2.2 數(shù)字溫控器設計方案論證</p><p> 1.2.1 方案一 </p><p> 進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換,
27、就可以滿足設計要求。</p><p> 1.2.2 方案二</p><p> 由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩</p><p><b> 2.
28、3 方案選擇</b></p><p> 從以上兩種方案,很容易看出,采用方案一,電路比較簡單,軟件設計也比較簡單,故采用了方案一。</p><p> 2.4 總體設計框圖</p><p> 溫度計電路設計總體設計方框圖如圖2-1所示,控制器采用單片機AT89S51,溫度傳感器采用DS18B20,用四位7段數(shù)碼管實現(xiàn)溫度顯示。</p>
29、<p> 圖2-1 總體設計方框圖</p><p><b> 3 主要芯片概述</b></p><p> 3.1 單片機AT89S51</p><p> 1.AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Fl
30、ash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。</p><p> AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器
31、(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。</p><p> 2.功能特性:兼容MCS-51指令系統(tǒng) 32個雙向I/O口,2個16位可編程定時/計數(shù)器,全雙工UART串行中斷口線,2個外部中斷源,中斷喚醒省電模式,看門狗(WDT)電路,靈活的ISP字節(jié)和分頁編程,4k可反復擦寫(>
32、;1000次)ISP Flash ROM,4.5-5.5V工作電壓,時鐘頻率0-33MHz128x8bit內部RAM,低功耗空閑和省電模式,3級加密位軟件設置空閑和省電功能。</p><p> 3.系統(tǒng)中所用一些引腳的簡介 </p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存
33、儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位
34、地址接收。</p><p> P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p> RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。</p><
35、;p> XTAL2:來自反向振蕩器的輸出。</p><p> 3.2 數(shù)字溫度傳感器DS18B20</p><p> 1、適應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電.</p><p> 2、獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊</p>
36、<p> 3、DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫</p><p> 4、DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內</p><p> 5、溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃</p><p> 6、
37、可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現(xiàn)高精度測溫</p><p> 7、在9位分辨率時最多在93.75ms內把溫度轉換為數(shù)字,12位分辨率時最多在750ms內把溫度值轉換為數(shù)字,速度更快</p><p> 8、測量結果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具
38、有極強的抗干擾糾錯能力</p><p> 9、負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。 </p><p> 2、DS18B20的外形和內部結構</p><p> DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖: </p>
39、<p> 圖3-1 DS18B20 引腳圖</p><p> DS18B20 的管腳排列如下:</p><p> DQ為數(shù)字信號輸入/輸出端;</p><p><b> GND為電源地; </b></p><p> VDD為外接供電電源輸入端。</p><p> 圖3-
40、2 DS18B20內部結構圖</p><p> 3、DS18B20工作原理</p><p> DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率
41、明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3-3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸
42、出用于修正計數(shù)器1的預置值。</p><p> 圖3-3 DS18B20測溫原理框</p><p><b> 3.3 二四譯碼器</b></p><p> 譯碼的的含義就是把輸入的二進制代碼的特定含義翻譯成被編碼的信息。譯碼器是以一種常見的組合邏輯電路,它的輸入代碼組合會在某一個輸出端產(chǎn)生特定的信號。譯碼器按照用途可分為3類:變量譯碼器、
43、碼制編碼器和顯示譯碼器。本系統(tǒng)用到了變量譯碼器,所以在這里我們只介紹變量譯碼器。</p><p> 變量譯碼器有n個輸入端,m個輸出端,它們的關系應滿足:m<=。變量譯碼器的一般以二進制出現(xiàn),輸出端只有與輸入二進制碼對應的那個輸出才為1.本系統(tǒng)所用的譯碼器有使能端。當=1時,譯碼器的4個輸出均為1,譯碼器停止工作;當=0時,譯碼器才處于正常的工作狀態(tài)。帶使能端的2-4譯碼器的真值表如表3-1所示。<
44、/p><p> 表3-1譯碼器真值表</p><p> 即根據(jù)真值表可以寫出函數(shù)表達式如下:</p><p><b> =</b></p><p> 根據(jù)該表達式,可以畫出帶使能的2-4譯碼器的邏輯電路圖,如圖3-4所示。</p><p> 圖3-4 譯碼器的邏輯電路圖</p>
45、<p><b> 4 硬件電路設計</b></p><p><b> 4.1主模塊</b></p><p> 單片機控制模塊是溫度控制器的核心,它控制了溫度的采集、處理與顯示、溫度上下限值的設定與溫度越限時加熱器的啟動與停止。</p><p> 本文選用AT89S51作為控制器件。AT89S51單片機
46、是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機,片內含4K bytes的可反復擦寫的Flash只讀程序存儲器和128bytes的隨機數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度,非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng)。功能強大的AT89S51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。</p><p><b> 圖4-1 主模塊</b>
47、;</p><p><b> 4.2溫度采集模塊</b></p><p> 數(shù)字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡,為測量系統(tǒng)的構建引入全新概念。DS18B20、數(shù)字化溫度傳感器DS18B20也,測量溫度范圍為 -55°C~+125°C,在-10~+
48、85°C范圍內,精度為±0.5°C。并且還可選更小的封裝方式,更寬的電壓適用范圍。圖4-2為溫度采集模塊</p><p> 圖4-2 溫度采集模塊</p><p> 4.3溫度傳感與單片機的連接</p><p> 溫度傳感器的單總線(1-Wire)與單片機的P2.0連接,P2.0是單片機的高位地址線A8。P2 端口是一個帶內部上拉
49、電阻的8 位雙向I/O,其輸出緩沖級可驅動(吸收或輸出電流)4個TTL 邏輯門電路。對該端口寫“1”,可通過內部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因為內部存在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器時,如執(zhí)行MOVX DPTR 指令,則表示P2 端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行MOVX RI指令,P2端口內容即為特殊功能寄存
50、器(SFR)區(qū)中R2 寄存器內容,整個訪問期間不改變。在Flash 編程和程序校驗時,P2端口也接收高位地址和其他控制信號。</p><p> 圖4-3 溫度傳感與單片機的接口電路</p><p><b> 4.4 顯示模塊</b></p><p> 采用技術成熟的74HC164實現(xiàn)串并轉換。LED顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)
51、顯示,系統(tǒng)通過單片機的串行口來實現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時,數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號有效時,相隔一個機器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時允許從TXD端輸出移位脈沖。</p><p> 單片機與報警電路系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成,并與單片機的P1.2 端口
52、連接。P1 端口的作用和接法與P2 端口相同,不同的是在Flash 編程和程序校驗期間,P1 接收低8 位地址數(shù)據(jù)。</p><p><b> 圖4-4 顯示電路</b></p><p><b> 4.5報警電路</b></p><p> 路由一個三極管和蜂鳴器組成。當溫度值在設定的范圍時,單片機AT89C51的P3
53、.7口高電平引腳始終保持高電平,當所采集的溫度越限時,P3.7口便由高電平改為低電平,使三極管導通從而發(fā)出蜂鳴聲進行報警來提醒操作人員實施相應的措施,如圖4-5所示</p><p> 圖 4-5 報警模塊</p><p> 4.6復位電路及電源電路</p><p> 單片機的P1.6端口是MAX813看門狗電路中喂狗信號的輸入端,即單片機每執(zhí)行一次程序就設置一
54、次喂狗信號,清零看門狗器件。若程序出現(xiàn)異常,單片機引腳RST 將出現(xiàn)兩個機器周期以上的高電平,使其復位。該復位信號高電平有效,其有效時間應持續(xù)24 個振蕩脈沖周期即兩個機器周期以上。若使用頻率為12 MHz 的晶體振蕩器,則復位信號持續(xù)時間應超過2μs才完成復位操作。</p><p> 由于該系統(tǒng)需要穩(wěn)定的5V電源,因此設計時必須采用能滿足電壓、電流和穩(wěn)定性要求的電源。該電源采用三端集成穩(wěn)壓器LM7805。它僅
55、有輸入端、輸出端及公共端3個引腳,其內部設有過流保護、過熱保護及調整管安全保護電路,由于所需外接元件少,使用方便、可靠,因此可作為穩(wěn)壓電源。</p><p> 圖4-6 電源電路圖</p><p><b> 5 軟件程序分析</b></p><p> 5.1 系統(tǒng)軟件算法分析</p><p> 系統(tǒng)程序主要包
56、括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。</p><p><b> 5.2 主程序</b></p><p> 主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖5-1所示。</p><p>
57、 圖5-1 主程序流程圖</p><p> 5.3 讀出溫度子程序</p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖5-2示</p><p> 圖5-2 讀溫度流程圖</p><p> 讀取DS18B20 數(shù)據(jù)的部分程序代碼為:</p
58、><p> Read One Char(void) //讀一個字節(jié)的主程序</p><p><b> { </b></p><p> unsigned char i=0; //循環(huán)次數(shù)</p><p> unsigned char date=0; //從DS18B
59、20中讀取的溫度數(shù)值</p><p> for (i=8;i>0;i--) // 8次一個字節(jié)</p><p> { DQ = 0; //脈沖信號</p><p> Date>>=1; //右移一位</p><p> DQ
60、 = 1; //脈沖信號</p><p><b> if(DQ)</b></p><p> date|=0x80;</p><p> delay(4); // 延時</p><p><b> }</b></p&
61、gt;<p> return(date); // 返回讀取溫度數(shù)據(jù)其程序流程圖</p><p><b> }</b></p><p> 5.4 溫度轉換命令子程序</p><p> 溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1
62、s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖5-3所示</p><p> 圖5-3 溫度轉換流程</p><p> 5.5 計算溫度子程序</p><p> 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖5-4所示。</p><p> 圖5-4 計算溫度流程圖
63、</p><p> 5.6 顯示數(shù)據(jù)刷新子程序</p><p> 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖5-5。</p><p> 圖5-5 顯示數(shù)據(jù)刷新流程圖</p><p><b> 結束語</b></p><
64、;p> 短短兩周的畢業(yè)設計已經(jīng)結束了,通過這次的畢業(yè)設計鍛煉了我們的實踐能力,也是對我們以后的實際工作能力的具體訓練和考察過程?,F(xiàn)在是一個高科技的時代,單片機已經(jīng)成為當今計算機應用中空前活躍的領域,在生活中可以說是無處不在的。因此對于我們這一專業(yè)的同學來說,學好單片機,并正確應用單片機是非常重要的。</p><p> 此次單片機課程設計,從選題到定稿,從理論到實踐,在整整兩個星期里,學到了很多的東西。同
65、時不僅鞏固了以前所學過的知識,而且還學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。這次的課程設計還讓我學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。更重要的是,我在這一設計過程中,學會了堅持不懈,不輕言放棄。</p>
66、<p> 設計過程,好比是我們人類成長的歷程,常有一些不如意,但畢竟這是第一次做,難免會遇到各種各樣的問題。在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。我們通過查閱大量有關資料,并在小組中互相討論,交流經(jīng)驗和自學,若遇到實在搞不明白的問題就會及時請教老師,使自己學到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。</p><p> 在整個設計中我懂得了許多東西
67、,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是在設計過程中所學到的東西是這次課程設計的最大收獲和財富。</p><p> 單片機課程設計雖然結束了,但通過設計所學到的東西將長久存在。相信這次設計帶給我們的嚴謹?shù)膶W習態(tài)度和一絲不茍的科學作風將會給我們未
68、來的工作和學習打下一個更堅實的基礎。</p><p><b> 參考文獻</b></p><p> [1]王志剛.現(xiàn)代電子線路[M].第四版.北京:清華大學出版社,2008:150-176</p><p> [2]高西全,丁玉玉.數(shù)字信號處理[M].第三版.西安電子科技大學出版社,2008:146-180</p><p
69、> [3]王偉.Veri Log HDL程序設計與應用[M].北京:人民郵電出版社,2005:80-98</p><p> [4]陳松,金鴻.電子設計自動化技術[M].南京:東南大學出版社,2003:58-64</p><p> [5]章錫鶴,盛鴻宇.印制電路板電路設計實訓教材[M].北京:科學出版社,2005:120-154</p><p> [6]
70、徐欣,于紅旗,易凡,盧啟中.基于FPGA的嵌入式系統(tǒng)設計[M].北京:機械工業(yè)出版社,2005:82-98</p><p> [7]陳曾平,劉平,馬云.電子設計基礎與專用系統(tǒng)構成[M].北京:科學出版社,2006,55-70</p><p> [8]余發(fā)山.單片機原理及應用技術[M].徐州:中國礦業(yè)大學出版社,2003:56-70</p><p> [9]陳龍
71、三.8051單片機C語言控制與應用[M].北京:清華大學出版社,2001:88-100</p><p> [10]李銀,汪泳.電子線路設計指導[M].北京:北京航空航天大學出版社,2005:105-125</p><p> [11]李廣弟.單片機基礎[M].北京:北京航空航天大學出版社.2006:178-235</p><p> [12]吳穎.《數(shù)字式溫度傳感
72、器與分布式溫度測量系統(tǒng)》[J].傳感技術學報,2001,(1):26-31</p><p> [13]張萌,和湘,姜斌.單片機應用系統(tǒng)開發(fā)[M].北京:清華大學出版社,2007:98-106</p><p> [14]王俊峰,斐炳南,李傳光.電子產(chǎn)品的設計與制作工藝[M].北京:北京理工大學出版社,1995:128-150</p><p> [15] MAXI
73、M NEW Releases Data Book.volum 1998:50-64</p><p> [16] Onas C.Bartee.Computere Architecture abd Logic Design[J].McGraw-HILL Inc. 1991:10-18</p><p> [17]G Jiang M Zhang, X Xie, S Li.Application
74、 on tenperaature control of DS18B20[J].Control Engineering of China,2003:8-20</p><p><b> 致 謝</b></p><p> 大學生活一晃而過,回首走過的歲月,心中倍感充實,當我寫完這篇畢業(yè)論文的時候,有一種如釋重負的感覺,感慨良多。 首先要感謝我的導師xx老師。本
75、文是在導師的精心指導下完成的,從論文的選題、設計方案直至完成論文的整個過程中,都得到了xx老師耐心細致的指導。xx老師嚴謹?shù)闹螌W態(tài)度、淵博的學識、獨特的學術思維、一絲不茍的工作作風、熱情待人的品質,使我滿懷敬意。還有教過我的所有老師們,你們嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣,你們循循善誘的教導和不拘一格的思路給予我無盡的啟迪。</p><p> 感謝我的團隊,有大家齊心協(xié)力,共同努力,互相幫助我
76、才能順利的完成本系統(tǒng)的設計和本論文的編寫。 感謝四年中陪伴在我身邊的同學、朋友,感謝他們?yōu)槲姨岢龅挠幸娴慕ㄗh和意見,有了他們的支持、鼓勵和幫助,我才能充實的度過了四年的學習生活。</p><p><b> 附 錄</b></p><p> 用兩位共陽數(shù)碼管顯示溫度值,讀取DS18B20及用兩位共陽數(shù)碼管顯示溫度的匯編語言程序如下:</p>
77、<p><b> ORG 0000H</b></p><p><b> 單片機內存分配申明</b></p><p> TEMPER_L EQU 29H; 用于保存讀出溫度的低8位</p><p> TEMPER_H EQU 28H;
78、 用于保存讀出溫度的高8位</p><p> FLAG1 EQU 38H; 是否檢測到DS18B20標志位</p><p> a_bit equ 20h; 數(shù)碼管個位數(shù)存放內存位置</p><p> b_bit equ 21h ;
79、 數(shù)碼管十位數(shù)存放內存位置</p><p><b> MAIN:</b></p><p> LCALL GET_TEMPER; 調用讀溫度子程序</p><p> MOV A, 29H</p><p> MOV C,40H;
80、 將28H中的最低位移入C</p><p><b> RRC A</b></p><p> MOV C, 41H</p><p><b> RRC A</b></p><p> MOV C, 42H</p><p&g
81、t;<b> RRC A</b></p><p> MOV C, 43H</p><p><b> RRC A</b></p><p> MOV 29H, A</p><p> LCALL DISPLAY; 調用數(shù)碼管顯示子程序<
82、/p><p> AJMP MAIN ; 循環(huán)顯示</p><p> INIT_18B20: ; 這是DS18B20復位初始化子程序</p><p><b> SETB P3.2</b></p><p
83、><b> NOP</b></p><p><b> CLR P3.2</b></p><p> MOV R1,#3; 主機發(fā)出延時537微秒的復位脈沖</p><p> TSR1: MOV R0,#107</p><p>
84、 DJNZ R0, $</p><p> DJNZ R1, TSR1</p><p> SETB P3.2; 然后拉高數(shù)據(jù)線</p><p><b> NOP</b></p><p><b> NOP</b></p>
85、<p><b> NOP</b></p><p> MOV R0, #25H</p><p><b> TSR2:</b></p><p> JNB P3.2,TSR3; 等待DS18B20回應</p><p> DJNZ
86、 R0, TSR2</p><p> LJMP TSR4 ; 延時</p><p><b> TSR3:</b></p><p> SETB FLAG1 ; 置標志位,表示DS18B20存在</p><
87、p><b> LJMP TSR5</b></p><p><b> TSR4:</b></p><p> CLR FLAG1 ; 清標志位,表示DS18B20不存在</p><p><b> LJMP TSR7</b></
88、p><p><b> TSR5:</b></p><p> MOV R0, #117</p><p><b> TSR6:</b></p><p> DJNZ R0,TSR6 ; 時序要求延時一段時間</p><p>
89、;<b> TSR7:</b></p><p><b> SETB P3.2</b></p><p><b> RET</b></p><p> GET_TEMPER: ; 讀出轉換后的溫度值</p><p>&
90、lt;b> SETB P3.2</b></p><p> LCALL INIT_18B20; 先復位DS18B20</p><p> JB FLAG1 ,TSS2 RET ; 判斷DS18B20是否存在?</p><p> 若DS18B20不存在則
91、返回</p><p> TSS2: ; DS18B20已經(jīng)被檢測到!</p><p> MOV A,#0CCH ; 跳過ROM匹配</p><p> LCALLWRITE_18B20;</p><p>
92、 MOV A,#44H ; 發(fā)出溫度轉換命令</p><p> LCALLWRITE_18B20; 等待AD轉換結束,12位的話750 微秒</p><p> LCALL DISPLAY</p><p> LCALL INIT_18B20;
93、 準備讀溫度前先復位</p><p> MOV A,#0CCH ; 跳過ROM匹配</p><p> LCALLWRITE_18B20</p><p> MOV A,#0BEH ; 發(fā)出讀溫度命令</p>
94、<p> LCALLWRITE_18B20</p><p> LCALL READ_18B20; 將讀出的溫度數(shù)據(jù)保存到</p><p><b> 35H/36H</b></p><p><b> RET</b></p><p>
95、 WRITE_18B20: ; 寫DS18B20的子程序</p><p> MOV R2,#8; 一共8位數(shù)據(jù)</p><p><b> CLR C</b></p><p><b> WR1:</b>
96、</p><p><b> CLR P3.2</b></p><p> MOV R3, #6</p><p> DJNZ R3, $</p><p><b> RRC A</b></p><p> MOV P3.2, C</p><p>
97、MOV R3, #23</p><p> DJNZ R3, $</p><p><b> SETB P3.2</b></p><p><b> NOP</b></p><p> DJNZ R2, WR1</p><p><b> SETB P3.2<
98、/b></p><p><b> RET</b></p><p> READ_18B20: ; 從DS18B20中讀出兩字節(jié)溫度數(shù)據(jù)</p><p> MOV R4,#2 ; 將溫度從DS18B20中讀出</p&
99、gt;<p> MOV R1,#29H ; 低位存入29H</p><p><b> RE00:</b></p><p> MOV R2,#8; 數(shù)據(jù)一共有8位</p><p><b> RE01
100、:</b></p><p><b> CLR C</b></p><p><b> SETB P3.2</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p>
101、<b> CLR P3.2</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB P3.2</b></
102、p><p> MOV R3, #9</p><p><b> RE10:</b></p><p> DJNZ R3, RE10</p><p> MOV C, P3.2</p><p> MOV R3, #23</p><p><b> RE20:<
103、/b></p><p> DJNZ R3, RE20</p><p><b> RRC A</b></p><p> DJNZ R2, RE01</p><p><b> MOV@R1,A</b></p><p><b> DEC R1</b&
104、gt;</p><p> DJNZ R4, RE00</p><p><b> RET</b></p><p><b> 顯示子程序</b></p><p> display: MOV a,29H; 將29H中的數(shù)轉換成10進制</p
105、><p> MOV b,#10 ; 10進制/10=10進制</p><p><b> Div a b</b></p><p> MOV b _bit, a;</p><p> MOV a_ bit, b ;
106、 個位在b</p><p> MOVDPTR, #num tab ; 指定查表啟始地址</p><p> MOV r0, #4</p><p> dpl1: MOV r1,#250 ; 顯示1000次</p><p> DPLOP:MOV A v
107、, a _bit ; 取個位數(shù)</p><p> MOVC A,@A+DPTR ; 查個位數(shù)的7段代碼</p><p> MOV p1,a ; 送出個位的7段代碼</p><p> CLR p3.4 ;
108、 開個位顯示</p><p> ACALL d1ms ; 顯示1ms</p><p><b> SETB p3.4</b></p><p> MOV a, V b _bit ; 取出十位數(shù)<
109、/p><p> MOVC A,@A+DPTR ; 查出十位數(shù)的7段代碼</p><p> MOV p1,a ; 送出十位的7段代碼</p><p> CLR p3.3 ; 開十位顯示</p&g
110、t;<p> ACALL d1ms ; 顯示1ms</p><p><b> SETB p3.3</b></p><p> DJNZ r1,dplop ; 100次沒完循環(huán)</p><p> DJNZ r0,dpl1
111、; 4個100次沒完循環(huán)</p><p><b> Ret</b></p><p> 1MS 延時(按12MHZ 算)</p><p> D1MS: MOV R7, #80</p><p> DJNZ R7, $</p><p><
112、b> RET</b></p><p> 7段數(shù)碼管0~9數(shù)字的共陽顯示代碼</p><p> Num tab: DB 0C0H, 0F9H, 0A4H, 0B0H,099H,092H,082H,</p><p> 0F8H,080H,090H ;0,1,2,3,4,5,6,7,8,9</p><p><b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于89c51和ds18b20的數(shù)字溫度計設計畢業(yè)論文
- 基于at89s52和ds18b20的數(shù)字溫度計設計畢業(yè)論文
- 畢業(yè)設計----ds18b20數(shù)字溫度計論文
- [優(yōu)秀畢業(yè)設計精品] 基于ds18b20的溫控系統(tǒng)設計與實現(xiàn)
- 基于c51,ds18b20溫度計畢業(yè)設計
- 畢業(yè)設計---基于c51,ds18b20溫度計的設計
- 畢業(yè)設計---ds18b20數(shù)字溫度計的設計
- 基于ds18b20溫度傳感器的數(shù)字溫度計設計畢業(yè)設計
- 畢業(yè)設計論文——基于51單片機的無線壁掛爐溫控器
- 基于ds18b20溫度傳感器的數(shù)字溫度計設計畢業(yè)設計
- 基于51單片機的ds18b20溫度傳感器的應用畢業(yè)設計(論文)
- 基于51單片機的ds18b20溫度傳感器的應用 畢業(yè)設計
- 基于ds18b20的單總線數(shù)字溫度計畢業(yè)設計
- 基于at89s51的計費器設計畢業(yè)設計
- 畢業(yè)設計---基于ds18b20的數(shù)字溫度計的設計與實現(xiàn)
- 畢業(yè)設計--單片機ds18b20水溫控制系統(tǒng)設計
- ds18b20溫度檢測畢業(yè)設計
- 基于89c51與ds18b20溫度計
- 畢業(yè)設計---ds18b20做溫度傳感器的數(shù)字溫度計
- 基于ds18b20的測溫系統(tǒng)設計畢業(yè)論文
評論
0/150
提交評論